《微机第7章2.ppt》由会员分享,可在线阅读,更多相关《微机第7章2.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第7章章 键盘技术和键盘技术和LED 本章重点本章重点 n键盘的基本工作原理,包括矩阵结构、行扫描法和行反转法识别原理 n解决抖动和重键的连锁法和巡回法的原理 nLED显示原理和多位显示原理 n微型机系统中键盘子系统的工作原理 n扩展键盘扫描电路的工作原理 n主机键盘接口的功能和构成 n09H键盘中断处理程序对各类键的处理 n16H键盘中断处理程序的功能 n键盘缓冲区的工作机制 7.2 键盘的基本工作原理键盘的基本工作原理 键盘矩阵键的识别抖动和重键问题的解决一、键输入过程与软件结构按键或键盘都是以开关状态来设置控制功能或输入数据。按键大多分为功能键和数字键两种。对某些应用系统(如智能仪表)
2、,键输入程序是整个应用程序的核心部分;大多用散转指令来实现程序的转移;可用中断方式或查询方式了解按键的状态。二、应用系统的键输入软件框图 三、键输入接口与软件应解决的任务1、键开关状态的可靠输入 按键、键盘是利用机械触点的合、断作用。由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,会出现一系列负脉冲。抖动时间长短,一般为510ms。键闭合及断开时的电压变化 去抖动 通常去抖措施有硬件去抖、软件去抖两种。硬件去抖用R-S触发器或单稳态电路构成。软件去抖是在检测到有键按下时,执行一个10ms的延时程序。对按键进行编码给定键值或直接给出键号对mn的键盘,其键值一般为:0mn-1。3、选择键盘监
3、测方法采用方法来监测有无按键按下 外中断方式 查询方式 定时中断方式4、编制键盘程序一个完善的键盘控制程序应解决以下任务:(1)监测有无按键按下;(2)有按键按下后,在无硬件去抖电路时,用软件延时方法去抖;(3)有可靠的逻辑处理办法。N键同时按 下,取其一;判断键释放。(4)输出确定的键号。7.2.17.2.1键盘矩阵键盘矩阵 一、独立式 键盘结构独立式按键是指直接用I/O口线构成的单个按键电路。二、矩阵式键盘结构 行列式键盘又叫矩阵式键盘。用I/O口组成行、列结构,按键设置在行列的交点上。在按键数量较多时,可以节省I/O口线。7.27.2.2.2 键的识别键的识别 识别闭合键的方法:n逐行扫
4、描法n反转法 1.逐逐行扫描法的原理行扫描法的原理 n给列线的所有I/O口线输出全“0”,读入行线的电平状态;若有键按下,总会有一根行线的电平为“0”,从而使行输入不全为“1”;n依次给列线输出“0”(仅有一根I/O线),然后检查所有行线的电平状态,如果不全为“1”,则按键在此列,而且是在与“0”行线相交的那个按键;如果全为“1”,则按键不在此列,继续下一列;n对mn的键盘,其键值一般为0mn-1。行线与列线分别接到两个并行端口的示意图 判断是否有按键WAIT:MOVAL,00HMOVDX,OUTPORTOUTDX,AL;往所有行线上输出低电 平 MOVDX,INPORTINAL,DX;读取列
5、值 AND AL,0FFH CMP AL,0FFH;是否有列线为低电平 JZ WAIT;否,则循环等待DONE:CALL DELAY;是,则延迟去抖动 判断哪一个键被按下的流程2.2.反转法的原理反转法的原理行线、列线分别接并行口行线输出,列线输入列线输出读得的值,行线输入 反转法要求键盘接口必须是可编程的。通过改变行、列的输入/输出,分别读入行值和列值,再形成键值。(a)行线输出,列线输入 反转法的工作示意图(b)列线输出,行线输入 反转法的工作示意图反转法的键盘连接 反转法的流程 反转法的原理反转法的原理反转法原理如下:第一步:设置列输出、行输入,列输出全“0”,若有键按下,读取行值;第二
6、步:将第一步中的传送方向反转过来,设置行输出、列输入,行输出全“0”,若有键按下,读取列值,再产生键 值。7.2.3 抖动和重键问题的解决抖动和重键问题的解决(1)抖动:用延迟来解决(2)重键:7.3 LED数字显示数字显示 LED的工作原理 多位显示问题7.3.1 LED的工作原理的工作原理 七段式LED显示部件(a)典型的七段式LED器件(b)共阳极LED(c)共阴极LED 共阳级结构:数码显示端低电平有效 共阴极结构:数码显示端高电平有效 数据用LED显示的译码方法:专用芯片译码软件译码 LED的外部连接电路(共阴极)用专用芯片完成段译码的示意(共阳极)软件译码举例(显示1位数字)DIS
7、P:MOV BX,OFFSET DATAMOV AL,BX ;要显示的数字MOV BX,OFFSET LEDADD;代码表首址XLAT ;将数字转换成 显示代码 MOVDX,PORT OUT DX,AL ;将显示代码送显示,LEDADD:DB40H ;0的显示代码DB79H ;1的显示代码DB24H ;2的显示代码 7.3.2 多位显示问题的解决多位显示问题的解决 硬件:公用的驱动电路 软件:扫描方法 多位显示的扫描和驱动电路 8位LED显示的流程图 LEDLED显示器与显示方式显示器与显示方式1、LED静态显示方式2 2、LEDLED动态显示方式动态显示方式4位LED动态显示过程:扫描显示方
8、式,每位轮流显示一段时间(15ms),其它位均灭。如显示“1234”,过程如下:液晶显示器(液晶显示器(LCDLCD)及显示器接口)及显示器接口 n一、LCD的基本结构及工作原理 通过光的偏振,偏振光被反射回来,呈透明状态;偏振光不被反射回来,呈黑色。n二、LCD的驱动方式 LCD的驱动方式一般有静态驱动方式和时分割驱动两种。1、时分割驱动方式 时分割驱动方式采用电压平均化,其占空比有1/2、1/8等。2、静态驱动方式 当加在字段上的电压相位相同时,两电极的相对电压为零,该字段不显示;当加在字段上的电压相位相反时,两电极的相对电压为两倍幅值电压,该字段呈黑色显示。图 静态驱动回路及波形 7.3
9、.3 键盘和键盘和LED设计实例设计实例 设计要求:连接7856键的键盘 连接6个LED 设计1个定时装置,显示分和秒 按下某些特定键时,实现指定的功能 计时器的显示部分 计时器的键盘部分 本系统直接使用的端口地址 计数器8255:控制口地址 00D6H计数器0的地址 00D0H计数器1的地址 00D2H计数器2的地址 00D4H 思考题:思考题:用一片用一片82558255控制控制8 88 8键盘和键盘和8 8位位LEDLED显显示器接口,画出原理图,并写出键盘扫描示器接口,画出原理图,并写出键盘扫描和显示程序。和显示程序。DATA SEGMENTBUFF DB 4 DUP(?)KEY DB
10、 0SEG7 DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,67H,77H,7CH DB 39H,5EH,79H,71HCS8 DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,7FHPORT_A EQU 300HPORT_B EQU 301HPORT_C EQU 302HPORT_CTR EQU 303HDATA ENDSSTACK SEGMENT DB 50 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK MAIN PROCS
11、TART:MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV DX,PORT_CTR MOV AL,89H ;A口输出,口输出,B口输口输 出,出,C口输入。口输入。OUT DX,AL MOV DX,PORT_B MOV AL,0 OUT DX,AL MOV DX,PORT_C IN AL,DX CMP AL,0FFH JZ DISPD LCALL DISPLY MOV DX,PORT_C IN AL,DX CMP AL,0FFH JZ DISPD MOV BL,0FEHDISP2:MOV DX,PORT_B MOV AL,BL
12、 OUT DX,AL MOV DX,PORT_C IN AL,DX CMP AL,0FFH JNZ DISP3 ROL BL,1 CMP BL,0FEH JNZ DISP2 JMP DISPDISP3:MOV DL,0DISP4:CMP BL,0FEH JZ DISP5 ROR BL INC DL JMP DISP4DISP5:MOV DH,0DISP6:MOV BH,AL AND BH,1 JZ DISP7 ROR AL,1 INC DH JMP DISP6 MOV AL,8 MUL DL ADD AL,DH LEA DI,KEY MOV BYTE PTRDI,AL MOV DX,PORT_
13、B MOV AL,0 OUT DX,ALDISP8:MOV DX,PORT_C IN AL,DX CMP AL,0FFH JNZ DISP8 LEA DI,KEYMOV AL,BYTE PTRDI MOV AH,AL ADD AL,AL ADD AL,AH;跳转表长度为跳转表长度为5 MOV BL,AL MOV BH,0 LEA DI,KEYTAB MOV AX,WORD PTRBX+DIKEYTAB:JMP KEY0 JMP KEY1 JMP KEYNKEY0:JMP DISPDKEY1:JMP DISPDKEYN:DISPD:LCALL DISPLAYMAIN ENDPDISPLAY PR
14、OC LEA SI,BUFF MOV CL,0 ;循环计数器;循环计数器 MOV CH,0 ;位选指针;位选指针DISP1:MOV BL,BYTE PTRSI INC SI SHR BL,1 SHR BL,1 SHR BL,1 SHR BL,1 MOV BH,0 LEA DI,SEG7 MOV AL,BYTE PTRBX+DI MOV DX,PORT_A OUT DX,AL MOV BL,CL INC CL MOV BH,0 LEA DI,CS8 MOV AL,BYTE PTRBX+DI MOV DX,PORT_B LCALL DELAY10 MOV BL,BYTE PTRSI INC SI
15、MOV BH,0 LEA DI,SEG7 MOV AL,BYTE PTRBX+DI MOV DX,PORT_A OUT DX,AL MOV BL,CL MOV BH,0 INC CL LEA DI,CS8 MOV AL,BYTE PTRBX+DI MOV DX,PORT_B OUT DX,AL LCALL DELAY10 INC CH CMP CH,4 JNZ DISP1 RETDISPLAY ENDPDELAY PROC MOV CX,10DELAY2:MOV BX,0DELAY1:DEC BX JNZ DELAY1 LOOP DELAY2DELAY ENDPCODE ENDS END ST
16、ART反转法反转法 DISP:MOV DX,PORT_CTR MOV AL,81H ;A口输出,口输出,B口输出,口输出,;C口低口低4位输入,位输入,C口高口高4位输出位输出 OUT DX,AL MOV DX,PORT_C IN AL,DX ANL AL,0FH CMP AL,0FH JZ DISPD LCALL DISPLY MOV DX,PORT_C IN AL,DX ANL AL,0FH CMP AL,0FH JZ DISPD MOV BL,AL MOV DX,PORT_CTR MOV AL,88H ;A口输出,口输出,B口输出,口输出,;C口低口低4位输出,位输出,C口高口高4位输入
17、位输入 OUT DX,AL MOV DX,PORT_C IN AL,DX ANL AL,0F0H 扩展键盘的工作原理扩展键盘的工作原理 16行8列的键盘扫描电路 7.3 4主机的键盘接口电路主机的键盘接口电路 主机键盘的接口功能:接收键盘的串行扫描码;将串行扫描码转为并行扫描码,再转为系统扫 描码向CPU发中断请求;接收CPU的键盘自检命令或复位命令,并 传输到键盘;主机的键盘接口 键盘中断处理程序键盘中断处理程序 09H键盘中断处理程序 16H键盘中断处理程序 键的分类特殊键第一类ASCII码键 第二类ASCII码键 不能用ASCII码表示的组合键和功能键 特殊命令键 1.对特殊键设置标志位
18、对特殊键设置标志位 09H中断处理程序对特殊键设置如下:D0 右Shift键 按下为1,否则为0 D1 左Shift键 按下为1,否则为0 D2 Ctrl键 按下为1,否则为0 D3 Alt键 按下为1,否则为0 D4 Scroll Lock键 按奇数次为1,否则为0 D5 Num Lock键 按奇数次为1,否则为0 D6 Caps Lock键 按奇数次为1,否则为0 D7 Ins键 按奇数次为1,否则为0 2.对第一类对第一类ASCII码键码键(1)第一类键ASCII码0127(2)处理方法:将系统扫描码转换为ASCII码 低位字节为ASCII码,高位字节为系统扫描码 3.对第二类对第二类ASCII码键码键(1)第二类键对应ASCII码128255(2)处理方法:直接将数字作为ASCII码低位字节为ASCII码,高位字节为0 4.对于不能用对于不能用ASCII码表示的组合键和功能键码表示的组合键和功能键(1)第三类键组合键和功能键(2)处理方法:用0作为低位字节,扩展码作为高位字节 5.对于特殊命令键对于特殊命令键(1)第四类键特殊命令键(2)处理方法:不形成代码,而直接完成相应操作7.4.2 16H键盘中断处理程序键盘中断处理程序 16H中断处理程序的功能调用