MCS第章MCS与键盘和显示器的接口设计ppt课件_第1页
MCS第章MCS与键盘和显示器的接口设计ppt课件_第2页
MCS第章MCS与键盘和显示器的接口设计ppt课件_第3页
MCS第章MCS与键盘和显示器的接口设计ppt课件_第4页
MCS第章MCS与键盘和显示器的接口设计ppt课件_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、 第第1010章章 MCS-51MCS-51与键盘和显示器的与键盘和显示器的 接口设计接口设计10.1 LED数码管的显示原理数码管的显示原理 LEDLight Emitting Diode发光二极管缩写。发光二极管缩写。LED数码管是由发光二极管构成的。数码管是由发光二极管构成的。10.1.1 LED数码管的构造数码管的构造 常见的常见的LED数码管为数码管为“8字型的,合计字型的,合计8段。每一段对段。每一段对应一个发光二极管。有共阳极和共阴极两种,如图应一个发光二极管。有共阳极和共阴极两种,如图10-1所示。所示。共阴极发光二极管的阴极连在一同,通常公共阴极接地。当共阴极发光二极管的阴极

2、连在一同,通常公共阴极接地。当阳极为高电平常,发光二极管点亮。阳极为高电平常,发光二极管点亮。 同样,共阳极同样,共阳极LED数码管的发光二极管的阳极衔接在一数码管的发光二极管的阳极衔接在一同,公共阳极接正电压,当某个发光二极管的阴极接低电平同,公共阳极接正电压,当某个发光二极管的阴极接低电平常,发光二极管被点亮,相应的段被显示。常,发光二极管被点亮,相应的段被显示。图图10-1 8段段LED数码管构造及外形数码管构造及外形 为了使数码管显示不同的符号或数字,要把某些段发光为了使数码管显示不同的符号或数字,要把某些段发光二极管点亮,就要为二极管点亮,就要为LED数码管提供段码字型码。数码管提供

3、段码字型码。 LED数码管合计数码管合计8段。正好是一个字节。习惯上是以段。正好是一个字节。习惯上是以“a段对应段码字节的最低位。各段与字节中各位对应关系如段对应段码字节的最低位。各段与字节中各位对应关系如表表10-1所示。所示。 按照上述格式,显示各种字符的按照上述格式,显示各种字符的8段段LED数码管的段码数码管的段码如表如表10-2所示。所示。 表表10-1只列出了部分段码,可以根据实践情况选用,或只列出了部分段码,可以根据实践情况选用,或重新定义。除重新定义。除 “8字型的字型的LED数码管外,市面上还有数码管外,市面上还有“1型、型、“米字型和米字型和“点阵型点阵型LED显示器,如图

4、显示器,如图10-2所示。本所示。本章均以章均以“8字型的字型的LED数码管为例。数码管为例。 图图10-2 其他各种字型的其他各种字型的LED显示器显示器10.1.2 LED数码管任务原理数码管任务原理 图图10-3所示为显示所示为显示4位字符的位字符的LED数码管的构造原理图。数码管的构造原理图。N位位选线和位位选线和8 N条段码线。段码线控制显示字型,而位条段码线。段码线控制显示字型,而位选线控制着该显示位的选线控制着该显示位的LED数码管的亮或暗。数码管的亮或暗。图图10-3 4位位LED数码管的构造原理图数码管的构造原理图 LED数码管有静态显示和动态显示两种显示方式。1LED静态显

5、示方式 无论多少位LED数码管,同时处于显示形状。 静态显示方式,各位的共阴极或共阳极衔接在一同并接地或接+5V;每位的段码线adp分别与一个8位的I/O口锁存器输出相连。假设送往各个LED数码管所显示字符的段码一经确定,那么相应I/O口锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。正由于如此,静态显示方式的显示无闪烁,亮度都较高,软件控制比较容易。 图图10-4为为4位位LED数码管静态显示器电路,各位可独立数码管静态显示器电路,各位可独立显示,静态显示方式接口编程容易,但是占用口线较多。对显示,静态显示方式接口编程容易,但是占用口线较多。对图图10-4电路,假设用电路,假设

6、用I/O口线接口,要占用口线接口,要占用4个个8位位I/O口。因口。因此在显示位数较多的情况下,所需的电流比较大,对电源的此在显示位数较多的情况下,所需的电流比较大,对电源的要求也就随之增高,这时普通都采用动态显示方式。要求也就随之增高,这时普通都采用动态显示方式。2LED动态显示方式动态显示方式 无论在任何时辰只需一个无论在任何时辰只需一个LED数码管处于显示形状,即数码管处于显示形状,即单片机采用单片机采用“扫描方式控制各个数码管轮番显示。扫描方式控制各个数码管轮番显示。图图10-4 4位位LED静态显示电路静态显示电路 在多位LED显示时,为简化硬件电路,通常将一切显示位的段码线的相应段

7、并联在一同,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,构成各位的分时选通。 图10-5所示为一个4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。必需采用动态的“扫描显示方式。即在某一时辰,只让某一位的位选线处于选通形状,而其他各位的位选线处于封锁形状,同时,段码线上输出相应位要有显示的字符的段码。图图10-5 4位位8段段LED动态显示电路动态显示电路 虽然这些字符是在不同时辰出现,而在同一时辰,只需一位显示,其他各位熄灭,由于余辉和人眼的“视觉暂留作用,只需每位显示间隔足够短,那么可以呵斥“多位同时亮的假象,到达同时显示

8、的效果。 LED不同位显示的时间间隔扫描间隔应根据实践情况而定。显示位数多,将占大量的单片机时间,因此动态显示的本质是以牺牲单片机时间来换取I/O端口的减少。 图10-6所示为8位LED动态显示2021.10.10的过程。图10-6a所示为显示过程,某一时辰,只需一位LED被选通显示,其他位那么是熄灭的;图10-6b所示为实践的显示结果,人眼看到的是8位稳定的同时显示的字符。 图10-6 8位LED动态显示过程和结果 动态显示的优点是硬件电路简单,显示器越多,优势越明显。缺陷是显示亮度不如静态显示的亮度高。假设“扫描速率较低,会出现闪烁景象。静态显示例如:ORG0000HAJMPSTARTOR

9、G0100HSTART:MOVSP, #60HMOVDPTR,#SEG01MOVR2,#0LOOP:CLR AMOVCA,A+DPTRMOVP1,AMOVP3,AINC DPTRINC R2ACALLDELAYCJNER2,#10,LOOPMOVDPTR,#SEG01MOVR2,#0AJMPLOOPDELAY: MOVR5, #5D2:MOVR6, #200D1:MOVR7, #250DJNZR7, $DJNZR6, D1DJNZR5, D2RETSEG01: DB0C0H,0F9H,0A4HDB0B0H,99H,92HDB82H,0F8H,80H,90HEND动态显示例如:ORG 0000H

10、START: MOV DPTR,#TABLE ;DPTR指向段码表首地址指向段码表首地址MOV R7,#07FH ;设置动态显示扫描初值设置动态显示扫描初值S1:MOVA,#00H MOVCA,A+DPTR ;查表获得段码查表获得段码 CJNEA,#01H,S2 ;判别段码能否为终了符判别段码能否为终了符SJMPSTARTS2:MOV B,A ;段码送段码送B保管保管MOVA,R7RL A ;显示位扫描值左移显示位扫描值左移1位位MOV P3,A ;显示位扫描值送显示位扫描值送P3口口MOV R7,AMOVP0,B ;显示段码送显示段码送P0显示显示LCALLDELAY ;延时延时INCDPT

11、RSJMPS1DELAY: MOV R5,#20 ;延时子程序延时子程序D2: MOV R6,#20D1: NOPDJNZ R6,D1DJNZ R5,D2RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表段码表DB01H ;终了符终了符END10.2 键盘接口原理键盘接口原理 键盘具有向单片机输入数据、命令等功能,是人与单片键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。机对话的主要手段。10.2.1 键盘输入应处理的问题键盘输入应处理的问题1键盘的义务键盘的义务 义务有三项:义务有三项: (1) 判别能否有键按下?假设有,进

12、入下一步任务。判别能否有键按下?假设有,进入下一步任务。 (2)识别哪一个键被按下,并求出相应的键值。识别哪一个键被按下,并求出相应的键值。 (3)根据键值,找到相应键值的处置程序入口。根据键值,找到相应键值的处置程序入口。2键盘输入的特点键盘输入的特点 常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常用的是按键式键盘。按键本质上就是一个开关。如图用的是按键式键盘。按键本质上就是一个开关。如图10-7a所示,按键开关的两端分别衔接在行线和列线上,经所示,按键开关的两端分别衔接在行线和列线上,经过键盘开关机械触点的断开、闭合,其行线电压输出波形如过

13、键盘开关机械触点的断开、闭合,其行线电压输出波形如图图10-7b所示。所示。 图图10-7 键盘开关及其行线波形键盘开关及其行线波形 图图10-7b所示的所示的t1和和t3分别为键的闭合和断开过程分别为键的闭合和断开过程中的抖动期呈现一串负脉冲,抖动时间长短与开关的机中的抖动期呈现一串负脉冲,抖动时间长短与开关的机械特性有关,普通为械特性有关,普通为510ms,t2为稳定的闭合期,其时间为稳定的闭合期,其时间由按键动作确定,普通为非常之几秒到几秒,由按键动作确定,普通为非常之几秒到几秒,t0、t4为断开为断开期。期。3按键的识别按键的识别 键的闭合与否,行线输出电压上就是呈现高电平或低电键的闭

14、合与否,行线输出电压上就是呈现高电平或低电平。高电平,表示键断开,低电平那么表示键闭合,经过对平。高电平,表示键断开,低电平那么表示键闭合,经过对行线电平的高低形状的检测,可确认按键按下以及按键释放行线电平的高低形状的检测,可确认按键按下以及按键释放与否。为了确保对一次按键动作只确认一次按键有效,必需与否。为了确保对一次按键动作只确认一次按键有效,必需消除抖动期消除抖动期t1和和t3的影响。的影响。4如何消除按键的抖动如何消除按键的抖动 按键去抖动的方法有两种:按键去抖动的方法有两种: 一种软件延时,本思想是:在检测到有键按下时,该键一种软件延时,本思想是:在检测到有键按下时,该键所对应的行线

15、为低电平,执行一段延时所对应的行线为低电平,执行一段延时10ms的子程序后,的子程序后,确认该行线电平能否仍为低电平,假设仍为低电平,那么确确认该行线电平能否仍为低电平,假设仍为低电平,那么确认该行确实有键按下。当按键松开时,行线的低电平变为高认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时电平,执行一段延时10ms的子程序后,检测该行线为高电的子程序后,检测该行线为高电平,阐明按键确实曾经松开。采取本措施,可消除两个抖动平,阐明按键确实曾经松开。采取本措施,可消除两个抖动期期t1和和t3的影响。的影响。 另一种是采用公用的键盘另一种是采用公用的键盘/显示器接口芯片,这类

16、芯片中显示器接口芯片,这类芯片中都有自动去抖动的硬件电路。都有自动去抖动的硬件电路。10.2.2 键盘的任务原理键盘的任务原理 键盘可分为两类:非编码键盘和编码键盘。键盘可分为两类:非编码键盘和编码键盘。 非编码键盘是利用按键直接与单片机相衔接而成,这种非编码键盘是利用按键直接与单片机相衔接而成,这种键盘通常运用在按键数量较少的场所。运用这种键盘,系统键盘通常运用在按键数量较少的场所。运用这种键盘,系统功能通常比较简单,需求处置的义务较少,但是可以降低本功能通常比较简单,需求处置的义务较少,但是可以降低本钱、简化电路设计。按键的信息经过软件来获取。钱、简化电路设计。按键的信息经过软件来获取。

17、非编码键盘非编码键盘 常见的为两种构造:独立式键盘和矩阵式键盘。常见的为两种构造:独立式键盘和矩阵式键盘。1独立式键盘独立式键盘 特点是:一键一线,各键相互独立,每个键各接一条特点是:一键一线,各键相互独立,每个键各接一条I/O口线,经过检测口线,经过检测I/O输入线的电平形状,可容易地判别哪个输入线的电平形状,可容易地判别哪个按键被按下,如图按键被按下,如图10-8所示。所示。图图10-8 独立式键盘接口电路独立式键盘接口电路 对于图10-8的键盘,图中的上拉电阻保证按键释放时,输入检测线上有稳定的高电平。 当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平,只需

18、读入I/O输入线的形状,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。 优点:电路简单,各条检测线独立,识别按下按键的软件编写简单。适用于键盘按键数目较少的场所,不适用于键盘按键数目较多的场所,由于将占用较多的I/O口线。 识别某一键能否按下的子程序:识别某一键能否按下的子程序:KEYIN:MOV P1,0FFH ;P1口写入口写入1,设置,设置P1口为口为输入形状输入形状MOV A,P1;读入;读入8个按键的形状个按键的形状CJNE A,#0FFH,QUDOU;有键按下,跳去抖;有键按下,跳去抖动动LJMP RETURN;无键按下,前往;无键按下,前往QUDOU:MOV R3,A;

19、8个按键的形状送个按键的形状送R3保管保管LCALL DELAY10 ;调用延时子程序,软件去;调用延时子程序,软件去键抖动键抖动MOV A,P1;再一次读入;再一次读入8个按键的形状个按键的形状CJNE A,R3,RETURN;两次键值比较,不同,;两次键值比较,不同, ;是抖动引起,转;是抖动引起,转RETURNKEY0:MOVC,P1.0;有键按下,读P1.0的按键形状JCKEY1;P1.0为高,该键未按下,跳KEY1,;判下一个键LJMPPKEY0 ;P1.0的键按下,跳PKEY0处置KEY1:MOVC,P1.1;读P1.1的按键形状JCKEY2;P1.1为高,该键未按下,跳KEY2,

20、 ;判下一个键LJMPPKEY1 ;P1.1的键按下,跳PKEY1处置KEY2:MOVC,P1.2;读P1.2的按键形状JCKEY3;P1.2为高,该键未按下,跳;KEY3,判下一个键LJMPPKEY2;P1.2的键按下,跳PKEY2处置KEY3:MOVC,P1.3;读P1.3的按键形状KEY7:MOVC,P1.7;读P1.7的按键形状JCRETURN;P1.7为高,该键未按下,跳;RETURN处LJMPPKEY7;P1.7的键按下,跳PKEY7处置RETURN: RET ;子程序前往 对应8个按键的键处置程序PKEY0 PKEY7,根据按键功能的要求来编写。留意,在进入键处置程序后,需求先等

21、待按键释放,再执行键处置功能。另外,在键处置程序完成后,一定要跳向RETURN标号处前往。2矩阵式键盘 矩阵式也称行列式键盘用于按键数目较多的场所,由行线和列线组成,按键位于行、列的交叉点上。如图10-9所示,一个44的行、列构造可以构成一个16个按键键盘。在按键数目较多的场所,要节省较多的I/O口线。图图10-9 矩阵式键盘接口矩阵式键盘接口 矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平形状将由与此行线相连的列线的电平决议。列线的电平假设为低,那么行线电平为低;列线的电平假设为高,那么行线的电平也为高,这是识别按键能否按下的关键所在。 由于矩阵式键盘中行、列线为多键共用,各按键

22、彼此将相互发生影响,所以必需将行、列线信号配合,才干确定闭合键位置。下面讨论矩阵式键盘按键的识别方法。 扫描法。第1步,识别键盘有无键按下;第2步,如有键被按下,识别出详细的键位。 下面以图10-9所示的键3被按下为例,阐明识别过程。 第第1步,识别键盘有无键按下。先把一切列线均置为步,识别键盘有无键按下。先把一切列线均置为0,然后检查各行线电平能否都为高,假设不全为高,阐明有键然后检查各行线电平能否都为高,假设不全为高,阐明有键按下,否那么无键被按下。按下,否那么无键被按下。 例如,当键例如,当键3按下时,第按下时,第1行线为低,还不能确定是键行线为低,还不能确定是键3被按下,由于假好像一行

23、的键被按下,由于假好像一行的键2、1或或0之一被按下,行线也之一被按下,行线也为低电平。只能得出第为低电平。只能得出第1行有键被按下的结论。行有键被按下的结论。 第第2步,识别出哪个按键被按下。采用逐列扫描法,在步,识别出哪个按键被按下。采用逐列扫描法,在某一时辰只让某一时辰只让1条列线处于低电平,其他一切列线处于高电条列线处于低电平,其他一切列线处于高电平。平。 当第当第1列为低电平,其他各列为高电平常,由于是键列为低电平,其他各列为高电平常,由于是键3被被按下,第按下,第1行的行线仍处于高电平;行的行线仍处于高电平; 当第2列为低电平,其他各列为高电平常,第1行的行线仍处于高电平; 直到让

24、第4列为低电平,其他各列为高电平常,此时第1行的行线电平变为低电平,据此,可判别第1行第4列交叉点处的按键,即键3被按下。 综上所述,扫描法的思想是,先把某一列置为低电平,其他各列置为高电平,检查各行线电平的变化,假设某行线电平为低电平,那么可确定此行此列交叉点处的按键被按下。 线反转法。扫描法要逐列扫描查询,有时那么要多次线反转法。扫描法要逐列扫描查询,有时那么要多次扫描。而线反转法那么很简练,无论被按键是处于第一列或扫描。而线反转法那么很简练,无论被按键是处于第一列或最后一列,均只需经过两步便能获得此按键所在的行列值,最后一列,均只需经过两步便能获得此按键所在的行列值,下面以图下面以图10

25、-10所示的矩阵式键盘为例,引见线反转法的详所示的矩阵式键盘为例,引见线反转法的详细步骤。细步骤。 让行线编程为输入线,列线编程为输出线,并使输出线让行线编程为输入线,列线编程为输出线,并使输出线输出为全低电平,那么行线中电平由高变低的所在行为按键输出为全低电平,那么行线中电平由高变低的所在行为按键所在行。所在行。 再把行线编程为输出线,列线编程为输入线,并使输出再把行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,那么列线中电平由高变低所在列为按键线输出为全低电平,那么列线中电平由高变低所在列为按键所在列。所在列。 两步即可确定按键所在的行和列,从而识别出所按的键。两步即可确定按

26、键所在的行和列,从而识别出所按的键。 图图10-10 采用线反转法的矩阵式键盘采用线反转法的矩阵式键盘 假设键假设键3被按下。被按下。 第一步,第一步,P1.0P1.3输出全为输出全为“0,然后,读入,然后,读入P1.4P1.7线的形状,结果线的形状,结果P1.4=0,而,而P1.5P1.7均为均为1,因此,因此,第第1行出现电平的变化,阐明第行出现电平的变化,阐明第1行有键按下;行有键按下; 第二步,让第二步,让P1.4P1.7输出全为输出全为“0,然后,读入,然后,读入P1.0P1.3位,结果位,结果P1.0=0,而,而P1.1P1.3均为均为1,因此第,因此第4列出现电平的变化,阐明第列

27、出现电平的变化,阐明第4列有键按下。列有键按下。 综上所述,即第综上所述,即第1行、第行、第4列按键被按下,此按键即键列按键被按下,此按键即键3按下。线反转法简单适用,但不要忘记按键去抖动处置。按下。线反转法简单适用,但不要忘记按键去抖动处置。10.2.3 键盘的任务方式键盘的任务方式 单片机在忙于其他各项任务义务时,如何兼顾键盘的输单片机在忙于其他各项任务义务时,如何兼顾键盘的输入,这取决于键盘的任务方式。任务方式选取原那么是,既入,这取决于键盘的任务方式。任务方式选取原那么是,既要保证及时呼应按键操作,又不过多占用单片机任务时间。要保证及时呼应按键操作,又不过多占用单片机任务时间。键盘任务

28、方式有键盘任务方式有3种,即编程扫描、定时扫描和中断扫描。种,即编程扫描、定时扫描和中断扫描。1编程扫描方式编程扫描方式 也称查询方式,利用单片机空闲时,调用键盘扫描子程也称查询方式,利用单片机空闲时,调用键盘扫描子程序,反复扫描键盘。序,反复扫描键盘。 假设单片机的查询的频率过高,虽能及时呼应键盘的输假设单片机的查询的频率过高,虽能及时呼应键盘的输入,但也会影响其他义务的进展。查询的频率过低,能够会入,但也会影响其他义务的进展。查询的频率过低,能够会键盘输入漏判。所以要根据单片机系统的忙碌程度和键盘的键盘输入漏判。所以要根据单片机系统的忙碌程度和键盘的操作频率,来调整键盘扫描的频率。操作频率

29、,来调整键盘扫描的频率。编程扫描程序框图编程扫描程序框图 消除按键抖动、键闭合一次仅进展一次按键的处置。2定时扫描方式定时扫描方式 每隔一定的时间对键盘扫描一次。在这种方式中,通常每隔一定的时间对键盘扫描一次。在这种方式中,通常利用单片机内的定时器产生的定时中断,进入中断子程序来利用单片机内的定时器产生的定时中断,进入中断子程序来对键盘进展扫描,在有键按下时识别出该键,并执行相应键对键盘进展扫描,在有键按下时识别出该键,并执行相应键的处置程序。为了不漏判有效的按键,定时中断的周期普通的处置程序。为了不漏判有效的按键,定时中断的周期普通应小于应小于100ms。F1:去除抖动标志位:去除抖动标志位

30、F2:已识别完按键标志位:已识别完按键标志位每每10ms定时中断。定时中断。定时扫描程序框图定时扫描程序框图3中断扫描方式中断扫描方式 为提高单片机扫描键盘的任务效率,可采用中断扫描方为提高单片机扫描键盘的任务效率,可采用中断扫描方式,如图式,如图10-11所示。所示。 图中的键盘只需在键盘有按键按下时,发出中断恳求信图中的键盘只需在键盘有按键按下时,发出中断恳求信号,单片机呼应中断,执行键盘扫描程序中断效力子程序。号,单片机呼应中断,执行键盘扫描程序中断效力子程序。如无键按下,单片机将不理睬键盘。如无键按下,单片机将不理睬键盘。 此种方式的优点是,只需按键按下时,才进展处置,所此种方式的优点

31、是,只需按键按下时,才进展处置,所以其实时性强,任务效率高。以其实时性强,任务效率高。图图10-11 采用中断扫描方式的矩阵式键盘采用中断扫描方式的矩阵式键盘 矩阵式键盘所完成的任务分为矩阵式键盘所完成的任务分为3个层次。个层次。 1单片机如何来监视键盘的输入,表达在键盘的任单片机如何来监视键盘的输入,表达在键盘的任务方式上就是:务方式上就是: 编程扫描;定时扫描;中断扫描。编程扫描;定时扫描;中断扫描。 2确定按下键的键号。表达在按键的识别方法上就确定按下键的键号。表达在按键的识别方法上就是:是: 扫描法;线反转法。扫描法;线反转法。 3根据按下键的键号,实现按键的功能,即跳向对根据按下键的

32、键号,实现按键的功能,即跳向对应的键处置程序。应的键处置程序。ORG 0000HSTART: LJMP MAINORG 0030HMAIN: MOV SP,#60HJNB P1.0,M0;查询能否有键按下查询能否有键按下JNB P1.1,M1;查询查询K2键能否按下键能否按下JNB P1.2,M2;查询查询K3键能否按下键能否按下JNB P1.3,M3;查询查询K4键能否按下键能否按下JNB P1.4,M4;查询查询K5键能否按下键能否按下JNB P1.5,M5;查询查询K6键能否按下键能否按下JNB P1.6,M6;查询查询K7键能否按下键能否按下JNB P1.7,M7;查询查询K8键能否按

33、下键能否按下M0:LCALL DELAY;延时,反弹跳延时,反弹跳JNB P1.0,P10;K1键压下处置键压下处置SJMP MAINM1:LCALL DELAY;延时,反弹跳延时,反弹跳JNB P1.1,P11;K2键压下处置键压下处置SJMP MAINM2:LCALL DELAY;延时,反弹跳延时,反弹跳JNB P1.2,P12;K3键压下处置键压下处置SJMP MAINM3:LCALL DELAY;延时,反弹跳延时,反弹跳JNB P1.3,P13;K3键压下处置键压下处置SJMP MAINM4:LCALL DELAY ;延时,反弹跳延时,反弹跳JNB P1.4,P14;K5键压下处置键压

34、下处置SJMP MAINM5:LCALL DELAY ;延时,反弹跳延时,反弹跳JNB P1.5,P15;K6键压下处置键压下处置SJMP MAINM6:LCALL DELAY ;延时,反弹跳延时,反弹跳JNB P1.6,P16;K7键压下处置键压下处置SJMP MAINM7:LCALL DELAY ;延时,反弹跳延时,反弹跳JNB P1.7,P17; K8键压下处置键压下处置SJMP MAINP10:CPL P0.0SJMP MAINP11:CPL P0.1SJMP MAINP12:CPL P0.2SJMP MAINP13:CPL P0.3SJMP MAINP14:CPL P0.4SJMP

35、MAINP15:CPL P0.5SJMP MAINP16:CPL P0.6SJMP MAINP17:CPL P0.7SJMP MAINDELAY: MOV R5,#50H ;延时子程序延时子程序D2: MOV R6,#0F0HD1: NOPDJNZ R6,D1DJNZ R5,D2RETEND10.3 键盘键盘/显示器接口设计实例显示器接口设计实例 在单片机运用系统设计中,普通都是把键盘和显示器放在单片机运用系统设计中,普通都是把键盘和显示器放在一同思索。也有的系统仅单独需求键盘或显示器。在一同思索。也有的系统仅单独需求键盘或显示器。10.3.1 利用并行利用并行I/O芯片芯片8155H或或51

36、单片机的串行口实现键单片机的串行口实现键盘盘/显示器接口略显示器接口略10.3.2 各种公用的键盘各种公用的键盘/显示器接口芯片简介显示器接口芯片简介 用公用芯片,可省去编写键盘用公用芯片,可省去编写键盘/显示器动态扫描程序以及显示器动态扫描程序以及键盘去抖动程序编写的繁琐任务。键盘去抖动程序编写的繁琐任务。 目前各种公用接口芯片种类繁多,各有特点,总体趋势目前各种公用接口芯片种类繁多,各有特点,总体趋势是并行接口芯片逐渐退出,串行接口芯片越来越多的得到运是并行接口芯片逐渐退出,串行接口芯片越来越多的得到运用。用。 早期的较为流行的键盘早期的较为流行的键盘/显示器芯片显示器芯片8279,目前流

37、行的,目前流行的键盘键盘/显示器接口芯片均采用串行通讯方式,占用口线少。常显示器接口芯片均采用串行通讯方式,占用口线少。常见的芯片有:周立功公司的见的芯片有:周立功公司的ZLG7289A、ZLG7290B、MAX7219、南京沁恒公司的、南京沁恒公司的CH451、HD7279和和BC7281等。等。 这些芯片全采用动态扫描方式,且控制的键盘均为编码键盘。1. 公用键盘/显示器接口芯片8279 可编程的并行键盘/显示器接口芯片。内部有键盘FIFO先进先出堆栈/传感器双重功能的88=64位的RAM,键盘控制部分可控制88的键盘矩阵,能自动获得按下键的键号。 自动去键盘抖动并具有双键锁定维护功能。显

38、示RAM的容量为168位,最多可控制16个LED数码管显示。2. 公用键盘公用键盘/显示器芯片显示器芯片ZLG7290B 采用采用I2C串行口总线构造,可实现串行口总线构造,可实现8位位LED显示和显示和64键的键的键盘管理,需外接晶振,运用按键功能时要接键盘管理,需外接晶振,运用按键功能时要接8个二极管,电个二极管,电路稍显复杂,且每次路稍显复杂,且每次I2C通讯间隔稍长通讯间隔稍长10ms。 功能:闪烁、段点亮、段熄灭、功能键、连击键计数等。功能:闪烁、段点亮、段熄灭、功能键、连击键计数等。其中,功能键实现了组合按键,这在此类芯片中极具特点;其中,功能键实现了组合按键,这在此类芯片中极具特

39、点;连击键计数实现了识别长按键的功能,也是独有的。连击键计数实现了识别长按键的功能,也是独有的。3. 公用显示器芯片公用显示器芯片MAX7219 MAXIM美信公司的产品。该芯片采用串行美信公司的产品。该芯片采用串行SPI接口,接口,仅是单纯驱动共阴极仅是单纯驱动共阴极LED数码管,没有键盘管理功能。数码管,没有键盘管理功能。4. 公用显示器芯片公用显示器芯片BC7281 可驱动可驱动16位位LED数码管显示和实现数码管显示和实现64键的键盘管理,可键的键盘管理,可实现闪烁、段点亮、段熄灭等功能。最大特点是经过外接移实现闪烁、段点亮、段熄灭等功能。最大特点是经过外接移位存放器驱动位存放器驱动1

40、6位位LED数码管。但所需外围电路较多,占数码管。但所需外围电路较多,占PCB空间较大,且在驱动空间较大,且在驱动16位位LED数码管时,由于采用动态数码管时,由于采用动态扫描方式任务,电流噪声过大。扫描方式任务,电流噪声过大。5公用键盘公用键盘/显示器芯片显示器芯片HD7279 与单片机间采用串行通讯,可控制并驱动与单片机间采用串行通讯,可控制并驱动8位位LED数码数码管和实现管和实现6488键的键盘管理。外围电路简单,价钱低键的键盘管理。外围电路简单,价钱低廉。由于具有上述优点,目前得到较为广泛的运用。廉。由于具有上述优点,目前得到较为广泛的运用。6公用键盘公用键盘/显示器芯片显示器芯片C

41、H451 可动态驱动可动态驱动8位位LED数码管显示,具有数码管显示,具有BCD码译码、闪码译码、闪烁、移位等功能。烁、移位等功能。 内置大电流驱动级,段电流不小于内置大电流驱动级,段电流不小于30mA,位电流不小,位电流不小于于160mA。内置。内置6488键键盘控制器,可对键键盘控制器,可对88矩阵键矩阵键盘自动扫描,且有去抖动电路,并提供键盘中断和按键释放盘自动扫描,且有去抖动电路,并提供键盘中断和按键释放标志位,可供查询按键按下与释放形状。片内内置上电复位标志位,可供查询按键按下与释放形状。片内内置上电复位和看门狗定时器。芯片性价比较高,是目前运用较为广泛的和看门狗定时器。芯片性价比较

42、高,是目前运用较为广泛的公用的键盘公用的键盘/显示器接口芯片之一。但抗干扰才干不是很强,显示器接口芯片之一。但抗干扰才干不是很强,不支持组合键识别。不支持组合键识别。 上述各种芯片,上述各种芯片,CH451和和HD7279运用较多。从性价比,运用较多。从性价比,首推首推CH451,主要对,主要对LED数码管的驱动功能较完善。数码管的驱动功能较完善。10.3.3 10.3.3 利用键盘利用键盘/ /显示接口芯片显示接口芯片82798279实现的键盘实现的键盘/ /显显示器接口示器接口 8279 8279是是IntelIntel公司为公司为8 8位微处置器设计的通用位微处置器设计的通用键盘键盘/

43、/显示器接口芯片,其功能是:接纳来自键盘的显示器接口芯片,其功能是:接纳来自键盘的输入数据并作预处置;完成数据显示的管理和数据输入数据并作预处置;完成数据显示的管理和数据显示器的控制。显示器的控制。 单片机运用系统采用单片机运用系统采用82798279管理键盘和显示器,管理键盘和显示器,软件编程极为简单,显示稳定,且减少了主机的负软件编程极为简单,显示稳定,且减少了主机的负担。担。 1. 82791. 8279的引脚定义的引脚定义 DB7DB0为双向外部数据总线为双向外部数据总线 ; 为片选信号线,低电平有效;为片选信号线,低电平有效; 和和 为读和写选通讯号线;为读和写选通讯号线;IRQ为中

44、断恳求输出线。为中断恳求输出线。RL7RL0为键盘回送线。为键盘回送线。SL3SL0为扫描输出线。为扫描输出线。OUTB3OUTB0、OUTA3OUTA0为显示存放器数据输出线。为显示存放器数据输出线。RESET为复位输入线。为复位输入线。 SHIFT为换档键输入线。为换档键输入线。CNTL/STB为控制为控制/选通输入线。选通输入线。CLK为外部时钟输入线。为外部时钟输入线。 为显示器消隐控制线为显示器消隐控制线 。A0为缓冲器选择端。为缓冲器选择端。12345678910111213141516171819204039383736353433323130292827262524232221

45、RL2RL3CLKIRQRL4RL5RL6RL7RESETRDWRDB0DB1DB2DB3DB4DB5DB6DB7GNDVCCRL1RL0CNTL/STBSHIFTSL3SL2SL1SL0OUTB0OUTB1OUTB2OUTB3OUTA0OUTA1OUTA2OUTA3BDCSA08279CSRDWRBD DB0DB7:具有三态的双向数据总线。用于具有三态的双向数据总线。用于8279与外部与外部 CPU之间传送命令控制字和数据。之间传送命令控制字和数据。 CLK :系统时钟输入。用于:系统时钟输入。用于8279内部产生任务的时序。内部产生任务的时序。 RESET :复位信号输入端。当:复位信号输

46、入端。当RESET=1时时,8279被复位,被复位, 复位后复位后8279内部形状如下内部形状如下 1,16个字符显示,左入口;个字符显示,左入口; 2,编码扫描键盘,双键锁定;,编码扫描键盘,双键锁定; 3,程序时钟编程为,程序时钟编程为31。 /CS :片选段。低电平有效;:片选段。低电平有效; A0 : 缓冲器选择端。缓冲器选择端。A0=1时时:假设假设CPU对对8279执行写入执行写入操操 作时作时,写入是命令字;假设写入是命令字;假设CPU从从8279读数据时,读数据时,读出读出 的是的是8279的形状。的形状。A0=0时时,写入和读出的均为数据。写入和读出的均为数据。 /RD、/W

47、R:读写控制线。来自读写控制线。来自CPU的控制信号,控制的控制信号,控制 8279的读写操作。的读写操作。 IRQ : 中断恳求信号。输出线,高电平有效。中断恳求信号。输出线,高电平有效。 SL0SL3: 扫描输出线。作为键盘、显示器的扫描信号,扫描输出线。作为键盘、显示器的扫描信号, 经过编程可定为经过编程可定为“编码输出外接编码输出外接4-16译码译码器器 产生产生16选选1的扫描信号;也可设定为的扫描信号;也可设定为“译码译码输输 出出, 直接输出选的扫描信号。直接输出选的扫描信号。 RL0RL7:回复输入线。用来接纳扫描键盘的回复信号。回复输入线。用来接纳扫描键盘的回复信号。 SHI

48、FT:移位信号的输入线,高电平有效。该信号是:移位信号的输入线,高电平有效。该信号是8279 键盘数据的次高位键盘数据的次高位D6位,通常用来补充键位,通常用来补充键盘盘 开关的功能,如键盘的上、下挡功能。在传感开关的功能,如键盘的上、下挡功能。在传感器方器方 式和选通方式中,式和选通方式中,SHIFT无效。无效。 CNTL/STB: 控制控制/选通输入线,高电平有效。键盘方式时该选通输入线,高电平有效。键盘方式时该输入信号是键盘信号的最高位输入信号是键盘信号的最高位D7,通常用来扩展键盘开通常用来扩展键盘开关的控制功能,作为键盘控制功能键用。在传感器方式和关的控制功能,作为键盘控制功能键用。

49、在传感器方式和选通方式中,选通方式中,CNTL无效。在选通方式中,该信号的上升沿无效。在选通方式中,该信号的上升沿可未来可未来RL0RL7的数据存放到的数据存放到FIFO RAM中。中。 OUTA0OUTA3: A组显示输出线组显示输出线( 接接LED的的eg,dp划划)。 OUTB0OUTB3: B组显示输出线组显示输出线(接接LED的的ad划划)。 上面两组线均为显示用的信息输出线上面两组线均为显示用的信息输出线,数据的输出与数据的输出与SL0SL7的数字扫描信号同步的数字扫描信号同步,实现数据的动态扫描显示。实现数据的动态扫描显示。 A组与组与B组输出线可以单独运用如输出组输出线可以单独

50、运用如输出BCD码经外部的码经外部的“BCD-七段译码器与显示器衔接;也可以将七段译码器与显示器衔接;也可以将A、B两组两组合并运用,直接输出七段的合并运用,直接输出七段的“字形码供显示器运用。字形码供显示器运用。 /BD:消隐显示输出线,低电平有效。该输出信号在数字切消隐显示输出线,低电平有效。该输出信号在数字切换显示或运用显示消隐命令时,控制显示器将显示消隐。换显示或运用显示消隐命令时,控制显示器将显示消隐。2. 82792. 8279的内部构造的内部构造 数据缓冲器数据缓冲器 将双向三态将双向三态8位内部数据总线位内部数据总线D0D7与与系统总线相连,用于传送系统总线相连,用于传送CPU

51、与与8279之间的命令和之间的命令和形状。形状。控制和定时存放器控制和定时存放器 用于存放键盘和显示器的任务用于存放键盘和显示器的任务方式,锁存操作命令,经过译码器产生相应的控制方式,锁存操作命令,经过译码器产生相应的控制信号,使信号,使8279的各个部件完成相应的控制功能。的各个部件完成相应的控制功能。定时器包含一些计数器,其中有一个可编程的定时器包含一些计数器,其中有一个可编程的5位位计数器计数值在计数器计数值在231间,对间,对CLK输入的时钟输入的时钟信号进展分频,产生信号进展分频,产生100 KHz的内部定时信号此的内部定时信号此时扫描时间为时扫描时间为5.1ms,消抖时间为,消抖时

52、间为10.3ms。外部。外部输入时钟信号周期不小于输入时钟信号周期不小于500ns。 扫描计数器有两种输出方式:一是编码方式,计扫描计数器有两种输出方式:一是编码方式,计数器以二进制方式计数,数器以二进制方式计数,4位计数形状从扫描线位计数形状从扫描线SL3SL0 输出,经外部译码器可以产生输出,经外部译码器可以产生16位的键位的键盘和显示器扫描信号;另一种是译码方式,扫描计盘和显示器扫描信号;另一种是译码方式,扫描计数器的低两位经内部译码后从数器的低两位经内部译码后从SL3SL0 输出,直输出,直接作为键盘和显示器的扫描信号。接作为键盘和显示器的扫描信号。回送缓冲器、键盘消抖及控制完成对键盘

53、的自动回送缓冲器、键盘消抖及控制完成对键盘的自动扫描以搜索闭合键,锁存扫描以搜索闭合键,锁存RL7RL0的键输入信息,的键输入信息,消除键的抖动,将键输入数据写入内部先进先出存消除键的抖动,将键输入数据写入内部先进先出存储器储器FIFO RAM。RL7RL0为回送信号线作为回送信号线作为键盘的检测输入线,由回送缓冲器缓冲并锁存,为键盘的检测输入线,由回送缓冲器缓冲并锁存,当某一键闭合时,附加的移位形状当某一键闭合时,附加的移位形状SHIFT、控制形、控制形状状CNTL及扫描码和回送信号拼装成一个字节的及扫描码和回送信号拼装成一个字节的“键盘数据送入键盘数据送入8279内部的内部的FIFO先进先

54、出先进先出RAM。 键盘的数据格式为:键盘的数据格式为: 在传感器矩阵方式和选通方式时,回送线在传感器矩阵方式和选通方式时,回送线RL7RL0的内的内容被直接送往相应的容被直接送往相应的FIFO RAM。输入数据即为。输入数据即为RL7RL0。数据格式为。数据格式为 : FIFO/传感器传感器RAM是具有双功能的是具有双功能的88 RAM在键盘或选通方式时,它作为在键盘或选通方式时,它作为FIFO RAM,依,依先进先出的规那么输入或读出,其形状存放在先进先出的规那么输入或读出,其形状存放在FIFO/传感器传感器RAM形状存放器中。只需形状存放器中。只需FIFO RAM不空,形状逻辑将置中断恳

55、求不空,形状逻辑将置中断恳求IRQ=1;在传感器矩阵方式,作为传感器在传感器矩阵方式,作为传感器RAM,当检测,当检测出传感器矩阵的开关形状发生变化时,中断恳出传感器矩阵的开关形状发生变化时,中断恳求信号求信号IRQ=1。在外部译码扫描方式时,可对。在外部译码扫描方式时,可对88矩阵开关的形状进展扫描,在内部译码扫描矩阵开关的形状进展扫描,在内部译码扫描方式时,可对方式时,可对48矩阵开关的形状进展扫描。矩阵开关的形状进展扫描。显示显示RAM用来存储显示数据,容量是用来存储显示数据,容量是168位位在显示过程中,存储的显示数据轮番从显示存在显示过程中,存储的显示数据轮番从显示存放器输出。显示存

56、放器输出分成两组,即放器输出。显示存放器输出分成两组,即OUTA0OUTA3和和OUTB0OUTB3,两组可,两组可以单独送数,也可以组成一个以单独送数,也可以组成一个8位的字节输出,位的字节输出,该输出与位选扫描线该输出与位选扫描线SL0SL3配合就可以实配合就可以实现动态扫描显示。现动态扫描显示。显示地址存放器用来存放显示地址存放器用来存放CPU读读/写显示写显示RAM的地址,可以设置为每次读出或写入后自动递的地址,可以设置为每次读出或写入后自动递增。增。3.8279的命令字和形状字 8279是可编程接口芯片,其任务方式、任务特点等均是经过CPU向8279发送命令实现的,因此对8279的编

57、程实践上就是向8279写入命令字的过程。 8279共有8条控制字,命令字是由每个字节中的D7D5三位为特征区分。详细的命令字格式如下:D7 D6 D5 D4 D3 D2 D1 D0命令字特征位命令字特征位(1)键盘/显示方式命令字 D7,D6,D5=000:方式命令字的特征位。方式命令字的特征位。 D3,D4=DD:显示任务方式设定。显示任务方式设定。 0 0: 8位字符显示,左入口打字机方式;位字符显示,左入口打字机方式; 0 1: 16位字符显示,左入口打字机方位字符显示,左入口打字机方式;式; 1 0: 8位字符显示,右入口计算器方式;位字符显示,右入口计算器方式; 1 1: 16位字符

58、显示,右入口计算器方式。位字符显示,右入口计算器方式。000DDKKKD7 D6 D5 D4 D3 D2 D1 D0命令字特征位命令字特征位 显示任务方式显示任务方式 键盘任务方式键盘任务方式 D2,D1,D0=KKK: 设定键盘任务方式。设定键盘任务方式。 0 0 0 : 编码扫描键盘,双键锁定;编码扫描键盘,双键锁定; 0 0 1 : 译码扫描键盘,双键锁定;译码扫描键盘,双键锁定; 0 1 0 : 编码扫描键盘,编码扫描键盘,N键轮回;键轮回; 0 1 1 : 译码扫描键盘,译码扫描键盘,N键轮回;键轮回; 1 0 0 : 编码扫描传感器;编码扫描传感器; 1 0 1 : 译码扫描传感器

59、;译码扫描传感器; 1 1 0 : 选通输入,编码显示扫描;选通输入,编码显示扫描; 1 1 1 : 选通输入,译码显示扫描;选通输入,译码显示扫描; 【阐明】:【阐明】:1,“双键锁定指有双键锁定指有2个键按下时,取最后弹个键按下时,取最后弹起的键;起的键; 2,“N键轮回指有键轮回指有N个键按下时,根据它们按下的顺个键按下时,根据它们按下的顺序依次存入序依次存入FIFO RAM中。中。 3,“编码输出指按二进制计数器规律输出数据;编码输出指按二进制计数器规律输出数据; 4,“译码输出指按译码器输出的规律输出如译码输出指按译码器输出的规律输出如4选选1)。(2)程序时钟命令 8279内部有本

60、人的时序电路,其时钟信号来源于外部输内部有本人的时序电路,其时钟信号来源于外部输入的入的CLK,为了使输入的时钟满足内部,为了使输入的时钟满足内部100KHz的要求,的要求,就要对外部输入的就要对外部输入的CLK进展适当的分频。进展适当的分频。 D4,D3,D2,D1,D0=PPPPP: 分频系数范围:分频系数范围:231。001PPPPPD7 D6 D5 D4 D3 D2 D1 D0命令字特征位 对输入信号CLK的分频系数(3)读FIFO RAM命令 FIFO RAM为存放扫描键盘时获得的为存放扫描键盘时获得的“键值数据,容量键值数据,容量为为8*8。 CPU 读读8279的数据口的数据时,

温馨提示

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

最新文档

评论

0/150

提交评论