单片机应用系统中只有一位的数字显示是不常见的,要驱动多个数码管显示,就必须让多个数码管同时加上各自不同的段选码,这属于静态显示。在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。
1.静态显示
所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔画段字形代码。单片机只要把要显示的字形代码发送到接口电路,直到要显示新的数据时,再发送新的字形码,因此使用这种方法的单片机中CPU的成本低。可以提供单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路。
MCS-51系列单片机串行接口方式为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,当有1个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每1个时钟信号的上升沿加到T端时,移位寄存器移1位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1…Q8(第3~6和10~13引脚)并行输出端分别接LED显示器的dp、a等各段对应的引脚上。
6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第1片74LS164中了,而当第2个8个脉冲到来后,这个数据就进入了第2片74LS164,而新的数据则进入了第1片74LS164,这样,当第6个8个脉冲完成后,首次送出的数据被送到了最左面的74LS164中,其他数据依次出现在第1、2、3、4、5片74LS164中。图9-6所示是多位数码管静态显示接法。
图9-6 多位数码管静态显示接法
1)入口:把要显示的数分别放在显示缓冲区60H~65H共6个单元中,并且分别对应各个数码管LED0~LED5。
2)出口:将预置在显示缓冲区中的6个数组成相应的显示字形码,然后输出到显示器中显示。
3)显示程序如下:
4)测试用主程序:
(www.xing528.com)
如果按图9-6所示数码管排列,则以上主程序将显示的是543210,想想看,如果要显示012345该怎样送数?
下面我们来分析一下字形表的制作。先根据上述“标准”的图形写出数据位和字形的对应关系并列表9-2(设为共阳型,也就是相应的输出位为0时该笔段位亮)。
表9-2 数据位和字形的对应关系表
2.动态显示
与静态显示不同,动态显示技术让不同的数码管分时点亮。即:某1个数码管的字形码从单片机的1个I/O接口输出,通过单片机选通该数码管,让这个数码管显示自己的字符几毫秒,然后将下1个数码管的字形码从单片机的同1个I/O接口输出,通过单片机选通下1个数码管,让下1个数码管显示自己的字符几毫秒,依次循环。由于人眼响应较慢,最后的效果是每1个数码管都在显示各自的字符。
例如:片内RAM的30H中存放着温度采集的数字值,用3个数码管显示其对应的数值(0~255)。
解:通过MCS-51系列单片机的P1接口输出3个数码管的字形码,由P3.2、P3.1、P3.0控制LED数码管的电源选通(高电平有效),硬件原理如图9-7所示。
图9-7 硬件原理图
参考程序:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。