第10章AT89C51与输入外设和输出外设的接口设计ppt课件_第1页
第10章AT89C51与输入外设和输出外设的接口设计ppt课件_第2页
第10章AT89C51与输入外设和输出外设的接口设计ppt课件_第3页
第10章AT89C51与输入外设和输出外设的接口设计ppt课件_第4页
第10章AT89C51与输入外设和输出外设的接口设计ppt课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、LEDLED的段码如表的段码如表10-210-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 7DHDH8282H H

4、T 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-2 LED10-2 LED段码段码8 8段)段)表表10-210-2只列出了部分段码,可根据实际情况选用,也可重只列出了部分段码,可根据实际情况选用,也可重 新定义。新定义。 N N个个LEDLED显示块有显示块有N N位位选线和位位选线和8 8N N根

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

6、符一确定,相应锁存器的段码输出将维持不变,直显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。到送入另一个段码为止。显示的亮度高。 图图10-3: 410-3: 4位静态位静态LEDLED显示器电路。该电路各位可独立显显示器电路。该电路各位可独立显示。示。2. LED2. LED动态显示方式动态显示方式 所有位的段码线相应段并在一起,由一个所有位的段码线相应段并在一起,由一个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动态显示动态显示2008.10.102008.10.10的过程。的过程。图图a)a)是显示过程,某一时刻,只有一位是显示过程,某一时刻,只有一位LEDLED被选通显示,其被选通显示,其 余位则是熄灭的;余位则是熄灭的;图图b)b)是实际显示结果,人眼看到的是是实际显示结果,人眼看到的是8 8

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

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

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

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

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

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

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

15、盘的工作方式。决于键盘的工作方式。原则:即要保证能及时响应按键操作,又不要过多占用原则:即要保证能及时响应按键操作,又不要过多占用CPUCPU的的 工作时间。工作时间。 通常,键盘工作方式有通常,键盘工作方式有3 3种,即编程扫描、定时扫描和中断种,即编程扫描、定时扫描和中断扫描。扫描。1. 1. 编程扫描方式编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。工作过程:工作过程:(1 1在键盘扫描子程序中,先判断有无键按下。在键盘扫描子程序中,先判断有无键按下。方法:方法:PAPA口口8 8位输出全位输出全0 0,读,读PCP

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

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

18、程序。10.3 10.3 键盘键盘/ /显示器接口设计实例显示器接口设计实例 一般把键盘和显示器放在一起考虑。一般把键盘和显示器放在一起考虑。10.3.1 10.3.1 利用利用AT89C51AT89C51单片机串行口实现的键盘单片机串行口实现的键盘/ /显示器接口显示器接口 当单片机的串口未作它用时,可使用串口来外扩键盘当单片机的串口未作它用时,可使用串口来外扩键盘/ /显示显示 器。应用串口方式器。应用串口方式0 0的输出方式,外扩移位寄存器的输出方式,外扩移位寄存器 74LS164 74LS164,构成键盘,构成键盘/ /显示器接口,硬件接口电路如图显示器接口,硬件接口电路如图10-11

19、10-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引脚同步引脚同步移位脉冲输出移位脉冲输出 MOVMOVR7,R7,

21、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; ; 将段码送将段码送SBUFSBUFDL1DL1: JNB TI,DL1JNB

22、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个段码输出完毕个段码输出完毕, , 关闭显示器输出关闭显示器输出 RET RET ;

23、 ; 返回返回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,0FFH ; F,8FH,0BFH,8CH,0FFH,

24、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; ; 串行输出完毕串行输出完毕, , 清清TITIKL1KL1:JNBJNBP3.4,PK1 ; P

25、3.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,KL1PK2PK2: MOV MOV R7,R7,08H08H;

26、 ; 不是抖动引起的不是抖动引起的 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; ; 串行口发送完毕串行口发送完毕, , 清清TITI标志标志 JNB JNB P

27、3.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; ; 第一行键中有键按下第一行键中有键按下, , 行首键号行首键号00H00H送送;

28、 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,R3; ; 计算得键码计算得键码AA RETRETNEXTN

29、EXT: 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列键扫描完毕列键扫描完毕, , 开始下一个键盘扫描周期开始下一个键盘扫描周期DL10DL10: MOV MOV R7,R7,0AH0A

30、H; ; 延时延时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各种键盘各种键盘/ /显示器专用芯片简介显示器专用芯片简介目前专用的键盘目前专用的键盘/ /显示器接口芯片种类繁多,它们各有特点及显示器接口芯片种类繁多,它们各有特点及优缺点,总体趋势是并行接口芯片逐渐退出历史舞台,串行优缺点,总体趋势是并行接口芯片逐渐退出历史舞台,串行接口芯片越来越多的得到应用。其中,串行键盘接口芯片越来越多的得到应用。其中,串行键盘/ /显示器接显示器接口芯片口芯片HD7279HD7279是

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

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

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

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

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

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

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

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

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

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

42、*:当单片机访问:当单片机访问HD7279AHD7279A芯片写入命令、显示数据、位芯片写入命令、显示数据、位地址、段地址或读出键值时,应将地址、段地址或读出键值时,应将CSCS* *置为低电平。置为低电平。DATADATA:串行数据端,当单片机向:串行数据端,当单片机向HD7279AHD7279A芯片发送数据时,芯片发送数据时,DATADATA为输入端;当单片机从为输入端;当单片机从HD7279AHD7279A芯片读入键值时,芯片读入键值时,DATADATA为输出端。为输出端。CLKCLK:数据串行传送的同步时钟输入端,时钟的上升沿将数:数据串行传送的同步时钟输入端,时钟的上升沿将数据写入据

43、写入HD7279AHD7279A中或从中或从HD7279AHD7279A中读出数据。中读出数据。KEYKEY:按键信号输出端,在无键按下时为高电平,在有键按:按键信号输出端,在无键按下时为高电平,在有键按下时变为低电平,并且一直保持到该按下键至释放为止。下时变为低电平,并且一直保持到该按下键至释放为止。RESETRESET* *: :复位端,由低电平变为高电平,并经过复位端,由低电平变为高电平,并经过181825ms25ms复位复位结束。通常,该端接结束。通常,该端接+5V+5V即可。若对可靠性要求较高,则可即可。若对可靠性要求较高,则可外接复位电路,或直接由单片机控制。外接复位电路,或直接由

44、单片机控制。RC:RC:用于外接振荡元件,其典型值:用于外接振荡元件,其典型值:R=1.5kR=1.5k,C=15pFC=15pF。NC:NC:必须悬空,即不得有任何外部连接。必须悬空,即不得有任何外部连接。 表表10-410-4所列为所列为HD7279AHD7279A的电气特性。的电气特性。(2 2控制命令介绍控制命令介绍HD7279AHD7279A芯片的控制命令由芯片的控制命令由6 6条纯命令、条纯命令、7 7条带数据命令和条带数据命令和1 1条条读键盘命令组成。读键盘命令组成。 纯命令纯命令6 6条)。所有纯命令都是条)。所有纯命令都是1 1字节命令,如表字节命令,如表10-510-5所

45、所列。列。 带数据命令带数据命令7 7条)。均由双字节组成,第条)。均由双字节组成,第1 1字节为命令标字节为命令标志码有的还有位地址),第志码有的还有位地址),第2 2字节为显示内容。字节为显示内容。按方式按方式0 0译码显示命令译码显示命令 此命令又称按方式此命令又称按方式0 0译码下载命令。译码下载命令。命令中的命令中的a2a2、a1a1、a0a0表示表示LEDLED数码管的位地址,即显示数据是数码管的位地址,即显示数据是送给哪一位送给哪一位LEDLED的,的,L1L1表示表示LEDLED最低位,最低位,L8L8表示表示LEDLED最高位,最高位,具体位地址译码表如表具体位地址译码表如表

46、10-610-6所示。所示。命令中的命令中的d3d3、d2d2、d1d1、d0d0为显示数据,收到这些数据后,为显示数据,收到这些数据后,HD7279AHD7279A按表按表10-710-7所示的规则译码和显示。所示的规则译码和显示。dpdp为小数点显为小数点显示控制位,示控制位,dpdp = = 1 1时,小数点显示,时,小数点显示,dpdp = = 0 0时,小数点不显时,小数点不显示。命令中的为无影响位。示。命令中的为无影响位。 b. b. 按方式按方式1 1译码显示命令译码显示命令 此命令又称方式此命令又称方式1 1译码下载命令。该命令和按方式译码下载命令。该命令和按方式0 0译码显示

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

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

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

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

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

52、为00H00H3FH3FH,所对应的关闭段同表,所对应的关闭段同表 10-11 10-11,仅将点亮段变为关闭段。,仅将点亮段变为关闭段。例如,命令第一字节为例如,命令第一字节为C0HC0H,第二字节为,第二字节为00H00H,则关闭,则关闭L1L1位位LEDLED 的的g g段;第二字节为段;第二字节为10H10H,则关闭,则关闭L3L3位位LEDLED的的g g段段 读取键盘命令读取键盘命令 读取键盘命令从读取键盘命令从HD7279AHD7279A读出当前的按键值。命令的第一字读出当前的按键值。命令的第一字节为节为15H15H,表示单片机写到,表示单片机写到HD7279AHD7279A的是

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

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

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

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

57、的下降沿将降沿将DATADATA引脚恢复为高阻态,如图引脚恢复为高阻态,如图10-1510-15所示。所示。 图图10-1510-15保证正确的时序是保证正确的时序是HD7279AHD7279A正常工作的前提条件。当选定正常工作的前提条件。当选定HD7279AHD7279A的振荡元件的振荡元件RCRC和单片机的晶振之后,应调节延时时和单片机的晶振之后,应调节延时时间,使时序中的间,使时序中的T1T1T8T8满足表满足表10-1310-13所列要求。由表中的数所列要求。由表中的数值可知值可知HD7279AHD7279A的速度,应仔细调整的速度,应仔细调整HD7279AHD7279A的时序,使其运

58、的时序,使其运行时间接近最短。行时间接近最短。3 3AT89C51AT89C51与与HD7279AHD7279A接口设计接口设计(1 1硬件接口电路硬件接口电路图图10-1610-16是与是与AT89C51AT89C51单片机的接口电路,外接振荡元件为典型单片机的接口电路,外接振荡元件为典型值,值,89C5189C51的晶振频率为的晶振频率为12MHz12MHz。上电后,上电后,HD7279AHD7279A大约经过大约经过151518ms18ms的时间才进入工作状态。的时间才进入工作状态。HD7279AHD7279A应连接共阴极显示器。对于不使用的按键和显示器,应连接共阴极显示器。对于不使用的

59、按键和显示器,可以不连接。省去的显示器或对显示器设置的消隐、闪烁属可以不连接。省去的显示器或对显示器设置的消隐、闪烁属性,均不影响键盘的使用。性,均不影响键盘的使用。除非不使用显示器,否则串联在除非不使用显示器,否则串联在DPDP及及SASASGSG引线上的引线上的200200电电阻不可省去。如果不使用键盘,图阻不可省去。如果不使用键盘,图10-2010-20中与键盘连接的中与键盘连接的10k10k电阻和电阻和100k100k电阻便可省去。电阻便可省去。如果使用键盘,电路中的如果使用键盘,电路中的100k100k下拉电阻则不可省去。下拉电阻则不可省去。单片机通过单片机通过KEYKEY引线电平判

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论