数码管电路连接

考虑到芯片的灌电流能力相对强,选择共阳极。不过做好电流限流也是必须的。
通过74HC595芯片,单线控制多位数码管

SCK: 移位,表明要输入下一位
DATA: 数据为,0或1
RCK:将当前数据输出显示到数码管。
74HC595就是将收到的数据缓存8bit,溢出时将溢出的高位数据输出到下一个74HC595,最后一个则直接丢弃即可。
2个74HC595控制8个数码管
上门串联的方式控制几个数码管就需要几个74HC595芯片。另一种方式是用一个74HC595控制显示的数字,另一个74HC595用户数码管的选择器。然后通过高频率的点亮被选中的数码管(同时其它数码管为灭),在视觉上造成多个数码管同时显示的效果。

上排数码管引脚由一个595控制,需要主控一个输出引脚;下面数码管引脚需要一个595控制,需要主控一个输出引脚。
知识点,8051单片机中,整型变量左移/右移操作后,高位溢出会自动保存到CY寄存器中。在普通8051单片机中,没有浮点数,也没有高位数的乘除法,需要通过这种溢出位的方式在软件中设计算法实现。
时间显示
- 定义计时器,每1s中,内部时间数据加1s,满60s加1分钟,满60分钟加1h,满24h清零
- 每1ms刷一次,一次将时间数字、分隔符显示到数码管上。
仿真
有点谜,为啥要为了仿真还要多学一套接口呢?
总结
本集写了一个2个595芯片控制8位数码管的驱动程序,然后做了一个时间显示效果。链一下源码以备忘。https://www.stcaimcu.com/forum.php?mod=attachment&aid=NzY0ODR8N2NkZGZmNWV8MTc0Nzk2OTcxMXw0MTE4NXwxMTkwMg%3D%3D