AT89C51与输入外设和输出外设的接口设计

上传人:大米 文档编号:579088141 上传时间:2024-08-25 格式:PPT 页数:106 大小:2.82MB
返回 下载 相关 举报
AT89C51与输入外设和输出外设的接口设计_第1页
第1页 / 共106页
AT89C51与输入外设和输出外设的接口设计_第2页
第2页 / 共106页
AT89C51与输入外设和输出外设的接口设计_第3页
第3页 / 共106页
AT89C51与输入外设和输出外设的接口设计_第4页
第4页 / 共106页
AT89C51与输入外设和输出外设的接口设计_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《AT89C51与输入外设和输出外设的接口设计》由会员分享,可在线阅读,更多相关《AT89C51与输入外设和输出外设的接口设计(106页珍藏版)》请在金锄头文库上搜索。

1、第第1010章章 AT89C51AT89C51与输入外设和输出外设的接口设计与输入外设和输出外设的接口设计 输入外设:输入外设:键盘、键盘、BCDBCD码拨盘等;码拨盘等;输出外设:输出外设:LEDLED显示器、显示器、LCDLCD显示器、打印机等。显示器、打印机等。10.1 10.1 LEDLED显示器的显示原理显示器的显示原理 LED LED(Light Emitting Diode)(Light Emitting Diode): :发光二极管的缩写。显示器前发光二极管的缩写。显示器前面冠以面冠以“LEDLED”。10.1.1 10.1.1 LEDLED显示器的结构显示器的结构 常用的常用

2、的LEDLED显示器为显示器为8 8段段(或(或7 7段段,8 8段比段比7 7段多了一个小数点段多了一个小数点“dpdp”段)。段)。有有共阳极共阳极和和共阴极共阴极两种。如两种。如图图10-110-1所示。所示。图图10-110-1为使为使LEDLED显示不同的符号或数字显示不同的符号或数字,要为,要为LEDLED提供提供段码段码(或称(或称字字型码型码)。)。提供给提供给LEDLED显示器的段码显示器的段码(字型码字型码)正好是一个字节(正好是一个字节(8 8段)段)。各段与字节中各位对应关系如各段与字节中各位对应关系如表表10-110-1。表表10-110-1按上述格式,按上述格式,8

3、 8段段LEDLED的段码如的段码如表表10-10-2 2所示。所示。显示字符显示字符共阴极共阴极段码段码共阳极共阳极段码段码显示字符显示字符共阴极共阴极段码段码共阳极共阳极段码段码0 03 3FHFHC0HC0Hc c3939H HC6HC6H1 10606H HF9HF9Hd d5 5EHEHA1HA1H2 25 5BHBHA4HA4HE E7979H H8686H H3 34 4FHFHB0HB0HF F7171H H8 8EHEH4 46666H H9999H HP P7373H H8 8CHCH5 56 6DHDH9292H HU U3 3EHEHC1HC1H6 67 7DHDH82

4、82H HT T3131H HCEHCEH7 70707H HF8HF8Hy y6 6EHEH9191H H8 87 7FHFH8080H HH H7676H H8989H H9 96 6FHFH9090H HL L3838H HC7HC7HA A7777FHFH8888H H“灭灭”0000H HFFHFFHb b7 7CHCH8383H H表表10-10-2 LED2 LED段码(段码(8 8段)段)表表10-10-2 2只列出了部分段码,只列出了部分段码,可根据实际情况选用可根据实际情况选用,也可重也可重 新定义。新定义。 N N个个LEDLED显示块有显示块有N N位位位选线位选线和和

5、88N N根根段码线段码线。 10.1.2 10.1.2 LEDLED显示器工作原理显示器工作原理图图10-210-2是是4 4位位 LEDLED显示器的结构原理图。显示器的结构原理图。图图10-210-2段码线段码线控制控制显示的字型显示的字型,位选线位选线控制控制该显示位的亮或暗。该显示位的亮或暗。静态显示静态显示和和动态显示动态显示两种显示方式。两种显示方式。1. LED1. LED静态显示方式静态显示方式各位的公共端连接在一起(接地或各位的公共端连接在一起(接地或+5+5V V)。)。 每位的段码线(每位的段码线(a adpdp)分别分别与一个与一个8 8位的锁存器输出相连。位的锁存器

6、输出相连。 显示字符一确定,相应锁存器的段码输出将维持不变,直显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。到送入另一个段码为止。显示的亮度高显示的亮度高。 图图10-3:10-3: 4 4位静态位静态LEDLED显示器电路显示器电路。该电路各位可独立显。该电路各位可独立显示。示。2. 2. LEDLED动态显示方式动态显示方式 所有位的段码线所有位的段码线相应段并在一起,由一个相应段并在一起,由一个8 8位位I/OI/O口控制口控制,形,形成成段码线的多路复用,段码线的多路复用,各位的各位的公共端公共端分别由相应的分别由相应的I/OI/O线控制,线控制,形成各位的形

7、成各位的分时选通。分时选通。图图10-310-3图图10-410-4:4 4位位8 8段段LEDLED动态显示电路。其中段码线占用一个动态显示电路。其中段码线占用一个8 8位位I/OI/O口,而位选线占用一个口,而位选线占用一个4 4位位I/OI/O口。口。图图10-410-4图图10-510-5为为8 8位位LEDLED动态显示动态显示2002008.10.108.10.10的过程的过程。图(图(a)a)是显示过程,是显示过程,某一时刻,某一时刻,只有一位只有一位LEDLED被选通显示,其被选通显示,其 余位则是熄灭的;余位则是熄灭的;图图(b)b)是实际显示结果,是实际显示结果,人眼看到的

8、是人眼看到的是8 8位稳定位稳定的的同时显示同时显示 的字符。的字符。图图10-510-510.2 10.2 键盘接口原理键盘接口原理10.2.1 10.2.1 键盘输入应解决的问题键盘输入应解决的问题1.1.键盘输入的特点键盘输入的特点2.2.键盘:一组按键开关的集合键盘:一组按键开关的集合。行线电压信号通过键盘开关。行线电压信号通过键盘开关机械触点的断开、闭合,其输出波形如机械触点的断开、闭合,其输出波形如图图10-610-6。图图10-610-62. 2. 按键的确认按键的确认 检测检测行线行线电平电平 高电平:高电平:断开;断开;低电平低电平:闭合,:闭合,常用常用软件来消除按键抖动。

9、软件来消除按键抖动。 基本思想基本思想:检测到有键按下,键对应的行线为低,软件延时检测到有键按下,键对应的行线为低,软件延时1010msms后,行线如仍为低,则确认该行有键按下。后,行线如仍为低,则确认该行有键按下。3.3.如何消除按键的抖动如何消除按键的抖动 当键松开时当键松开时,行线变高,软件延时,行线变高,软件延时1010msms后,行线仍为高,说后,行线仍为高,说明按键已松开。明按键已松开。采取以上措施,采取以上措施,躲开了两个抖动期躲开了两个抖动期t1t1和和t3t3的影响的影响。10.2.2 10.2.2 键盘接口的工作原理键盘接口的工作原理独立式独立式按键接口和按键接口和行列式行

10、列式键盘接口。键盘接口。1.1.独立式键盘接口独立式键盘接口各键相互独立,每个按键各接一根输入线,通过各键相互独立,每个按键各接一根输入线,通过检测输入线的检测输入线的电平状态电平状态可很容易判断那个键被按下。可很容易判断那个键被按下。此种接口此种接口适于键数较少适于键数较少或或操作速度较高操作速度较高的场合。的场合。图图10-710-7(a a)为为中断方式的独立式中断方式的独立式键盘工作电路键盘工作电路图图10-710-7(b b)为为查询方式的独立式查询方式的独立式键盘工作电路。键盘工作电路。图图10-710-7图图10-810-8为为8282C55C55扩展扩展I/OI/O口口的的独立

11、式独立式按键接口电路。按键接口电路。图图10-810-82. 2. 行列式行列式( (矩阵式矩阵式) )键盘接口键盘接口 用于按键数目较多的场合,用于按键数目较多的场合,由由行线和列线组成行线和列线组成,按键位于,按键位于行、列的交叉点上。如行、列的交叉点上。如图图10-10-9 9所示。所示。 按键数目较多的场合按键数目较多的场合,行列式键盘与独立式键盘相比,要,行列式键盘与独立式键盘相比,要节省很多的节省很多的I/OI/O口线口线。图图10-910-9(1 1)行列式键盘工作原理)行列式键盘工作原理 无键按下,该行线为高电平,无键按下,该行线为高电平,当有键按下时,行线电平当有键按下时,行

12、线电平由列线的电平来决定由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发生影响,由于行、列线为多键共用,各按键彼此将相互发生影响,必须必须将行、列线信号配合起来并作适当的处理,才能确定闭合将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。键的位置。(2 2)按键的识别方法按键的识别方法a. a. 扫描法扫描法 图图10-10-9 9 中中3 3号键号键被按下为例,来说明此键时如何被识别被按下为例,来说明此键时如何被识别出来的。出来的。识别键盘有无键被按下的方法,分两步进行:识别键盘有无键被按下的方法,分两步进行:第第1 1步:步:识别键盘有无键按下;识别键盘有无键按下

13、;第第2 2步:步:如有键被按下,识别出具体的按键。如有键被按下,识别出具体的按键。 把所有列线置把所有列线置0 0,检查各行线电平是否有变化,如有变化,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。说明有键按下,如无变化,则无键按下。 上述方法称为上述方法称为扫描法扫描法,即,即先把某一列置低电平,其余各列先把某一列置低电平,其余各列为高电平,检查各行线电平的变化为高电平,检查各行线电平的变化,如果某行线电平为低,可,如果某行线电平为低,可确定确定此行列交叉点此行列交叉点处的按键被按下。处的按键被按下。 b. b. 线反转法线反转法 只需两步便能获得此按键所在的行列

14、值,线反转法的原只需两步便能获得此按键所在的行列值,线反转法的原理如理如图图10-10-1010。图图10-1010-10第第1 1步:步:列线输出为全低电平,则行线中电平由高变低的所在列线输出为全低电平,则行线中电平由高变低的所在 行为按键所在行。行为按键所在行。第第2 2步:步:行线输出为全低电平,则列线中电平由高变低所在列为行线输出为全低电平,则列线中电平由高变低所在列为 按键所在列。按键所在列。 结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。10.2.3 10.2.3 键盘的工作方式键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输入,取单片机在忙于

15、各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。决于键盘的工作方式。原则:原则:即要保证能及时响应按键操作,又不要过多占用即要保证能及时响应按键操作,又不要过多占用CPUCPU的的 工作时间。工作时间。 通常,通常,键盘工作方式有键盘工作方式有3 3种种,即编程扫描、定时扫描和中断扫,即编程扫描、定时扫描和中断扫描。描。1. 1. 编程扫描方式编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。工作过程:工作过程:(1 1)在键盘扫描子程序中,先判断有无键按下。)在键盘扫描子程序中,先判断有无键按下。方法:方法:PAP

16、A口口8 8位位输出输出全全0 0,读读PCPC口口低低4 4位状态,若位状态,若PC0PC0PC3PC3为全为全 1 1,则说明键盘无键按下;若不全为,则说明键盘无键按下;若不全为1 1,则说明键盘可能,则说明键盘可能 有键按下。有键按下。(2 2)用软件来消除按键抖动的影响。如有键按下,则进行下)用软件来消除按键抖动的影响。如有键按下,则进行下 一步。一步。(3 3)求按下键的键号。)求按下键的键号。(4 4)等待按键释放后,再进行按键功能的处理操作。)等待按键释放后,再进行按键功能的处理操作。2. 2. 定时扫描方式定时扫描方式 利用单片机内的定时器,产生利用单片机内的定时器,产生101

17、0msms的定时中断,对键盘进行的定时中断,对键盘进行扫描。扫描。3.3.中断扫描方式中断扫描方式 只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。单片机将不理睬键盘。 键盘所做的工作分为三个层次键盘所做的工作分为三个层次。第第1 1层:层:单片机如何来监视键盘的输入。三种工作方式:单片机如何来监视键盘的输入。三种工作方式:编编 程扫描程扫描定时扫描定时扫描中断扫描。中断扫描。第第2 2层:层:确定具体按键的键号。体现在按键的识别方法上就确定具体按键的键号。体现在按键的识别方法上就 是:是:扫描法;扫描法;线反转法

18、。线反转法。第第3 3层:层:执行键处理程序。执行键处理程序。10.3 10.3 键盘键盘/ /显示器接口设计实例显示器接口设计实例 一般把键盘和显示器放在一起考虑。一般把键盘和显示器放在一起考虑。10.3.1 10.3.1 利用利用AT89C51AT89C51单片机串行口实现的键盘单片机串行口实现的键盘/ /显示器接口显示器接口 当单片机的串口未作它用时,可使用串口来外扩键盘当单片机的串口未作它用时,可使用串口来外扩键盘/ /显示显示 器。应用串口方式器。应用串口方式0 0的输出方式,外扩移位寄存器的输出方式,外扩移位寄存器 74LS164 74LS164,构成键盘,构成键盘/ /显示器接口

19、,硬件接口电路如显示器接口,硬件接口电路如图图10-1110-11图图10-1110-11图图10-1110-11所示的所示的8 8个个74LS16474LS164:74LS164(0)74LS164(0)74LS164(7)74LS164(7)作为作为8 8位位 LED LED的段码输出口,的段码输出口,AT89C51AT89C51的的P3.4P3.4、P3.5P3.5作为两行键的行状作为两行键的行状 态输入线。态输入线。P3.3P3.3作为作为TXDTXD引脚同步移位脉冲输出控制线,引脚同步移位脉冲输出控制线,P3.3P3.3= =0 0时,与门时,与门 输入为输入为0 0,禁止同步移位脉

20、冲输出。,禁止同步移位脉冲输出。这种静态显示方式的这种静态显示方式的优点优点是亮度大,是亮度大,很容易做到显示不闪烁很容易做到显示不闪烁, 且且CPUCPU不必频繁地为显示服务,因而主程序可不必扫描显示不必频繁地为显示服务,因而主程序可不必扫描显示 器,软件设计比较简单,从而使单片机有更多的时间处理其器,软件设计比较简单,从而使单片机有更多的时间处理其 他事务。下面是显示子程序和键盘扫描子程序的清单。他事务。下面是显示子程序和键盘扫描子程序的清单。显示子程序:显示子程序:DIRDIR: SETBSETBP3.3P3.3; P3.3=1, ; P3.3=1, 允许允许TXDTXD引脚同步移位脉冲

21、输出引脚同步移位脉冲输出 MOVMOVR7,R7,08H08H; ; 送出的段码个数送出的段码个数, R7, R7为段码个数计数器为段码个数计数器 MOVMOVR0,R0,7FH7FH; 7FH; 7FH78H78H为显示数据缓冲区为显示数据缓冲区DL0DL0: MOV MOV A,R0A,R0; ; 取出要显示的数送取出要显示的数送A AADD ADD A,A,0DH0DH; ; 加上偏移量加上偏移量 MOVC MOVC A,AA,APCPC; ; 查段码表查段码表SEGTAG, SEGTAG, 取出段码取出段码 MOV MOV SBUF ,ASBUF ,A; ; 将段码送将段码送SBUFS

22、BUFDL1DL1: JNB TI,DL1JNB TI,DL1; ; 输出段码输出段码, , 查询查询TITI状态状态, 1, 1个字节的段码个字节的段码;输出完否?;输出完否? CLR CLR TITI; 1; 1个字节的段码输出完个字节的段码输出完, , 清清TITI标志标志 DEC DEC R0R0; ; 指向下一个显示数据单元指向下一个显示数据单元 DJNZ DJNZ R7,DL0R7,DL0; ; 段码个数计数器段码个数计数器R7R7是否为是否为0, 0, 如不为如不为0, 0, 继继;续送段码;续送段码 CLR CLR P3.3P3.3; 8; 8个段码输出完毕个段码输出完毕, ,

23、 关闭显示器输出关闭显示器输出 RET RET ; ; 返回返回SEGTABSEGTAB:DB DB 0C0H,0F9H,0A4H,0B0H,99H ; 0C0H,0F9H,0A4H,0B0H,99H ; 共阳极段码表共阳极段码表, 0,1,2,3,4, 0,1,2,3,4 DB DB 92H,82H,0F8H,90H92H,82H,0F8H,90H ; 5,6,7,8,9 ; 5,6,7,8,9 DB DB 88H,83H,0C6H,0A1H,86H ; A,B,C,D,E88H,83H,0C6H,0A1H,86H ; A,B,C,D,E DB DB 8FH,0BFH,8CH,0FFH,0F

24、FH ; F,8FH,0BFH,8CH,0FFH,0FFH ; F,P,P,暗暗键盘扫描子程序:键盘扫描子程序:KEYIKEYI: MOV MOV A,A,00H00H; ; 判断有无键按下,所有列线为判断有无键按下,所有列线为0 0的编码送的编码送A A MOV MOV SBUF,ASBUF,A; ; 扫描键盘的(扫描键盘的(8 8)号)号74LS16474LS164输出为输出为00H, 00H, ;使所有列线为;使所有列线为0 0KL0KL0: JNB JNB TI,KL0TI,KL0; ; 串行输出完否?串行输出完否? CLR CLR TITI; ; 串行输出完毕串行输出完毕, , 清清

25、TITIKL1KL1:JNBJNBP3.4,PK1 ; P3.4,PK1 ; 第一行有闭合键吗?如有第一行有闭合键吗?如有, , 跳跳PK1PK1进行处理进行处理 JB JB P3.5,KL1 ; P3.5,KL1 ; 在第二行键中有闭合键吗?无闭合键跳在第二行键中有闭合键吗?无闭合键跳KL1KL1PK1PK1: ACALL ACALL DL10DL10; ; 调用延时调用延时10ms10ms子程序子程序DL10, DL10, 软件消除抖动软件消除抖动 JNB JNB P3.4,PK2P3.4,PK2; ; 判断是否由抖动引起?判断是否由抖动引起? JB JB P3.5,KL1P3.5,KL1

26、PK2PK2: MOV MOV R7,R7,08H08H; ; 不是抖动引起的不是抖动引起的 MOV MOV R6,R6,0FEH ; 0FEH ; 判别是哪一个键按下判别是哪一个键按下, FEH, FEH为最左一列为低为最左一列为低 MOV MOV R3,R3,00H00H; R3; R3为列号寄存器为列号寄存器MOV MOV A,R6A,R6KL5KL5: MOV MOV SBUF,ASBUF,A; ; 列扫描码从串行口输出列扫描码从串行口输出KL2KL2: JNB JNB TI,KL2TI,KL2; ; 等待串行口发送完等待串行口发送完 CLR CLR TITI; ; 串行口发送完毕串行

27、口发送完毕, , 清清TITI标志标志 JNB JNB P3.4,PKONEP3.4,PKONE; ; 读第一行线状态读第一行线状态, , 第一行有键闭合第一行有键闭合, , 跳跳;PKONE;PKONE JB JB P3.5,NEXTP3.5,NEXT; ; 读第二行线状态读第二行线状态, , 是第二行某键否?是第二行某键否? MOV MOV R4,R4,08H08H; ; 第二行键中有键被按下第二行键中有键被按下, , 行首键号行首键号08H08H; ; 送送R4R4 AJMP AJMP PK3PK3PKONEPKONE:MOV MOV R4,R4,00H00H; ; 第一行键中有键按下第

28、一行键中有键按下, , 行首键号行首键号00H00H送送; R4; R4PK3PK3: MOV MOV SBUF,SBUF,00H00H; ; 等待键释放等待键释放, , 发送发送00H00H使所有列线为低使所有列线为低KL3KL3: JNB JNB TI,KL3TI,KL3 CLR CLR TITI; ; 发送完毕发送完毕, , 清标志清标志KL4KL4: JNB JNB P3.4,KL4P3.4,KL4; ; 判行线状态判行线状态 JNB JNB P3.5P3.5MOV MOV A,R4A,R4; ; 两行线均为高两行线均为高, , 说明键已释放说明键已释放 ADD ADD A,R3A,R

29、3; ; 计算得键码计算得键码A A RETRETNEXTNEXT: MOV MOV A,R6A,R6 ; ; 列扫描码左移一位列扫描码左移一位, , 判下一列键是否按下判下一列键是否按下 RL RL A A MOV MOV R6,AR6,A; ; 记住列扫描码于记住列扫描码于R6R6中中 INC INC R3R3; ; 列号增列号增1 1 DJNZ DJNZ R7,KL5R7,KL5; ; 列计数器列计数器R7R7减减1, 81, 8列键都检查完否?列键都检查完否? AJMP AJMP KEYIKEYI ; 8 ; 8列键扫描完毕列键扫描完毕, , 开始下一个键盘扫描周期开始下一个键盘扫描周

30、期DL10DL10: MOV MOV R7,R7,0AH0AH; ; 延时延时10ms10ms子程序子程序DLDL: MOV MOV R6,R6,0FFH0FFHDL6DL6: DJNZ DJNZ R6,DL6R6,DL6 DJNZ DJNZ R7,DLR7,DL RETRET10.3.2 10.3.2 专用芯片专用芯片HD7279AHD7279A实现的键盘实现的键盘/ /显示器接口显示器接口 目前已有各种专用的可编程的键盘目前已有各种专用的可编程的键盘/ /显示器接口芯片可供用户显示器接口芯片可供用户选择。可省去编写键盘选择。可省去编写键盘/ /显示器动态扫描程序的烦琐工作,显示器动态扫描程

31、序的烦琐工作,只需对键盘只需对键盘/ /显示器接口芯片中的各个控制寄存器进行正确显示器接口芯片中的各个控制寄存器进行正确的设置的设置以及单片机与键盘以及单片机与键盘/ /显示器接口芯片进行正确的连接显示器接口芯片进行正确的连接即可。即可。1 1各种键盘各种键盘/ /显示器专用芯片简介显示器专用芯片简介目前专用的键盘目前专用的键盘/ /显示器接口芯片种类繁多,它们各有特点及显示器接口芯片种类繁多,它们各有特点及优缺点,总体趋势是并行接口芯片逐渐退出历史舞台,优缺点,总体趋势是并行接口芯片逐渐退出历史舞台,串行串行接口芯片越来越多的得到应用。接口芯片越来越多的得到应用。其中,串行键盘其中,串行键盘

32、/ /显示器接显示器接口芯片口芯片HD7279HD7279是目前广泛使用的专用的键盘是目前广泛使用的专用的键盘/ /显示器接口芯显示器接口芯片片以前以前设计的设计的经典方案,经典方案,是采用是采用IntelIntel公司于公司于2020世纪世纪8080年代推出的年代推出的82798279芯片来控制键盘与显示器。芯片来控制键盘与显示器。但是但是82798279的驱动电流较小,需要加上驱动电路,如的驱动电流较小,需要加上驱动电路,如8 8个三级管及个三级管及相应的基极限流电阻,元器件较多,电路复杂,占用较大的相应的基极限流电阻,元器件较多,电路复杂,占用较大的PCBPCB面积,综合成本高。而且面积

33、,综合成本高。而且82798279采用并行方式与单片机通采用并行方式与单片机通信,占用多达信,占用多达1313条的口线,对单片机系统造成了极大的浪费,条的口线,对单片机系统造成了极大的浪费,故故82798279在今天已经渐渐淡出市场。在今天已经渐渐淡出市场。目前流行的键盘目前流行的键盘/ /显示器接口芯片均采用串行通信方式,占用口显示器接口芯片均采用串行通信方式,占用口线少。线少。常见的键盘常见的键盘/ /显示器接口芯片有显示器接口芯片有:周立功公司生产的:周立功公司生产的ZLG7289AZLG7289A、ZLG7290BZLG7290B、MAX7219MAX7219、南京沁恒公司生产的、南京

34、沁恒公司生产的CH451CH451、BC7281BC7281和和HD7279HD7279等,下面给予简要介绍。等,下面给予简要介绍。(1 1)ZLG7290BZLG7290B。ZXLG7290BZXLG7290B芯片采用芯片采用I2CI2C总线结构,实现总线结构,实现8 8位位LEDLED显示和显示和6464键的键盘管理,应用时需要外接晶振,使用按键功键的键盘管理,应用时需要外接晶振,使用按键功能时要接能时要接8 8个二极管,电路稍显复杂,且每次个二极管,电路稍显复杂,且每次I I2 2C C通信间隔过通信间隔过长(长(10ms10ms)。)。ZLG7290BZLG7290B的功能包括:闪烁、

35、段点亮、段熄灭、功能键、连击的功能包括:闪烁、段点亮、段熄灭、功能键、连击键计数等。其中,功能键实现了组合按键,这在各类芯片中键计数等。其中,功能键实现了组合按键,这在各类芯片中极具特点;连击键计数实现了识别长按键的功能,这也是极具特点;连击键计数实现了识别长按键的功能,这也是ZLG7290BZLG7290B所独有的。所独有的。(2 2)MAX7219MAX7219。MAX7219MAX7219芯片采用串行芯片采用串行SPISPI接口,仅是单纯驱动接口,仅是单纯驱动显示器,没有键盘管理功能,功能较为单一且价格较高,但显示器,没有键盘管理功能,功能较为单一且价格较高,但抗干扰能力较强。抗干扰能力

36、较强。 (3 3)BC7281BC7281。最高可驱动。最高可驱动1616位位LEDLED显示和实现显示和实现6464键的键盘管理,键的键盘管理,可实现闪烁、段点亮、段熄灭等功能。其最大特点是通过外可实现闪烁、段点亮、段熄灭等功能。其最大特点是通过外接移位寄存器驱动接移位寄存器驱动1616位位LEDLED显示。但其所需外围电路较多,占显示。但其所需外围电路较多,占用用PCBPCB空间较大,且在驱动空间较大,且在驱动1616位位LEDLED显示时由于采用动态扫描显示时由于采用动态扫描方式工作,电流噪声过大。方式工作,电流噪声过大。(4 4)CH451CH451。CH451CH451芯片可实现芯片

37、可实现8 8位位LEDLED显示和显示和6464键的键盘管理,键的键盘管理,但其抗干扰能力较差。但其抗干扰能力较差。(5 5)HD7279HD7279。HD7279HD7279芯片功能强,具有一定的抗干扰能力,与芯片功能强,具有一定的抗干扰能力,与单片机间采用串行通信,外围电路简单,价格低廉。由于单片机间采用串行通信,外围电路简单,价格低廉。由于HD7279HD7279具有上述优点,因此在键盘具有上述优点,因此在键盘/ /显示器接口的设计中得到显示器接口的设计中得到了较为广泛的应用。了较为广泛的应用。2 2专用键盘专用键盘/ /显示器芯片显示器芯片HD7279AHD7279A简介简介 HD72

38、79A HD7279A能同时驱动能同时驱动8 8个共阴极个共阴极LEDLED显示器(或显示器(或6464个独立的个独立的LEDLED发光二极管)和发光二极管)和6464(8 8 8 8)键的键盘矩阵。)键的键盘矩阵。HD7279AHD7279A采用的是采用的是动态循环显示方式,芯片具有如下动态循环显示方式,芯片具有如下特点特点:与与AT89C51AT89C51单片机间采用串行接口方式,仅占用单片机间采用串行接口方式,仅占用4 4条口线,接条口线,接口简单;口简单;内部含有译码器,内部含有译码器,可直接接收可直接接收BCDBCD码或十六进制码码或十六进制码,同时具,同时具有两种译码方式,实现有两

39、种译码方式,实现LEDLED显示器位寻址和段寻址,可以方显示器位寻址和段寻址,可以方便地控制每位便地控制每位LEDLED显示器中任意一段是否发光;显示器中任意一段是否发光;内部含有驱动器,可以内部含有驱动器,可以直接驱动直接驱动25.4mm25.4mm及以下及以下LEDLED显示器;显示器;多种控制命令,如消隐、闪烁、左移、右移和段寻址、位寻多种控制命令,如消隐、闪烁、左移、右移和段寻址、位寻址等;址等;含有片选信号输入端,容易实现多于含有片选信号输入端,容易实现多于8 8位显示器或多于位显示器或多于6464键键的键盘控制;的键盘控制;具有具有自动消除键抖动自动消除键抖动并识别按键键值的功能。

40、并识别按键键值的功能。HD7279AHD7279A芯片占用芯片占用口线少,外围电路简单口线少,外围电路简单,还具有,还具有较高的性能较高的性能价格比价格比,已得到广泛应用。,已得到广泛应用。(1 1)引脚说明与电气特性)引脚说明与电气特性HD7279AHD7279A芯片为芯片为2828引脚标准双列直插式封装,单一的引脚标准双列直插式封装,单一的+5V+5V供电。供电。引脚如引脚如图图10-1210-12所示,所示,引脚功能引脚功能如如表表10-310-3所列。所列。位驱动输出端位驱动输出端DIG0DIG0DIG7DIG7可分别连接可分别连接8 8只只LEDLED数码管的共阴极;数码管的共阴极;

41、段驱动输出端段驱动输出端SASASGSG分别连接至分别连接至LEDLED数码管的数码管的a ag g段的阳极,段的阳极,而而DPDP连至小数点连至小数点dpdp的阳极。的阳极。DIG0DIG0DIG7DIG7和和DPDP及及SASASGSG还分别是还分别是6464键的键盘的列线和行线的键的键盘的列线和行线的端口,完成对键盘的译码和键值识别。端口,完成对键盘的译码和键值识别。8888阵列中的每个键阵列中的每个键值可用读键盘命令读出,值可用读键盘命令读出,键值范围是键值范围是00H00H3FH3FH。图图10-1210-12HD7279AHD7279A芯片与单片机连接仅需芯片与单片机连接仅需4 4

42、条口线条口线:CS*CS*,DATADATA,CLKCLK和和KEYKEY。CS*CS*:当单片机访问当单片机访问HD7279AHD7279A芯片(写入命令、显示数据、位芯片(写入命令、显示数据、位地址、段地址或读出键值)时,应将地址、段地址或读出键值)时,应将CS*CS*置为低电平。置为低电平。DATADATA:串行串行数据端数据端,当单片机向,当单片机向HD7279AHD7279A芯片发送数据时,芯片发送数据时,DATADATA为输入端;当单片机从为输入端;当单片机从HD7279AHD7279A芯片读入键值时,芯片读入键值时,DATADATA为输出端。为输出端。CLKCLK:数据串行传送的

43、同步时钟输入端,时钟的上升沿将数据数据串行传送的同步时钟输入端,时钟的上升沿将数据写入写入HD7279AHD7279A中或从中或从HD7279AHD7279A中读出数据。中读出数据。KEYKEY:按键信号输出端,在无键按下时为高电平,在有键按下按键信号输出端,在无键按下时为高电平,在有键按下时变为低电平,并且一直保持到该按下键至释放为止。时变为低电平,并且一直保持到该按下键至释放为止。RESET*:RESET*:复位端,由低电平变为高电平,并经过复位端,由低电平变为高电平,并经过181825ms25ms复位复位结束。通常,该端接结束。通常,该端接+5V+5V即可。若对可靠性要求较高,则可即可。

44、若对可靠性要求较高,则可外接复位电路,或直接由单片机控制。外接复位电路,或直接由单片机控制。RC:RC:用于外接振荡元件,其用于外接振荡元件,其典型值典型值:R R=1.5k=1.5k ,C C=15pF=15pF。NC:NC:必须悬空,即不得有任何外部连接。必须悬空,即不得有任何外部连接。 表表10-410-4所列为所列为HD7279AHD7279A的电气特性。的电气特性。(2 2)控制命令介绍)控制命令介绍HD7279AHD7279A芯片的控制命令由芯片的控制命令由6 6条纯命令条纯命令、7 7条带数据命令条带数据命令和和1 1条条读键盘命令读键盘命令组成。组成。 纯命令(纯命令(6 6条

45、)。条)。所有纯命令所有纯命令都是都是1 1字节命令字节命令,如,如表表10-510-5所所列。列。 带数据命令(带数据命令(7 7条)。条)。均由均由双字节双字节组成,组成,第第1 1字节字节为命令标志为命令标志码(有的还有位地址),码(有的还有位地址),第第2 2字节字节为显示内容。为显示内容。a.a.按方式按方式0 0译码显示命令译码显示命令 此命令又称按方式此命令又称按方式0 0译码下载命令。译码下载命令。命令中的命令中的a2a2、a1a1、a0a0表示表示LEDLED数码管的位地址,即显示数据是送数码管的位地址,即显示数据是送给哪一位给哪一位LEDLED的,的,L1L1表示表示LED

46、LED最低位,最低位,L8L8表示表示LEDLED最高位,具最高位,具体位地址译码表如体位地址译码表如表表10-610-6所示。所示。命令中的命令中的d3d3、d2d2、d1d1、d0d0为显示数据,收到这些数据后,为显示数据,收到这些数据后,HD7279AHD7279A按按表表10-710-7所示的规则译码和显示。所示的规则译码和显示。dpdp为小数点显示为小数点显示控制位,控制位,dpdp= =1 1时,小数点显示,时,小数点显示,dpdp= =0 0时,小数点不显示。时,小数点不显示。命令中的命令中的为无影响位。为无影响位。 b. b. 按方式按方式1 1译码显示命令译码显示命令 此命令

47、又称方式此命令又称方式1 1译码下载命令。该命令和按方式译码下载命令。该命令和按方式0 0译码显示译码显示的含义基本相同,不同的是译码方式为的含义基本相同,不同的是译码方式为1 1,LEDLED显示的内容与十显示的内容与十六进制相对应,如六进制相对应,如表表10-810-8所示。所示。a2a2、a1a1、a0a0位地址译码表如位地址译码表如表表10-910-9所示。所示。例如,例如,命令第一字节为命令第一字节为C8HC8H,第二字节为,第二字节为09H09H,则,则L1L1位位LEDLED显示内显示内 容为容为9 9,小数点,小数点dpdp熄灭;命令第一字节为熄灭;命令第一字节为C9HC9H,

48、第二字节为,第二字节为 8FH 8FH,则,则L2L2位位LEDLED显示内容为显示内容为F F,小数点,小数点dpdp点亮。点亮。 c. c. 不译码显示命令不译码显示命令 此命令又称此命令又称不译码下载命令不译码下载命令。a2a2、a1a1、a0a0仍为位地址,译码表仍为位地址,译码表 如如表表10-810-8所示。所示。第第2 2字节仍为字节仍为LEDLED显示内容,其中显示内容,其中dpdp和和A AG G分别代表分别代表LEDLED的小数点的小数点 和对应的段,当取值为和对应的段,当取值为1 1时,该段点亮;取值为时,该段点亮;取值为0 0时,该段熄时,该段熄 灭,如灭,如表表10-

49、910-9所示。所示。 该命令可在指定位上显示字符。例如,若命令第一字节为该命令可在指定位上显示字符。例如,若命令第一字节为95H95H,第二字节为,第二字节为3EH3EH,则在,则在L6L6位位LEDLED上显示字符上显示字符U U,小数,小数点点dpdp 熄灭。熄灭。d d闪烁控制命令如下:闪烁控制命令如下: 例如,命令第一字节为例如,命令第一字节为88H88H,第二字节为,第二字节为97H97H,则,则L7L7、L6L6、L4L4位位LEDLED闪烁。闪烁。 e e消隐控制命令如下:消隐控制命令如下:该命令规定了每个数码管的该命令规定了每个数码管的消隐属性消隐属性。d8d8d1d1分别对

50、应分别对应L8L8L1L1位数码管,其值为位数码管,其值为1 1时,时,LEDLED显示;值为显示;值为0 0时,消隐,如时,消隐,如表表10-1110-11所示。应注意至少要有一个所示。应注意至少要有一个LEDLED数码管保持显示,如果全部消隐,数码管保持显示,如果全部消隐,则该命令无效。则该命令无效。例如,命令第一字节为例如,命令第一字节为98H98H,第二字节为,第二字节为81H81H,则,则L7L7、L6L6、L5L5、L4L4、L3L3、L2L2位位LEDLED消隐。消隐。f f段点亮命令如下:段点亮命令如下: 该命令的作用是点亮某个该命令的作用是点亮某个LEDLED数码管中的某一段

51、或独立的数码管中的某一段或独立的6464个个 LED LED发光二极管中的某一个。命令中发光二极管中的某一个。命令中为无影响位,为无影响位,d5d5d0d0 取值为取值为00H00H3FH3FH,所对应点亮段如,所对应点亮段如表表10-1210-12所示。所示。 例如,命令第一字节为例如,命令第一字节为E0HE0H,第二字节为,第二字节为00H00H,则点亮,则点亮L1L1位位LEDLED的的g g段;第二字节为段;第二字节为10H10H,则点亮,则点亮L3L3位位LEDLED的的g g段。段。g g段关闭命令如下:段关闭命令如下: 该命令的作用是关闭某个数码管中的某一段。命令中的该命令的作用

52、是关闭某个数码管中的某一段。命令中的为为 无影响位,无影响位,d5d5d0d0的取值为的取值为00H00H3FH3FH,所对应的关闭段同表,所对应的关闭段同表 10-11 10-11,仅将点亮段变为关闭段。,仅将点亮段变为关闭段。例如,命令第一字节为例如,命令第一字节为C0HC0H,第二字节为,第二字节为00H00H,则关闭,则关闭L1L1位位LEDLED 的的g g段;第二字节为段;第二字节为10H10H,则关闭,则关闭L3L3位位LEDLED的的g g段段 读取键盘命令读取键盘命令 读取键盘命令从读取键盘命令从HD7279AHD7279A读出当前的按键值。命令的读出当前的按键值。命令的第一

53、字第一字节节为为15H15H,表示单片机写到,表示单片机写到HD7279AHD7279A的是读键命令,而的是读键命令,而第二字节第二字节d7d7d0d0为从为从HD7279AHD7279A中读出的按键值,其范围为中读出的按键值,其范围为00H00H3FH3FH。 当按键按下时,当按键按下时,KEYKEY引脚从高电平变为低电平,并保持到按引脚从高电平变为低电平,并保持到按键释放为止。在此期间,若键释放为止。在此期间,若HD7279AHD7279A收到来自单片机的读键盘命收到来自单片机的读键盘命令令15H15H,则,则HD7279AHD7279A输出当前的按键代码。输出当前的按键代码。 应注意,应

54、注意,HD7279AHD7279A只能给出其中一个按下键的代码,不适合需要只能给出其中一个按下键的代码,不适合需要两个或两个以上键同时按下的场合。如果确实需要双键组合两个或两个以上键同时按下的场合。如果确实需要双键组合使用,可在单片机某位使用,可在单片机某位I/OI/O引脚接一键,引脚接一键,HD7279AHD7279A所连键盘共所连键盘共同组成双键功能。同组成双键功能。 时序。时序。HD7279AHD7279A采用串行方式与单片机通信,串行数据从采用串行方式与单片机通信,串行数据从DATADATA引脚送入或输出,并与引脚送入或输出,并与CLKCLK端同步。当端同步。当片选信号片选信号CS*C

55、S*变为变为低电平后,低电平后,DATADATA引脚上的数据在引脚上的数据在CLKCLK脉冲上升沿作用下写入脉冲上升沿作用下写入或读出或读出HD7279AHD7279A的数据缓冲器。的数据缓冲器。(3 3)命令时序)命令时序图图10-1310-13a. a. 纯命令时序纯命令时序单片机发出单片机发出8 8个个CLKCLK脉冲,向脉冲,向HD7279AHD7279A发出发出8 8位命令,位命令,DATADATA引脚引脚最后为高阻态,如最后为高阻态,如图图10-1310-13所示。所示。图图10-1410-14b. b. 带数据命令时序带数据命令时序单片机发出单片机发出1616个个CLKCLK脉冲

56、,前脉冲,前8 8个向个向HD7279AHD7279A发送发送8 8位命令;后位命令;后8 8个向个向HD7279AHD7279A传送传送8 8位显示数据,位显示数据,DATADATA引脚最后为高阻态,如引脚最后为高阻态,如图图10-1410-14所示。所示。 c. c. 读键盘命令时序读键盘命令时序单片机发出单片机发出1616个个CLKCLK脉冲,脉冲,前前8 8个个向向HD7279AHD7279A发送发送8 8位命令;发送位命令;发送完之后完之后DATADATA引脚为高阻态;引脚为高阻态;后后8 8个个CLKCLK由由HD7279AHD7279A向单片机返回向单片机返回8 8位按键值,位按

57、键值,DATADATA引脚为输出状态。最后一个引脚为输出状态。最后一个CLKCLK脉冲的下降脉冲的下降沿将沿将DATADATA引脚恢复为高阻态,如引脚恢复为高阻态,如图图10-1510-15所示。所示。 图图10-1510-15保证正确的时序是保证正确的时序是HD7279AHD7279A正常工作的正常工作的前提条件前提条件。当选定。当选定HD7279AHD7279A的振荡元件的振荡元件RCRC和单片机的晶振之后,应调节延时时和单片机的晶振之后,应调节延时时间,使时序中的间,使时序中的T T1 1T T8 8满足满足表表10-1310-13所列要求。由表中的数所列要求。由表中的数值可知值可知HD

58、7279AHD7279A的速度,的速度,应仔细调整应仔细调整HD7279AHD7279A的时序,使其运的时序,使其运行时间接近最短行时间接近最短。3 3AT89C51AT89C51与与HD7279AHD7279A接口设计接口设计(1 1)硬件接口电路)硬件接口电路图图10-1610-16是与是与AT89C51AT89C51单片机的接口电路,外接振荡元件为典型单片机的接口电路,外接振荡元件为典型值,值,89C5189C51的晶振频率为的晶振频率为12MHz12MHz。上电后上电后,HD7279AHD7279A大约经过大约经过151518ms18ms的时间才进入工作状态。的时间才进入工作状态。HD

59、7279AHD7279A应连接应连接共阴极共阴极显示器。对于不使用的按键和显示器,显示器。对于不使用的按键和显示器,可以不连接。省去的显示器或对显示器设置的消隐、闪烁属可以不连接。省去的显示器或对显示器设置的消隐、闪烁属性,均性,均不影响键盘的使用不影响键盘的使用。除非不使用显示器,否则串联在除非不使用显示器,否则串联在DPDP及及SASASGSG引线上的引线上的200200电电阻不可省去。阻不可省去。如果不使用键盘如果不使用键盘,图图10-2010-20中与键盘连接的中与键盘连接的10k10k电阻和电阻和100k100k电阻便可省去。电阻便可省去。如果使用键盘如果使用键盘,电路中的,电路中的

60、100k100k下拉电阻则不可省去。下拉电阻则不可省去。单片机单片机通过通过KEYKEY引线电平引线电平判断是否有键按下判断是否有键按下。在使用查询。在使用查询方式时,该引脚接至单片机的外部中断输入端,同时方式时,该引脚接至单片机的外部中断输入端,同时应将中断触发控制位设置成下降沿有效触发方式;若应将中断触发控制位设置成下降沿有效触发方式;若设置成电平触发方式,则在按键时间较长时可引发多设置成电平触发方式,则在按键时间较长时可引发多次中断申请问题。次中断申请问题。HD7279AHD7279A采用动态循环扫描方式采用动态循环扫描方式,如果采用的普通,如果采用的普通LEDLED显显示器亮度不够,则

61、可采用高亮度或超高亮度的型号。示器亮度不够,则可采用高亮度或超高亮度的型号。图图10-1610-16中的中的3 3、5 5、2626引脚悬空。引脚悬空。图图10-1610-16(2 2)接口程序设计举例)接口程序设计举例根据根据图图10-1610-16,编制程序实现当有按键按下时,单片机读取该按,编制程序实现当有按键按下时,单片机读取该按键代码并将其显示在键代码并将其显示在LEDLED上。上。程序中使用单片机内程序中使用单片机内RAMRAM位寻址的位寻址的29H29H和和28H28H两个单元。两个单元。29H29H单元单元的位地址为的位地址为48H48H4FH4FH;28H28H单元的位地址为

62、单元的位地址为40H40H47H47H。 发送发送29H29H单元中的数据到单元中的数据到HD7279AHD7279A,高位在前。程序入口条件,高位在前。程序入口条件为为CS*=1CS*=1,CLK=0CLK=0。SEND:SEND:MOVMOVR2,#08HR2,#08H; ;发送发送8 8位数据位数据 CLR CLR P1.0P1.0; ;CS*=0CS*=0 LCALLLCALLDELY1DELY1; ;延时延时5050 s(T1)s(T1)LOOP1: LOOP1: MOVMOVC,4FHC,4FH;29H;29H单元的单元的D7D7位传至位传至HD7279AHD7279A MOVMO

63、VP1.2,CP1.2,C; ;数据出现在数据出现在DATADATA引脚上引脚上 SETBSETBP1.1P1.1; ;置置CLKCLK为高电平为高电平, ,数据写入数据写入HD7279AHD7279A MOVMOVA,29HA,29H; ;待发数据左移待发数据左移1 1位位RLRLA A MOV MOV29H,A 29H,A LCALL LCALLDELY2DELY2; ;延时延时8 8 s(T2)s(T2) CLR CLRP1.1P1.1; ;置置CLKCLK为低电平为低电平LCALLLCALLDELY2DELY2 ; ;延时延时8 8 s(T3)s(T3)DJNZDJNZR2,LOOP1

64、R2,LOOP1; ;检测检测8 8位数据是否发送完毕位数据是否发送完毕 CLRCLRP1.2P1.2 ; ;发送完毕发送完毕, ,DATADATA为低(输出状态)为低(输出状态) RETRET ; ;返回返回 读入的键码送到读入的键码送到28H28H单元,高位在前。程序入口条件为单元,高位在前。程序入口条件为CS*=0CS*=0,CLK=0CLK=0。RESE:RESE:MOVMOVR2,#08HR2,#08H; ;接收接收8 8位数据位数据SETBSETBP1.2P1.2;P1.2;P1.2输出锁存器为高电平输出锁存器为高电平, ,准备输入准备输入LCALLLCALLDELY3DELY3;

65、 ;延时延时2525 s(T5)s(T5)LOOP2: SETBLOOP2: SETBP1.1P1.1; ;置置CLKCLK为高电平为高电平, ,读出读出HD7279AHD7279A数据数据LCALLLCALLDELY2DELY2; ;延时延时8 8 s(T6 s(T6 和和T7)T7)MOVMOVA,28HA,28H; ;接收数据左移接收数据左移1 1位位RLRLA AMOVMOV28H,A28H,AMOVMOVC,P1.2C,P1.2; ;接收接收1 1位数据位数据MOVMOV40H,C40H,C; ;读入数据存入读入数据存入28H28H的的D0D0位位CLRCLRP1.1P1.1 ; ;

66、置置P1.1P1.1为低电平为低电平LCALLLCALLDELY2DELY2; ;延时延时8 8 s(T3)s(T3)DJNZDJNZR2,LOOP2R2,LOOP2; ;检测检测8 8位数据是否发送完毕位数据是否发送完毕CLRCLRP1.2P1.2; ;接收完毕接收完毕, ,DATADATA引脚置低电平(输出状态)引脚置低电平(输出状态)RETRET; ;返回返回 查询方式读键值并显示。查询方式读键值并显示。MOVMOVP1,#0F9HP1,#0F9H; ;CS*CS*=1,KEY=1,CLK=0,DATA=0=1,KEY=1,CLK=0,DATA=0 LCALL LCALLDELY4DEL

67、Y4; ;延时延时25ms25ms MOV MOV29H,#0A4H29H,#0A4H; ;复位命令复位命令LCALLLCALLSENDSENDSETBSETBP1.0P1.0; ;CS*CS*=1=1MAIN: MAIN: JBJBP1.3,MAINP1.3,MAIN; ;检测按键,无键按下则等待检测按键,无键按下则等待MOVMOV29H,#15H29H,#15H; ;发读键盘命令发读键盘命令 LCALLLCALLSENDSEND; ;写入写入HD7279AHD7279A LCALLLCALLRESERESE; ;读键值到读键值到28H28H单元单元 SETBSETBP1.0P1.0; ;C

68、S*CS*=1=1 MOVMOVB,#0AHB,#0AH; ;十六进制键值转换成十六进制键值转换成BCDBCD码码MOVMOVA,28HA,28HDIVDIVABABMOVMOVR1,AR1,A; ;十位暂存于十位暂存于R1R1MOVMOV29H,#81H 29H,#81H ; ;按方式按方式0 0译码显示在译码显示在L2L2位位LEDLEDLCALLLCALLSENDSEND; ;命令写入命令写入HD7279AHD7279ALCALLLCALLDELY3DELY3; ;延时延时2525 s(T4)s(T4)MOVMOV29H,R129H,R1LCALLLCALLSENDSEND; ;显示十位

69、显示十位SETBSETBP1.0P1.0; ;CS*CS*=1=1MOVMOV29H,#80H29H,#80H; ;按方式按方式0 0译码显示在译码显示在L1L1位位LEDLEDLCALLLCALLSENDSENDLCALLLCALLDELY3DELY3; ;延时延时2525 s(T4)s(T4)MOVMOV29H,B29H,B; ;显示个位显示个位LCALLLCALLSENDSENDSETBSETBP1.0P1.0; ;CS*CS*=1=1WAIT: WAIT: JNBJNBP1.3,WAITP1.3,WAIT; ;等待按键释放等待按键释放SJMPSJMPMAINMAIN延时子程序由用户自行

70、编写。延时子程序由用户自行编写。10.4 10.4 AT89C51AT89C51与液晶显示器(与液晶显示器(LCDLCD)的接口的接口 LCD LCD(Liquid Crystal DisplayLiquid Crystal Display):液晶显示器的缩写,:液晶显示器的缩写,被动式被动式显示器显示器- -液晶液晶本身并不发光本身并不发光,而是经液晶经过处理后能,而是经液晶经过处理后能改变光线通过方向改变光线通过方向的特性,而达到的特性,而达到白底黑字白底黑字或或黑底白字黑底白字显示显示的目的。的目的。 液晶显示器具有液晶显示器具有功耗低功耗低、抗干扰能力强抗干扰能力强等优点,广泛用在等优

71、点,广泛用在仪器仪表和控制系统中。仪器仪表和控制系统中。10.4.1 10.4.1 LCDLCD显示器的分类显示器的分类按排列形状分:按排列形状分:字段型字段型、点阵字符型点阵字符型和和点阵图形点阵图形。(1 1)字段型)字段型 广泛用于电子表、数字仪表、计算器中。广泛用于电子表、数字仪表、计算器中。(2 2)点阵字符型)点阵字符型 显示字母、数字、符号。它是由显示字母、数字、符号。它是由5757或或510510点阵组成,点阵组成,广广泛用在单片机系统中。泛用在单片机系统中。(3 3)点阵图形型)点阵图形型 笔记本电脑和彩色电视等设备中。笔记本电脑和彩色电视等设备中。10.4.2 10.4.2

72、 点阵字符型液晶显示模块介绍点阵字符型液晶显示模块介绍 点阵字符型点阵字符型LCDLCD显示器,需相应的显示器,需相应的LCDLCD控制器控制器、驱动器驱动器,来对,来对LCDLCD显示器进行扫描、驱动,以及显示器进行扫描、驱动,以及一定空间的一定空间的RAMRAM和和ROMROM来存储写来存储写入的命令和显示字符的点阵。入的命令和显示字符的点阵。 现已将现已将上述元部件和上述元部件和LCDLCD显示器用显示器用PCBPCB连接到一起,连接到一起,称为称为液晶液晶显示模块显示模块LCMLCM(LCD Module)(LCD Module)。只向只向LCMLCM送入相应的送入相应的命令命令和和数

73、据数据就可实现所需要的显示内容,接就可实现所需要的显示内容,接口简单,灵活方便。分口简单,灵活方便。分字符字符和和图形图形两种。两种。1.1.基本结构基本结构(1 1)液晶板)液晶板 在上面排列着若干在上面排列着若干5757或或510510点阵的字符显示位,从点阵的字符显示位,从规规格上分为每行格上分为每行8 8、1616、2020、2424、3232、4040位,有位,有1 1行、行、2 2行行及及4 4行行三三类,类,根据需要,来选择。根据需要,来选择。(2 2)模块电路框图)模块电路框图图图10-1710-17为字符型为字符型LCDLCD模块电路框图,模块电路框图,由由控制器控制器HD4

74、4780HD44780、驱动驱动 器器HD44100HD44100及几个电阻电容组成。及几个电阻电容组成。HD44100HD44100是是扩展显示字符位扩展显示字符位 用的(例如:用的(例如:1616字符字符11行模块就可不用行模块就可不用HD44100HD44100,1616字符字符 2 2行模块就要用一片行模块就要用一片HD44100HD44100)。)。图图10-1710-17 模块模块1414个引脚个引脚,其中有,其中有8 8条条数据线,数据线,3 3条条控制线,控制线,3 3条条电源线,电源线,见见表表10-10-1414。通过单片机写入模块的数据和指令,就可对显示。通过单片机写入模

75、块的数据和指令,就可对显示方式和显示内容作出选择。方式和显示内容作出选择。RSRSR/WR/W* *操操 作作0 00 0命令寄存器命令寄存器写入写入0 01 1忙标志和地址计数器忙标志和地址计数器读出读出1 10 0数据寄存器数据寄存器写入写入1 11 1数据寄存器数据寄存器读出读出表表1010- -15 15 寄存器的选择寄存器的选择2.命令格式及命令功能说明命令格式及命令功能说明 (1) (1) 内部寄存器内部寄存器控制器控制器HD44780HD44780内有多个寄存器,如内有多个寄存器,如表表10-10-1515所示。所示。 RS RS位和位和R/WR/W* *引脚引脚上的电平来选择寄

76、存器,读还是写,而上的电平来选择寄存器,读还是写,而DB7DB7DB0DB0则决定命令功能。则决定命令功能。(2 2)命令功能说明。)命令功能说明。 命令共命令共1111种种:功能功能: :清除屏幕显示,并给地址计数器清除屏幕显示,并给地址计数器ACAC置置“0 0”。 功能功能: :置置DDRAMDDRAM(显示数据(显示数据RAMRAM)及显示)及显示RAMRAM的地址为的地址为“0 0”,显示,显示返回到原始位置。返回到原始位置。功能功能: :设置光标的移动方向,并指定整体显示是否移动。其设置光标的移动方向,并指定整体显示是否移动。其 中:中:I/DI/D= =1 1,为增量方式;,为增

77、量方式;I/DI/D= =0 0,为减量方式。如,为减量方式。如 S S= =1 1,表示移位;如,表示移位;如S S= =0 0,表示不移位。,表示不移位。 (3 3)有关说明)有关说明 显示位与显示位与DDRAMDDRAM地址的对应关系,如表地址的对应关系,如表10-1610-16所示。所示。 标准字符库标准字符库图图10-1810-18所示为字符库的内容、字符码和字型的对应关系。所示为字符库的内容、字符码和字型的对应关系。 例如,例如,“A A”的字符码为的字符码为41H41H,“B B”的字符码为的字符码为42H42H。 图图10-1810-18 字符码(字符码(DDRAM DATAD

78、DRAM DATA)、)、CGRAMCGRAM地址与自编字型点阵数据地址与自编字型点阵数据(CGRAMCGRAM数据)之间的关系,如数据)之间的关系,如表表10-1710-17所示。所示。10.4.3 10.4.3 AT89C51AT89C51单片机与单片机与LCDLCD的接口及软件编程的接口及软件编程 1 1AT89C51AT89C51单片机与单片机与LCDLCD模块的接口模块的接口 接口电路见接口电路见图图10-10-1919。将。将LCMLCM挂接在挂接在8 89C519C51的总线上,通过对的总线上,通过对数据总线的读写实现对数据总线的读写实现对LCMLCM的控制。的控制。图图10-1

79、910-192.软件编程软件编程(1)初始化初始化 单片机开始运行时必须先对单片机开始运行时必须先对LCDLCD模块进行初始化,否则模块模块进行初始化,否则模块无法正常显示。下面介绍无法正常显示。下面介绍两种初始化方法两种初始化方法。 利用模块内部的复位电路进行初始化。利用模块内部的复位电路进行初始化。LCMLCM有内部复位电有内部复位电路,能进行上电复位。复位期间路,能进行上电复位。复位期间BFBF= =1 1,在电源电压,在电源电压V VDDDD达达4.5V4.5V以后,此状态可维持以后,此状态可维持10ms10ms,复位时执行下列命令。,复位时执行下列命令。清除显示。清除显示。功能设置,

80、功能设置,DLDL= =1 1为为8 8位数据长度接口;位数据长度接口;N N= =0 0单行显示;单行显示;F F= =0 0为为5 5 7 7点阵字符。点阵字符。开开/ /关设置,关设置,D D= =0 0关显示;关显示;C C= =0 0关光标;关光标;B B= =0 0关闪烁功能。关闪烁功能。进入方式设置,进入方式设置,I/DI/D= =1 1地址采用递增方式;地址采用递增方式;S S= =0 0关显示移位关显示移位功能功能 软件初始化。软件初始化流程如软件初始化。软件初始化流程如图图10-2010-20所示。所示。 图图10-2010-20(2)(2)显示程序显示程序例例10-110

81、-1编写程序在编写程序在LCDLCD第一行显示第一行显示“CS&S”CS&S”,第二行显示第二行显示“92”92”。假定对。假定对LCMLCM已按已按图图10-2010-20所示完成初始化。程序如所示完成初始化。程序如下:下: 由于由于LCDLCD是一慢速显示器件,所以在执行每条指令之前一定要是一慢速显示器件,所以在执行每条指令之前一定要确认确认LCMLCM的忙标志为的忙标志为0 0,即非忙状态,否则该命令将失效。上面,即非忙状态,否则该命令将失效。上面程序中判定程序中判定“忙忙”标志的子程序标志的子程序F_BUSYF_BUSY如下:如下:10.5 10.5 AT89C51AT89C51与与T

82、PP-40A/16ATPP-40A/16A微型打印机的接口微型打印机的接口内部有一个内部有一个控制用单片机控制用单片机,固化有控打程序固化有控打程序,智能化程度高。,智能化程度高。常用的微型打印机:常用的微型打印机:TPP-40A/16ATPP-40A/16A、GP16GP16以及以及XLFXLF嵌入仪器面嵌入仪器面板板上的汉字微型打印机。上的汉字微型打印机。1. 1. TPP-40A/16ATPP-40A/16A微型打印机微型打印机 单片机控制的单片机控制的微型智能打印机。微型智能打印机。TPP-40ATPP-40A与与TPP-16ATPP-16A的的接口信号与时序完全相同,操作方式相近,硬

83、件电路及插脚完接口信号与时序完全相同,操作方式相近,硬件电路及插脚完全兼容,只是指令代码不完全相同。全兼容,只是指令代码不完全相同。TPP-40ATPP-40A每行每行4040个字符,个字符,TPP-16ATPP-16A则打印则打印1616个字符。个字符。2. 2. 主要性能、接口要求及时序主要性能、接口要求及时序(1)(1)TPP-40ATPP-40A主要技术性能主要技术性能 单片机控制单片机控制, 2, 2KBKB控打程序及标准的控打程序及标准的CentronicsCentronics并行接口。并行接口。 可打印可打印全部全部ASCIIASCII代码字符代码字符及及128128个非标准个非

84、标准字符字符和图符。和图符。用户用户定义的定义的1616个个代码字符(代码字符(6767点阵)。点阵)。 可打印出可打印出82408240点阵的图样点阵的图样(汉字或图案点阵)。(汉字或图案点阵)。 字符、图符和点阵图可在字符、图符和点阵图可在宽和高的方向放大为宽和高的方向放大为22、33、4 4 倍。倍。 每行字符的点行数(包括字符的行间距)可用命令更换。即每行字符的点行数(包括字符的行间距)可用命令更换。即 字符行间距空点行在字符行间距空点行在0 0256256间任选。间任选。(2) (2) CentronicsCentronics接口信号接口信号 采用采用国际上流行的国际上流行的Cent

85、ronicsCentronics打印机并行接口打印机并行接口,与单片机,与单片机间是通过一条间是通过一条2020芯扁平电缆及接插件相连。打印机有一个芯扁平电缆及接插件相连。打印机有一个2020线线扁平插座,信号引脚排列如扁平插座,信号引脚排列如图图10-210-21 1所示。所示。引脚介绍引脚介绍: : DB0 DB0DB7DB7:数据线数据线, ,单向传输,由单片机输入给打印机。单向传输,由单片机输入给打印机。 STB STB* *:数据选通信号。在该信号的上升沿时,数据线上的数据选通信号。在该信号的上升沿时,数据线上的8 8位并行数据被打印机读入机内锁存。位并行数据被打印机读入机内锁存。图

86、图10-2110-21 BUSY BUSY:打印机打印机“忙忙”状态信号。当该信号有效(高电平)时状态信号。当该信号有效(高电平)时, ,表示打印机正忙。此时表示打印机正忙。此时, ,单片机不得向打印机送入新的数据。单片机不得向打印机送入新的数据。 ACK ACK* *:打印机的应答信号。低电平有效打印机的应答信号。低电平有效, ,表明打印机已取走数表明打印机已取走数据线上的数据。据线上的数据。 ERR ERR* *:“出错出错”信号。当送入打印机的命令格式出错时信号。当送入打印机的命令格式出错时, ,打印打印机立即打印一行出错信息机立即打印一行出错信息, ,提示出错。在打印出错信息之前,该提

87、示出错。在打印出错信息之前,该信号线出现一个负脉冲,脉冲宽度为信号线出现一个负脉冲,脉冲宽度为3030ss。(3) (3) 接口信号时序接口信号时序接口信号时序如接口信号时序如图图10-210-22 2所示。所示。图图10-2210-22 选通信号选通信号STBSTB* *宽度需大于宽度需大于0.50.5ss。应答信号应答信号ACKACK* *可与可与STBSTB* *信信号作为号作为一对应答联络信号一对应答联络信号,也可与,也可与BUSYBUSY作为一对应答联络信号。作为一对应答联络信号。3. 3. 字符代码及打印命令字符代码及打印命令写入的全部代码共写入的全部代码共256256个,其中个,

88、其中0000H H无效。无效。代码:代码:0101H H0FH0FH为打印命令;为打印命令;代码:代码:1010H H1FH1FH为用户自定义代码;为用户自定义代码;代码:代码:2020H H7FH7FH为标准为标准ASCIIASCII代码;代码;代码:代码:8080H HFFHFFH为非为非ASCIIASCII代码,代码,如如图图10-210-23 3所示。其中包括少所示。其中包括少量汉字、希腊字母、块图图符和一些特殊字符。量汉字、希腊字母、块图图符和一些特殊字符。图图10-2310-23(1 1)字符代码。)字符代码。TPTP P-40A/16AP-40A/16A中全部字符代码为中全部字符

89、代码为10H10HFFHFFH,回车换行代码,回车换行代码0DH0DH为为字符串的结束符。但当输入代码满字符串的结束符。但当输入代码满40/1640/16个时,打印机自动回个时,打印机自动回车。举例子如下。车。举例子如下。 打印打印“$2356.73”$2356.73”。输送代码串为输送代码串为24,32,33,35,36,2E,37,33,0D24,32,33,35,36,2E,37,33,0D。 打印打印“23.7cm3”23.7cm3”。输送代码为输送代码为32,33,2E,37,63,6D,9D,0D32,33,2E,37,63,6D,9D,0D。(2 2)打印命令)打印命令。打印命令

90、由一个命令字和若干参数字节组成,打印命令由一个命令字和若干参数字节组成,表表10-1810-18所示为所示为TPTP P-40A/16AP-40A/16A命令代码及功能。有关打印命令的更详细说明,命令代码及功能。有关打印命令的更详细说明,参见技术说明书。参见技术说明书。 4. TPP-40A/16A4. TPP-40A/16A与与89C5189C51单片机接口设计单片机接口设计 TP TP P-40A/16AP-40A/16A在输入电路中有锁存器,在输出电路中有三态在输入电路中有锁存器,在输出电路中有三态门控制,因此可以直接与单片机相接。门控制,因此可以直接与单片机相接。 TP TP P-40

91、A/16AP-40A/16A没有读、写信号,只有握手线没有读、写信号,只有握手线STBSTB* * 、BUSYBUSY(或(或 ACKACK* *) ,接口电路如,接口电路如图图10-2410-24所示。所示。 用一条地址线(图用一条地址线(图10-2410-24中使用中使用P2.7P2.7,即,即A15A15)来控制写选通)来控制写选通STBSTB* *信号和读取信号和读取BUSYBUSY状态。状态。 图图10-2410-24图图10-2510-25所示为通过扩展的并行所示为通过扩展的并行I/OI/O口口82C5582C55连接的打印机接口电连接的打印机接口电路。路。采用采用查询法查询法,即

92、通过读与,即通过读与82C5582C55的的PC0PC0脚的相连的脚的相连的BUSYBUSY状态,来状态,来判断送给打印机的一个字节的数据是否处理完毕。判断送给打印机的一个字节的数据是否处理完毕。也可用也可用中断法中断法(BUSYBUSY直接与单片机的直接与单片机的P3.3P3.3引脚相连)。引脚相连)。图图10-2510-25例例10-2 10-2 把把AT89C51AT89C51单片机内部单片机内部RAM RAM 3FH-4FH3FH-4FH单元中的单元中的ASCIIASCII码码数据送到打印机。数据送到打印机。8282C55C55设置为设置为方式方式0 0,即,即端口端口A A与与端口端

93、口C C的的上半上半部部为为输出方式输出方式。端口。端口C C的的下半部下半部为为输入方式输入方式。打印程序如下:打印程序如下:PRINT:PRINT:MOV R0,#7FH MOV R0,#7FH ;控制口地址控制口地址R0R0MOV A ,#81H MOV A ,#81H ;8282C55C55控制字控制字A AMOVX R0,A MOVX R0,A ;控制字控制字控制口控制口MOV R1,#3FHMOV R1,#3FH;数据区首地址数据区首地址R1R1MOV R2,#0FH MOV R2,#0FH ;打印数据个数的计数;打印数据个数的计数LOOP: LOOP: MOV A,R1 MOV

94、A,R1 ;打印数据单元内容打印数据单元内容A AINC R1 INC R1 ;指向下一个数据单元指向下一个数据单元MOV R0,#7CH MOV R0,#7CH ;8282C55C55的端口的端口A A地址地址R0R0 MOVX R0,A MOVX R0,A ;打印数据送打印数据送8282C55C55的口的口A A并并 锁存锁存MOV R0,#7FH MOV R0,#7FH ;8255A8255A的控制口地址的控制口地址R0R0MOV A,#0EH MOV A,#0EH ;PC7PC7的复位控制字的复位控制字A AMOVX R0,A MOVX R0,A ;PC7=0PC7=0MOV A,#0

95、FH MOV A,#0FH ;PC7PC7的置位控制字的置位控制字A AMOVX R0,A MOVX R0,A ;PC7PC7由由0 0变变1 1LOOP1: MOV R0,#7EH LOOP1: MOV R0,#7EH ;口口C C地址地址R0R0 MOVX A,R0 MOVX A,R0 ;读入读入C C口的值口的值 ANL A,#01H ANL A,#01H ;屏蔽屏蔽C C口的高口的高7 7位,只留位,只留PC0PC0位位JNZ LOOP1 JNZ LOOP1 ;查询查询BUSYBUSY的状态的状态, ,如为如为1 1跳跳LOOP1LOOP1DJNZ R2,LOOPDJNZ R2,LOO

96、P;未打完,循环未打完,循环10.6 10.6 AT89C51AT89C51单片机与单片机与BCDBCD码拨盘的接口设计码拨盘的接口设计1. BCD1. BCD码拨盘码拨盘 需输入一些控制参数,设定完将需输入一些控制参数,设定完将维持不变维持不变。使用的最方便。使用的最方便的拨盘是十进制输入,的拨盘是十进制输入,BCDBCD码输出的码输出的BCDBCD码拨盘。这种拨盘如码拨盘。这种拨盘如图图10-10-2626,为四片,为四片BCDBCD码拨盘组。码拨盘组。图10-30 4位BCD码拨盘组图图10-2610-26拼接的拼接的4 4位十进制输入拨盘组。每片拨盘具有位十进制输入拨盘组。每片拨盘具有

97、0 09 9十个位置十个位置,每个位置都有相应的数字显示。每个位置都有相应的数字显示。 BCD BCD码拨盘后面有码拨盘后面有5 5个接点,个接点,A A为输入控制线,另外为输入控制线,另外4 4是是BCDBCD码输码输出线。出线。 拨盘拨到不同位置时,输入控制线拨盘拨到不同位置时,输入控制线A A分别与分别与4 4根根BCDBCD码输出线中码输出线中的某根或某几根接通的某根或某几根接通,其接通的,其接通的BCDBCD码输出线状态正好与拨盘指码输出线状态正好与拨盘指示的十进制数相一致。示的十进制数相一致。 表表10-10-1919为为BCDBCD码拨盘的输入输出状态表。码拨盘的输入输出状态表。

98、拨盘输入拨盘输入控制端控制端A A输出状态输出状态8 84 42 21 10 01 10 00 00 00 01 11 10 00 00 01 12 21 10 00 01 10 03 31 10 00 01 11 14 41 10 01 10 00 05 51 10 01 10 01 16 61 10 01 11 10 07 71 10 01 11 11 18 81 11 10 00 00 09 91 11 10 00 01 1表表10-10-19 BCD19 BCD码拨盘的输入输出状态码拨盘的输入输出状态2. 2. 单片单片BCDBCD码拨盘与单片机的接口码拨盘与单片机的接口 图图10-1

99、0-2727是是89C5189C51通过通过P1.0P1.0P1.3P1.3与单片与单片BCDBCD码拨盘的接口电码拨盘的接口电路。路。图图10-2710-27 A A端接端接5 5V V, ,当拨盘拨至某十进制数时当拨盘拨至某十进制数时, ,相应的相应的8,4,2,18,4,2,1有效端有效端输出高电平(如拨至输出高电平(如拨至“6 6”时时,4,2,4,2,端为端为“1 1”)无效端无效端为低电为低电平。平。输出的输出的BCDBCD码为码为正逻辑(原码)。正逻辑(原码)。 A A端接地端接地, ,8,4,2,18,4,2,1输出端通过电阻上拉至高电平时输出端通过电阻上拉至高电平时, ,拨盘拨盘输出输出的的BCDBCD码为码为负逻辑(反码)。负逻辑(反码)。 软件编程,只需读入软件编程,只需读入P1.0P1.0P1.3P1.3端口的状态即可,例如:端口的状态即可,例如:MOVMOVA,P1A,P1; ;读入读入P1.0P1.0P1.7P1.7的状态的状态ANLANLA,0FHA,0FH; ;屏蔽屏蔽P1.4P1.4P1.7P1.7MOVMOV40H,A40H,A; ;将将BCDBCD码拨盘的值存入码拨盘的值存入40H RAM40H RAM单单; ;元中元中

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号