输入输出设备及接口技术(键盘)

上传人:豆浆 文档编号:47559261 上传时间:2018-07-02 格式:PPT 页数:31 大小:248KB
返回 下载 相关 举报
输入输出设备及接口技术(键盘)_第1页
第1页 / 共31页
输入输出设备及接口技术(键盘)_第2页
第2页 / 共31页
输入输出设备及接口技术(键盘)_第3页
第3页 / 共31页
输入输出设备及接口技术(键盘)_第4页
第4页 / 共31页
输入输出设备及接口技术(键盘)_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《输入输出设备及接口技术(键盘)》由会员分享,可在线阅读,更多相关《输入输出设备及接口技术(键盘)(31页珍藏版)》请在金锄头文库上搜索。

1、第十章 输入/输出设备及接口技术10.2 键盘接口技术常用的按键,都存在两种状态:断开和闭合 当某一键被按下,则为闭合状态键释放,则为断开状态键盘电路的功能就是将键的闭合和断开状态用 “0”和“1”来表示,然后通过数据线送到CPU内进 行键的识别一 键盘工作原理1. 键盘的可靠性按键的机械抖动:在实际按键操作中,由于按键动作是一个机械动作,键在闭合或断开的过程会发生抖动 键抖动时间的长短与开关的机械特性和人 的操作有关,一般为5ms10ms左右,然后达到 稳定状态。键盘接口:为了保证CPU对键的一次操作仅 作一次处理,必须去除抖动,使CPU在键的稳定 闭合或断开状态时读取键值。抖动时间 10m

2、s 开关动作时间 100ms“ 1 ”“ 0 ”10msI/O 接 口+5v+5v消除抖动电路按键单片机消除抖动的方法硬件去抖:软件:在键盘接口中,另一种普遍使用的是采用软 件延时来完成消抖的方法。基本思想是:在检测到按键按下或释放时,记 录按键的状态,延时大约10ms,再次检测按键的状 态,若与前一次的状态相同,说明按键的状态已稳 定,可进行处理;否则,表示键的状态不稳定,可 能是误动作,不应被处理。二 、独立式按键 1、接口设计P1.0P1.1P1.7+5v(1) 接口与数据每个按键单独占有一根 I/O接口引线。输入每根I/O接口引线的 信号对应某个按键状态。2、独立式按键接口程序设计键盘

3、处理程序任务 1)键输入检查键盘是否有键被按下,消除按 键抖动。确定被按键的键号。硬件电路消除抖动或软件消除抖动。 2)键译码确定键值 3)键处理根据键值转移到不同程序段。若键 值属于数字、字符键,则调用显示数字 和字符的子程序。若键值属于功能键, 则进行多分支转移,执行各个功能程序 段。延时等待10ms仍有按键信号? Y有按键信号?NYN键盘处理按键释放?NY3、独立式按键接口程序KEY:SETB P1.0JB P1.0, KEY ;有键按下P1.0=0KEY1: ACALL DELAY ;延时,防止抖动SETB P1.0 JB P1.0, KEY ;键是否仍按下?KEY2:JNB P1.0

4、, KEY2 ;消除了连击功能ACALL PROGRAM ;RET三、矩阵式键盘1、结构 由多条I/O接口引线组成矩阵式键盘由行线和列 线组成,按 键位于行、 列线的交叉 点上行: 输入列: 输出矩阵式键盘中,行、列线分别连接到按键开关的两端当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。2. 矩阵式键盘按键的识别识别按键的方法很多,其中,最常

5、见的方法是扫描法。(1) 判断有无键按下。 方法为:输出口全为“0”,读输入口状态,若全为“1”, 则说明无键按下;若不全为“1”,则说明有键按下(2) 消除按键抖动的影响。 方法为:在判断有键按下后,用软件延时的方法延时10ms后 ,再判断键盘状态,如果仍为有键按下状态,则认为有一个 按键按下,否则当作按键抖动来处理。(3)键的识别。 方法为:列线逐列输出“0”,某行有键按下,则对应行线输 入为“0”,若该行无键按下,对应行线输入为“1”。四. 键盘的工作方式对键盘的响应取决于键盘的工作方式,键盘的工作 方式应根据实际应用系统中CPU的工作状况而定,其选取 的原则是既要保证CPU能及时响应按

6、键操作,又不要过多 占用CPU的工作时间。通常,键盘的工作方式有三种,即 编程扫描、定时扫描和中断扫描。1: 编程扫描方式编程扫描方式是利用CPU完成其它工作的空余时间, 调用键盘扫描子程序来响应键盘输入的要求。在执行键 功能程序时,CPU不再响应键输入要求,直到CPU重新扫 描键盘为止。2: 定时扫描方式定时扫描方式就是每隔一段时间对键盘扫描一次 ,它利用单片机内部的定时器产生一定时间(例如 10ms)的定时,当定时时间到就产生定时器溢出中断 。CPU响应中断后对键盘进行扫描,并在有键按下时 识别出该键,再执行该键的功能程序。定时扫描方式的硬件电路与编程扫描方式相同按键处理程序:延时消抖键扫

7、描求键号延时键译码求键值输入数字跳转各功能程序有按键输入?确有按键?按键释放?是数字键?3: 中断扫描方式采用上述两种键盘扫描方式时,无论是 否按键,CPU都要定时扫描键盘,而单片机 应用系统工作时,并非经常需要键盘输入, 因此,CPU经常处于空扫描状态。中断式键盘电路 P1.0-P1.3 输出,为“0” P1.4-P1.7 输入无键按下时,与门各输入 端均为高电平,输出端保 持为高电平有键按下时,与门输入有 低,输出端为低电平,向 CPU申请中断,若CPU开放 外部中断,则会响应中断 请求,转去执行键盘扫描 子程序。五:键盘接口原理图程序流程图用行扫描法进行键扫描的程序其中KS1为判键闭合的

8、子程序。有键闭合时(A)=0。DIR为数码显示器扫描显示子程序,执行一次的时间约6ms。程序执行后, 若键闭合, 键值存入A中, 键值的计算公式是: 键值=行号4+列号; 若无键闭合, 则A中存入标志FFH。 键盘扫描程序: KEY1: LCALL KS1 ;检查有闭合键否?JNZ LK1 ;A非0,有键闭合则转LJMP LK8 ;无键闭合转返回 LK1: LCALL DIR ;有键闭合,则延时12msLCALL DIR ;消抖LCALL KS1 ;再次检查有键闭合否?JNZ LK2 ;有键闭合则转LJMP LK8 ;无键闭合转返回 LK2: MOV R3,00H ;行号初值送R3 MOV R

9、2,0FEH ;行扫描初值送R2 LK3: MOV DPTR,7F01H ;指向8155的PA口MOV A,R2 ;行扫描值送AMOVX DPTR,A ;扫描1行INC DPTRINC DPTR ;指向8155的PC口MOVX A,DPTR ;读入列值ANL A,0FH ;保留低4位MOV R4,A ;暂存列值CJNE A,0FH,LK4 ;列值非全“1”(有键按下),转计算键值MOV A,R2 ;行扫描值送AJNB ACC.7,LK8 ;已扫到最后1行则转RL A ;未扫完,则移至下1行MOV R2,A ;行值存入R2中INC R3 ;行号加1SJMP LK3 ;转至扫描下1行LK4: MO

10、V A,R3 ;行号送入AADD A,R3 ;行号2MOV R5,A ;暂存ADD A,R5 ;行号4MOV R5,A ;存入R5中MOV A,R4 ;列值送入ALK5: RRC A ;右移1位JNC LK6 ;该位为0则转INC R5 ;列号加1SJMP LK5 ;列号未判完继续LK6: PUSH R5 ;保护键值LK7: LCALL DIR ;扫描1遍显示器LCALL KS1 ;发全扫描信号JNZ LK7 ;键未释放则等待LCALL DIR ;键已释放LCALL DIR ;延时12ms,消抖POP A ;键值存入A中KND: RET ;返主程序LK8: MOV A,0FFH ;无键闭合标志

11、FFH存入A中RET ;返主程序KS1: MOV DPTR,7F01H ;有无闭合键判断子程序MOV A,00H ;取全扫描信号MOVX DPTR,A ;发全扫描信号INC DPTRINC DPTR ;指向8155的PC口MOVX A,DPTR ;读入列值ANL A,0FH ;保留低4位ORL A,0F0H ;高4位取“1”CPL A ;取反,无键按下则全0RET ;返主程序DIR数码显示器扫描显示子程序参阅LED数码显示器 键盘(显示)接口及程序设计图见P199 图10-7 8155的I/O口地址:7F00H-7F05HPA口:输出,作键盘的列线(键扫描)又作6位显示器的位扫描PB口:输出,

12、作显示器段数据输出PC口:输入,作键盘的行线(键输入) 键输入程序功能:1、判有无键按下2、去抖3、判键号4、其它(键释放才执行,多键等)键输入程序清单KEY1:MOV A,#03HMOV DPTR,#7F00HMOVX DPTR,AACALL KS1JNZ LK1ACALL DIR AJMP KEY1LK1:ACALL DIRACALL DIR ACALL KS1JNZ LK2ACALL DIRAJMP KEY1LK2:MOV R2,#0FEHMOV R4,#0 LK4:MOV DPTR,#7F01HMOV A,R2 MOVX DPTR,A INC DPTRINC DPTR MOVX A,D

13、PTRJB ACC.0,LONEMOV A,#0AJMP LKP LONE:JBACC.1,LTWOMOV A,#08HAJMP LKP LTWO:JB ACC.2,LTHRMOV A,#10HAJMP LKP LTHR:JB ACC.3,NEXTMOV A,#18H LKP:ADD A,R4PUSH ACCLK3:ACALL DIRACALLKS1JNZ LK3POP ACCRET NEXT:INC R4MOV A,R2 JNB ACC.7,KNDRL AMOV R2,AAJMP LK4 KND:AJMP KEY1KS1:MOV DPTR #7F01HMOV A,#0MOVX DPTR,AINC DPTRINC DPTRMOVX A,DPTRCPL AANL A,#0FHRET 注: A为”0”,则无键按下否则有键按下DIR:RET同P194程序,此略实验九 显示:设显示缓冲器为: 7CH(左) 、7DH、7EH、7FH(右)MOV A,#0HMOV 7CH,A MOV 7DH,AMOV 7EH,AMOV 7FH,AACALL DISP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

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