(广东农工商职业技术学院 电子与信息工程系 广东 广州 510507)
摘 要:设计了一种实用的单片机系统显示电路,该电路结构简单,使用可靠,而且可以大大地降低硬件成本,具有一定的应用价值。
关键词:单片机;显示电路;可靠性;低成本
显示电路是智能仪表的重要功能电路之一,为简化电路、降低成本,通常采用动态显示方式来实现,使用的集成电路有8279,8155,8255,Max7219等,但这些集成电路存在体积大、价格贵的缺点,若在一些功能不是太复杂的系统中选用这些集成电路是不可取的。随着智能仪表技术的不断发展,如何有效地设计低成本、小体积的显示电路成为电路设计者必须考虑的问题。本文提出了一种实用的低成本多位数码显示电路的设计方法。
1 电路的硬件连接和工作原理
图1所示为单片机系统构成的8位LED动态显示电路,该电路以AT89C2051单片机为例。电路使用器件少,仅用到了2片中规模集成电路74LS164和74LS138,占用CPU的I/O线少,特别适合于I/O线不是很多的单片机如AT89C2051/1051,97C2051/1051,PIC16Cxx等系统中使用。
74LS164为串-并转换移位寄存器,数据端A,B(第1,2脚)接单片机RXD引脚,时钟端CLK接单片机TXD,并行8位数据输出端分别接8个数码管的A,B,C,D,E,F,G,H;74LS138为3线~8线译码器,译码器输入端A,B,C分别接AT89C2051的P1.0,P1.1,P1.2,译码器输出端Y0~Y7接8个数码管从低位到高位的共阴极端。
若所用的单片机不是AT89C2051,而选用了其他没有串行口的单片机如AT89C1051,则74LS164的数据输入端A,B可连接到P1.3,CLK端可连接到P1.4,这样设计不会影响系统的功能,仅仅在编写程序时略有差别。若系统只需至多4位数码管显示,则74LS138可用74LS139(2线~4线译码器)代替。
电路中,要显示的数字所对应的字形码通过串行口送到74LS164,74LS138在同一时刻只有1位输出端为低电平,其他7位输出全为高电平,为低电平的对应的数码管选中,因此作为数码管显示时的位选信号。系统在工作时,通过74LS164每次输出一个字形码,同时控制74LS138的译码器输入端A,B,C的电平状态,即从P1.0,P1.1,P1.2送出相应的电平,译码后使得要显示的对应位数码管共阴极端依次为低电平,即依次选中要显示的位,完成整个显示电路的动态扫描,依此扫描8次,完成8位数据的显示。
2 软件编写
以AT89C2051单片机系统构成的8位LED动态显示电路的显示子程序流程如图2所示。
设待显示的数据放在显示缓冲区中,显示缓冲区的地址为70H,71H,…,77H,依次存放从低位到高位待显示的数据。则显示子程序清单如下:
编写该程序时要注意程序中的延时时间的大小,延时过长会造成显示不连续,延时过短,又会出现闪烁现象,经多次调试在该设计中最佳延时为4 ms。
3 结 语
本显示电路硬件结构简单,软件实现也很容易,而且性能稳定、成本低。经过反复测试,效果很好,在一般的单片机控制系统中都可以使用该显示电路,具有一定的通用性。因此,本显示电路具有一定的参考价值。在实际使用中,根据需要,可以在74LS164和74LS138的输出端增加驱动电路如74LS07等,以增加LED数码管的亮度。
摘自 现代电子技术