74LS164 在2051 单片机LED 显示电路中的应用
74LS164 appl ied in LED displaying circuit of
AT89C2051 single chip computer
AT89 系列单片机[1 ]是美国ATMEL 公司近
年来推出的一种新型高性能低价位、低电压低功
耗的8 位CMOS 微型计算机。它的显著优点是:
①内含Flash 存储器,这在系统的开发过程中,可
随意进行程序修改,既便错误编程之后仍可以重
新编程,故不存在废品且大大缩短了程序的开发
周期;同时在系统工作过程中能有效地保存数据
信息。②采用静态时钟方式,节省电能,这对于降
低便携式产品的功耗十分有利。③由于它是以
8031 核构成的,所以它与MCS251 系列单片机是
兼容的,这对于熟悉MCS251 系列的广大用户来
说,用AT89 系列单片机取代51 系列进行系统设
计是轻而易举的。
而AT89C2051 又是AT89 系列中一种更为
廉价的单片机,作为一种小型测控系统或便携式
智能仪器仪表的核心器件,其性能价格比优于
MCS251 系列。所不同的是它的引脚只有20 根,
比标准型的40 根少得多,也即并行I/ O 端口较
少。如何利用这较少的几根口线,连接成稳定可
靠的L ED 显示电路,就是以AT89C2051 单片机
为核心的应用电路所要解决的瓶颈问题。
本文采用了74LS164 这个串入并出的移位
寄存器,很好地解决了2051 与L ED 的显示接口
电路。
1 硬件电路
2051 余下的并行I/ O 口线不足8 根,数据的
并行输出已不可能,但可以考虑串行输出方法,图
1 给出串行口扩展的4 位L ED 显示接口电路。
该电路只使用2051 的3 个端口,配接4 片串
入并出移位寄存器74LS164 与1 片三端可调稳
压器LM317T。其中74LS164 的引脚Q0~Q7 为
8 位并行输出端;引脚A、B 为串性输入端;引脚
CL K为时钟脉冲输入端,在CL K 脉冲的上升沿
作用下实现移位,在CL K = 0 、清除端MR = 1
时,74LS164 保持原来数据状态; MR = 0 时,
74LS164 输出清零。
图1 串行口扩展的4 位L ED 显示电路
其工作过程如下:2051 的串行口设定在方式
0 移位寄存器状态下,串行数据由P3. 0 发送,移
位时钟由P3. 1 送出。在移位时钟的作用下,串
行口发送缓冲器的数据一位一位地移入74LS164
中。4 片74LS164 串级扩展为4 个8 位并行输出
口,分别连接到4 个L ED 显示器的段选端作静态
显示。需要指出的是,由于74LS164 无并行输出
控制端,因而在串行输入过程中,其输出端的状态
会不断变化,造成不应显示的字段仍有较暗的亮
度,影响了显示的效果。
以往的做法[2 ] 是在74LS164 的输出端加接
4 片锁存器或三态门,使移位寄存器串行输入数
据时其输出端的变化不反映到L ED 上,待串行输
入结束后再打开锁存器或三态门,将稳定的显示
数据送给L ED。
本文电路的独特之处在于仅采用了1 片三端
可调稳压器LM317T ,317T 的3 、2 脚分别是电压
输入、输出端,317T 的1 脚是电压调整端,脚2 输
出电压随脚1 电压而变化。脚1 与接地电阻之间
并一个NPN 三极管,它的基极受P1. 7 口线控
制,串行输入时P1. 7 口线为高电平,三极管饱和
导通使317T 的脚1 约为0. 3 V ,脚2 输出电压随
之下降到1. 5 V 不足以使共阳极L ED 发光,故此
时串行输入的影响不会反映到L ED 上;串行输入
结束后,使P1. 7 口线为低电平,三极管截止,脚2
输出电压因脚1 电压增高便上升到2. 0 V 使L ED
正常发光。因此,1 片三端可调稳压器LM317T
起到了4 片锁存器的作用使L ED 显示不会闪烁。
本电路的另一优点是通过可调电位器P1 可在线
调整脚2 的输出电压,使L ED 的显示亮度均匀可
调,而且省掉了大量的L ED 限流电阻。
2 软件编程
上述分析表明,移位寄存器74LS164 仅有串入
并出作用没有译码功能。因此,在编写显示驱动程
序之前,首先需要计算列写出与本电路对应的LED
段选码[3 ] ,然后由2051 的P3. 0 口送入164 的串行
输入端,再并行输出到LED 的段选端。
需要指出的是,本电路采用TOS28106BHK型
号的共阳极LED 显示器,根据PCB 印制线路板的
连线方便,其LED 的8 个段选端与164 的并行输
出口即8 根段选线的连接没有遵照通常的规律,而
是如图1 所示的段排列为7、6、4、2、1、9、10、5 ,相应
的段选码也要重新计算,如显示字符0 的段选码为
11H ,显示字符1 的段选码为D7H等。
另外,这种稳定的静态显示方式也省去了
CPU 的动态扫描过程,此为本电路的又一特点。
电路中设计了4 位L ED 显示器,其功能为:
左首位为百位数或标志位,左二位为十位数,左三
位为个位数,左四位为小数点后的十分位数。据
此,给出如图2 所示的显示子程序框图。
图2 显示子程序框图
显示子程序清单如下:
DISI :
SETB P1. 7 ;灭显示
MOV R0 , # SBCD
MOV A , @R0 ;取出要显示的数
ADD A , # 2DH ;加上偏移量
MOVC A , @A + PC ;查表取出段选码
MOV SBUF ,A ;送出显示
DL1 : JNB TI ,DL1 ;输出完否?
CLR TI ;完,清中断标志
INC R0
MOV A , @R0
ADD A , # 21H
MOVC A , @A + PC
ANL A , # OEFH ;个位加小数点
MOV SBUF ,A
DL2 : JNB TI ,DL2
CLR TI
INC R0
MOV A , @R0
ADD A , # 13H
MOVC A , @A + PC
MOV SBUF ,A
DL3 : JNB TI ,DL3
CLR TI
MOV A , # 0FFH
MOV SBUF ,A
DL4 : JNB TI ,DL4
CLR TI
CLR P1. 7 ;亮显示
RET
SEGTAB : DB 11H ,0D7H ,32H
DB 92H ,0D4H ,98H
DB 18H ,0D3H ,10H ,0D0H
3 结束语
本串行口扩展的L ED 显示接口电路已被笔
者成功地应用到以AT89C2051 单片机为核心的
智能仪表中,如单片机湿度测量仪、单片机温度测
量仪等。现场运行表明,L ED 显示清晰稳定不闪
烁,特别是在现场环境如光照强弱不同的情况下,
可以在线调整L ED 发光的亮度,获得视觉与功耗
的最佳效果。