找回密码
 立即注册
搜索
热搜: 中医 针灸 咳嗽
查看: 172|回复: 0

[电源变换芯片] HQA-2405E

[复制链接]

3711

主题

1

回帖

1万

积分

管理员

积分
11937
发表于 2023-3-1 08:43:05 | 显示全部楼层 |阅读模式
  1. /*******************************

  2. 外部芯片 HQA-2405E 控制代码 *
  3. IC简介: *
  4. HQA-2405E是一款4位数码管驱动芯片, *
  5. 可以直接控制4位共阴数码管显示。 *
  6. 工作电压范围:2.4V-5.5V *
  7. 温度范围:-40℃~85℃ *
  8. 注意事项: *
  9. 数码管的共阴极需要接在芯片的COM0~COM3引脚上, *
  10. 数码管的阴极需要接在芯片的SEG0SEG6和SEG8SEG13引脚上。 *
  11. 在使用前需要先进行相关IO口的初始化, *
  12. 需要设置P0口的对应引脚为输出模式。 *
  13. ********************************/
  14. #include <reg52.h> // 使用头文件reg52.h

  15. #define DIGIT1 P2_4 // 定义4个数码管引脚对应P2口的引脚号
  16. #define DIGIT2 P2_5
  17. #define DIGIT3 P2_6
  18. #define DIGIT4 P2_7

  19. // 7段LED数码管显示0~9的编码表
  20. unsigned char code LED_Code[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66,
  21.                                  0x6d, 0x7d, 0x07, 0x7f, 0x6f};

  22. /**

  23. @brief 初始化外部芯片HQA-2405E
  24. */
  25. void HQA2405E_Init(void)
  26. {
  27.     // 将4个数码管对应的引脚设置为输出模式
  28.     DIGIT1 = DIGIT2 = DIGIT3 = DIGIT4 = 1;
  29. }
  30. /**

  31. @brief 在指定位数码管上显示指定数字

  32. @param digit: 数码管编号,范围1~4

  33. @param num: 要显示的数字,范围0~9
  34. */
  35. void HQA2405E_Display(unsigned char digit, unsigned char num)
  36. {
  37.     // 先关闭所有数码管
  38.     DIGIT1 = DIGIT2 = DIGIT3 = DIGIT4 = 1;

  39.     // 根据数码管编号,选择对应的数码管打开
  40.     switch (digit) {
  41.         case 1:
  42.             DIGIT1 = 0;
  43.             break;
  44.         case 2:
  45.             DIGIT2 = 0;
  46.             break;
  47.         case 3:
  48.             DIGIT3 = 0;
  49.             break;
  50.         case 4:
  51.             DIGIT4 = 0;
  52.             break;
  53.         default:
  54.             break;
  55.     }

  56.     // 根据要显示的数字,从编码表中取出对应的编码,发送到P0口
  57.     P0 = LED_Code[num];
  58. }

  59. /**

  60. @brief 在所有数码管上显示指定数字
  61. @param num: 要显示的数字,范围0~9999
  62. */
  63. void HQA2405E_DisplayAll(unsigned int num)
  64. {
  65.     unsigned char digit1, digit2, digit3, digit4;
  66.     // 将数字分离成4位,分别在4个数码管上显示
  67.     digit1 = num / 1000;
  68.     HQA2405E_Display(1, digit1);
  69.     num = num % 1000;

  70.     digit2 = num / 100;
  71.     HQA2405E_Display(2, digit2);
  72.     num = num % 100;

  73.     digit3 = num / 10;
  74.     HQA2405E_Display(3, digit3);

  75.     digit4 = num % 10;
  76.     HQA2405E_Display(4, digit4);
  77. }

  78. // 主函数
  79. void main(void)
  80. {
  81.     HQA2405E_Init();           // 初始化外部芯片
  82.     HQA2405E_DisplayAll(1234); // 在数码管上显示数字1234
  83. }
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|私人站点 ( 冀ICP备2023028127号-2 )

GMT+8, 2025-7-4 07:01 , Processed in 0.079536 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表