[开发板与模块] 【HT32F52352 Starter Kit测评】+驱动串行数码管

[复制链接]
 楼主| jinglixixi 发表于 2022-4-27 23:43 | 显示全部楼层 |阅读模式
本帖最后由 werasd 于 2022-5-25 15:16 编辑

串行数码管显示模块的外观如图1所示,它具有输入端和输出端可多个模块级联起来使用,以显示更多位的数码值。

1.jpg
图1 串行数码管模块

串行数码管显示模块的电路原理图见图2所示,该模块采用5V电压来工作。

2.jpg
图2 原理图

该显示模块与开发板的连接关系为:
SCL---PA2
SDA---PA3
CS ---PA4
3.jpg
图3 显示效果

Max7219字节数据发送函数为:
  1. void Write_Max7219_byte(unsigned char DATA)
  2. {
  3.       unsigned char i;
  4.       GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_4);
  5.            __Delay(10);
  6.       for(i=8;i>=1;i--)
  7.       {
  8.            GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_2);
  9.            if(DATA&0x80)  GPIO_SetOutBits(HT_GPIOA, GPIO_PIN_3);
  10.            else  GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_3);
  11.            __Delay(10);
  12.                       DATA=DATA<<1;
  13.            GPIO_SetOutBits(HT_GPIOA, GPIO_PIN_2);
  14.            __Delay(10);
  15. }
  16. }


Max7219写寄存器函数为:
  1. void Write_Max7219(char address,char dat)
  2. {
  3.       GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_4);
  4.       Write_Max7219_byte(address);
  5.       Write_Max7219_byte(dat);
  6.       GPIO_SetOutBits(HT_GPIOA, GPIO_PIN_4);
  7. }

Max7219初始化函数为:
  1. void Init_MAX7219(void)
  2. {
  3.       Write_Max7219(0x09, 0xff);
  4.       Write_Max7219(0x0a, 0x03);
  5.       Write_Max7219(0x0b, 0x07);
  6.       Write_Max7219(0x0c, 0x01);
  7.       Write_Max7219(0x0f, 0x01);
  8. }

主程序为:
  1. int main(void)
  2. {
  3.   NVIC_Configuration();
  4.   CKCU_Configuration();
  5.   GPIO_Configuration();
  6.   RETARGET_Configuration();
  7.   T1_GPIO_Configuration();
  8.   Init_MAX7219();
  9.   __Delay(1000000);
  10.   Write_Max7219(0x0f, 0x00);
  11.   Write_Max7219(1,8);
  12.   Write_Max7219(2,7);
  13.   Write_Max7219(3,6);
  14.   Write_Max7219(4,5);
  15.   Write_Max7219(5,4);
  16.   Write_Max7219(6,3);
  17.   Write_Max7219(7,2);
  18.   Write_Max7219(8,1);
  19.   while (1)
  20.   {
  21.    ;
  22.   }
  23. }




selongli 发表于 2022-10-5 16:37 | 显示全部楼层
用9012PNP来驱动共阳极数码管
jstgotodo 发表于 2022-10-5 17:41 | 显示全部楼层
七段译码驱动74246 74247 74LS247 等好多的芯片
xiaoyaodz 发表于 2022-10-5 18:37 | 显示全部楼层
TM1628怎么驱动共阳数码管  
febgxu 发表于 2022-10-5 19:06 | 显示全部楼层
数码管要多大电流驱动               
 楼主| jinglixixi 发表于 2022-10-6 08:52 | 显示全部楼层
febgxu 发表于 2022-10-5 19:06
数码管要多大电流驱动

这个可以不考虑,使用的这个模块有较强的驱动能力,并能自动进行显示刷新。
 楼主| jinglixixi 发表于 2022-10-6 08:54 | 显示全部楼层
xiaoyaodz 发表于 2022-10-5 18:37
TM1628怎么驱动共阳数码管

低电平输出的段码,加上共阳极的高电平即可点亮数码管。
AloneKaven 发表于 2022-11-4 20:44 | 显示全部楼层
数码管要多大电流驱动               
 楼主| jinglixixi 发表于 2022-11-5 10:13 | 显示全部楼层
AloneKaven 发表于 2022-11-4 20:44
数码管要多大电流驱动

模块已解决了驱动和锁存的问题,直接使用即可。至于模块的功耗,可自行测一下。
belindagraham 发表于 2022-12-2 20:51 | 显示全部楼层
如何用uln2803驱动大号数码管
 楼主| jinglixixi 发表于 2022-12-3 00:30 | 显示全部楼层
belindagraham 发表于 2022-12-2 20:51
如何用uln2803驱动大号数码管

那uln2803当功放使就是了,相当于是个大电流的开关。
i1mcu 发表于 2022-12-3 14:11 | 显示全部楼层
接串行口利用74LS245驱动六位数码管怎么编程?
plsbackup 发表于 2022-12-3 14:49 | 显示全部楼层
驱动数码管可以要什么型号三极管和芯片呢?
wengh2016 发表于 2022-12-3 15:18 | 显示全部楼层
用SPI串行接口驱动数码管?  
 楼主| jinglixixi 发表于 2022-12-3 23:12 | 显示全部楼层
wengh2016 发表于 2022-12-3 15:18
用SPI串行接口驱动数码管?

可以这样看,但它更接近与I2C只不过多了个片选引脚。
 楼主| jinglixixi 发表于 2022-12-3 23:13 | 显示全部楼层
plsbackup 发表于 2022-12-3 14:49
驱动数码管可以要什么型号三极管和芯片呢?

该模块已具备驱动功能
 楼主| jinglixixi 发表于 2022-12-3 23:15 | 显示全部楼层
i1mcu 发表于 2022-12-3 14:11
接串行口利用74LS245驱动六位数码管怎么编程?

74LS245属并行类的缓冲芯片,驱动六位数码管查相关单片机教程接口。
chenci2013 发表于 2022-12-4 22:11 | 显示全部楼层
tm1651如何驱动数码管?  
 楼主| jinglixixi 发表于 2022-12-5 13:55 | 显示全部楼层
chenci2013 发表于 2022-12-4 22:11
tm1651如何驱动数码管?

没有过
plsbackup 发表于 2022-12-5 23:19 | 显示全部楼层
用并行芯片控制数码管的段和位,比较浪费IO口资源
您需要登录后才可以回帖 登录 | 注册

本版积分规则

517

主题

2932

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部