分析了8279芯片的显示接口及8段、16段LED显示驱动电路的特点,提出了8段和16段LED混合显示驱动的方法,并介绍了一种经济实用的显示驱动电路。
关键词:8279 LED显示电路
1 引言
8段LED是一种标准件,是工业控制和自动化仪表中常用的显示器件,作为其显示驱动的一些专用芯片已被人们所熟悉和掌握。如8279可编程键盘与显示接口芯片,该芯片具有内部自动扫描、与计算机接口方便、编程容易等特点,它已成为设计计算机应用系统,特别是实用性较强的测控系统的优选器件之一。但是8段LED仅能显示“0-F”的简单数码和少量的几个字符,为了满足工业控制中显示复杂字符的要求,可以采用段数更多的LED来解决这个问题,比如16段的LED。但显示的信息较多时,就需要较多的LED数码管,而16段的LED数码管没有标准件可选,通常需要在生产厂家订做,对于售价不足千元的小型控制装置或自动化仪表,就会增加不少的成本。
基于以上情况,在设计测控系统时,可以考虑采用16段LED显示复杂字符,比如26个英文字母以及一些特殊的符号,采用8段LED显示简单字符,比如“0-9'’的阿拉伯数字。笔者通过分析、试验,设计了一种16段LED和8段LED数码管的混合显示电路,在微机数控系统中使用,获得了良好的效果。
2 8279芯片的显示接口分析
8279是一种可编程的键盘、显示器接口芯片。图1画出了8279与显示有关的管脚,各管脚的功能如下:
(1)D0-D7(数据总线):双向、三态,总线。与系统的数据,总线相连,在CPU和8279之间传送命令或数据。
(2)RD、WR(读、写信号):输入线,来自CPU的控制信号,低电平有效,控制8279的读、写操作。
(3)A0(缓冲器地址):输入线。当A0=I时,若CPU进行写操作,则写入的数据为命令字。若进行读操作,则读出的数据为状态字。当A0=0时,CPU读/写的均为数据。
(4)CS(片选):输入线,低电平有效。CS=0时,8279被选中,允许CPU进行读/写。
(5)CLK(系统时钟):外部时钟信号输入线。8279通过内部定时器将该信号变为内部时钟。内部时钟的频率高低决定了显示器的扫描时间。
(6)OUTA0-OUTA3,OUTB0-OUTB3(A组、B组显示信号):两组引线均是显示信息输出线,它们与多路数字显示的扫描线SL0-SL3同步。两组数据输出线可独立使用,也可合并使用。合并时,OUTA3为最高位,OUTB0为最低位。
(7)Sk0-S13(扫描线):这4条输出线用来扫描键盘和显示器。有两种工作方式,即译码(4选1)和编码(16选1)输出。方式的选择可以通过对8279的编程来实现。
8279芯片内部有专门用于存储显示数据的RAM区,共有16个字节,地址排列从00H到0FH。8279芯片的扫描线有译码扫描和编码扫描两种工作方式。当采用译码扫描方式时,8279只能送出显示RAM中前四个字节的内容(地址为00H-03H),因而最多只能扫描4个LED数码管。当采用编码扫描方式时,扫描输出线SL3-Sk0经过“4-16'’译码后,可以选择16个lED数码管,这16个1,ED数码管显示的字符分别对应8279显示RAM区的OOH-OFH中的内容。将8279的命令字设置成:读或写以后地址自动加1、左端输入。当SL3-Sk0为0000时,显示数据输出线上输出为显示RAM区中的第一位(00H中的内容);当SL3-SID为0001时,显示数据输出为显示RAM区中的第二位(01H中的内容);依次类推,当SL3-Sk0为1111时,显示数据输出为显示RAM区中的第16位(0FI-I中的内容)。因而,8279送出的显示数据,与CPU写入8279内部16个字节显示RAM区的数值,存在着一一对应的关系。据此,可以设计如下的1ED显示电路。
3 同样段数的LED显示驱动电路
当选用8段LED数码管作为显示器件时,扫描输出线可接“4-16”译码器,其输出的每一位接一个数码管的COM端。显示数据输出线经过锁存器和驱动器后,接到数码管的段码端,如图2所示。这样可构成最多16个8段LED的显示电路。
当选用16段LED数码管时,可以把16段分成两个8段来对待,在显示数据输出线上,并接两个8路锁存器和驱动器,两个锁存器的锁存信号由扫描输出线SL0来控制。当SL0=0时,选中第一片;当SL0=I时,选中第二片。这时扫描输出线SLl-SL3接“3-8”译码器,其输出的每一位接一个数码管的COM端,如图3所示。这样,最多可以构成8个16段LED的显示电路。
4 8段LED和16段LED的混合显示电路设计
图4是一台车床数控系统的实用显示电路,它是一个8031单片机的应用系统。该系统的显示器由一个“米”字管(16段的LED)和7个8段LED数码管组成。图4中,8279的显示数据输出线OUTA0-3、OUTB0-3上并接了两路8位数据锁存器。在这里,锁存器采用的是74LS373,而没有采用74LS273。虽然74LS273也是锁存器并可直接驱动LED,但它与8279的时序不相配,因为74LS273为上升沿触发,而74LS373为高电平触发与8279的时序相配。但是,74LS373的驱动能力不足,所以在LED数码管之前尚需增加驱动芯片,图4中采用的是74LS240芯片。8279芯片的1根扫描输出线SL0控制了两路8位数据锁存器74LS373的触发端LE,3根扫描线SLl-SL3接“3-8”译码器的输入端,译码器的输出YO-Y4作为数码管COM端的选择线。这时,第一个“米”字管由片选线Y0来选择,中间的6个数码管,每两个共用一根片选线(Y1-Y3),最后一个数码管由Y4来选择。“米”字管和8段数码管的数量和排列,可根据实际需要进行组合。
图4中,8279内部显示RAM区中00H、01H的内容装的是DG0的显示段码,02H装的是DGl的显示段码,03H装的是DG2的显示段码,装的是DG7的显示段码。
假定系统的晶振频率为12MHz,显示缓冲区首地址为6BH。该系统在指定的工作状态下,需要显示的字符段码的编码,事先存储在CPU内部RAM的6BH-73H这9个字节中。本系统中,8279的控制口地址为4FFFH,数据口地址为4FFEH,显示程序如下。
DIR:MOV DPTR,#4FFFH ;8279的控制口地址 MOV A,#90H ;写8279显示RAM的命令,从显示RAM的 00H地址开始写,每写一次,显示RAM的地址 自动加1 MOVX @DPTR,A MOV R0,#6BH ;显示缓冲区的首地址为6BH MOV R7,#09H ;显示缓冲区的长度为9个字节 MOV DPTR,#4FFEH ;8279的数据口地址 DIR0:MOV A,@R0 ;从CPU的RAM中读取显示段码的编码 ADDA,#05H ;PC与DTAB表格之间的偏移量 MOVC A,@A+PC;查表,取出显示段码 MOVX @DPTR,A ;送到8279显示RAM中指定的字节 INC R0;写8279的下一个显示RAM DJNZ R7,DIR0;循环9次,完成9位显示 RET DTAB:DBXXH DB XXH DB XXH
5 结束语
本文提出的16段和8段LED混合显示的电路,在机床数控装置中长期使用,效果良好。采用混合显示方式比全用16段LED数码管降低了成本,产生的效益相当可观,同时,节省了印制电路板的空间,显示界面也美观大方。
|