|
- /*******************************
- 外部芯片 HQA-2405E 控制代码 *
- IC简介: *
- HQA-2405E是一款4位数码管驱动芯片, *
- 可以直接控制4位共阴数码管显示。 *
- 工作电压范围:2.4V-5.5V *
- 温度范围:-40℃~85℃ *
- 注意事项: *
- 数码管的共阴极需要接在芯片的COM0~COM3引脚上, *
- 数码管的阴极需要接在芯片的SEG0SEG6和SEG8SEG13引脚上。 *
- 在使用前需要先进行相关IO口的初始化, *
- 需要设置P0口的对应引脚为输出模式。 *
- ********************************/
- #include <reg52.h> // 使用头文件reg52.h
- #define DIGIT1 P2_4 // 定义4个数码管引脚对应P2口的引脚号
- #define DIGIT2 P2_5
- #define DIGIT3 P2_6
- #define DIGIT4 P2_7
- // 7段LED数码管显示0~9的编码表
- unsigned char code LED_Code[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66,
- 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
- /**
- @brief 初始化外部芯片HQA-2405E
- */
- void HQA2405E_Init(void)
- {
- // 将4个数码管对应的引脚设置为输出模式
- DIGIT1 = DIGIT2 = DIGIT3 = DIGIT4 = 1;
- }
- /**
- @brief 在指定位数码管上显示指定数字
- @param digit: 数码管编号,范围1~4
- @param num: 要显示的数字,范围0~9
- */
- void HQA2405E_Display(unsigned char digit, unsigned char num)
- {
- // 先关闭所有数码管
- DIGIT1 = DIGIT2 = DIGIT3 = DIGIT4 = 1;
- // 根据数码管编号,选择对应的数码管打开
- switch (digit) {
- case 1:
- DIGIT1 = 0;
- break;
- case 2:
- DIGIT2 = 0;
- break;
- case 3:
- DIGIT3 = 0;
- break;
- case 4:
- DIGIT4 = 0;
- break;
- default:
- break;
- }
- // 根据要显示的数字,从编码表中取出对应的编码,发送到P0口
- P0 = LED_Code[num];
- }
- /**
- @brief 在所有数码管上显示指定数字
- @param num: 要显示的数字,范围0~9999
- */
- void HQA2405E_DisplayAll(unsigned int num)
- {
- unsigned char digit1, digit2, digit3, digit4;
- // 将数字分离成4位,分别在4个数码管上显示
- digit1 = num / 1000;
- HQA2405E_Display(1, digit1);
- num = num % 1000;
- digit2 = num / 100;
- HQA2405E_Display(2, digit2);
- num = num % 100;
- digit3 = num / 10;
- HQA2405E_Display(3, digit3);
- digit4 = num % 10;
- HQA2405E_Display(4, digit4);
- }
- // 主函数
- void main(void)
- {
- HQA2405E_Init(); // 初始化外部芯片
- HQA2405E_DisplayAll(1234); // 在数码管上显示数字1234
- }
复制代码
|
|