《片机键盘接口》课件.ppt

上传人:牧羊曲112 文档编号:5052195 上传时间:2023-05-31 格式:PPT 页数:18 大小:333.99KB
返回 下载 相关 举报
《片机键盘接口》课件.ppt_第1页
第1页 / 共18页
《片机键盘接口》课件.ppt_第2页
第2页 / 共18页
《片机键盘接口》课件.ppt_第3页
第3页 / 共18页
《片机键盘接口》课件.ppt_第4页
第4页 / 共18页
《片机键盘接口》课件.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《《片机键盘接口》课件.ppt》由会员分享,可在线阅读,更多相关《《片机键盘接口》课件.ppt(18页珍藏版)》请在三一办公上搜索。

1、键盘接口,键盘是计算机不可缺少的输入设备,是实现人机对话的纽带。按其结构形式键盘可分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者用硬件方法产生键码。,.键盘接口,8.2.1 键盘工作原理1.键的特性 键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间电压会产生波动,即抖动。它的结构和产生的波形如图所示。,为了保证CPU对键的一次闭合仅进行一次键功能操作消除按键盘抖动,通常有两种方法:硬件消抖和软件消抖。,硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一

2、般采用R-S触发器或单稳态电路。,2.去抖动影响的措施,软件消抖是利用延时来跳过抖动过程。在检测到有键按下时,执行一个10ms左右的延时程序后,再确认该键电平是否保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除了抖动影响。,图8-6 键盘结构,44 键盘,3.行列式键盘工作原理,如果把行线接到单片机的输入口,列线接到单片机的输出口。在单片机的控制下,先使列线Y0输出“0”,其余列线都为“1”,读行线状态。如果行线都为“1”,则Y0列上没有键闭合。如果读出的行线不全为“1”,则为“0”的行线和Y0相交的键处于闭合状态,如果Y0这一列上没有键闭合,接着是列线Y1为“0”,其

3、余为“1”,用同样方法检查Y1列上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一次。,图中键盘的行线X0X3通过电阻接+5V。当键盘上没有键闭合时,所有的行线和列线都断开,行线都呈高电平。当键盘上某一个键闭合时,该键所对应的行线和列线被短路。,8.2.2 键盘的工作方式,键盘的工作方式一般有两种:一、编程扫描方式(查询方式)二、中断扫描方式一、编程扫描方式 CPU对键盘扫描(1)可以采用程序控制的随机方式调用键盘扫描子程序响应键输入要求;(2)也可以采用定时控制方式,每隔一定时间,调用键盘扫描子程序,来响应键输入要求。可利用8051内部定时器,定时10ms中断,调用键盘扫描子程序

4、,从而转到键功能处理程序。,键盘扫描子程序一般应具备如下几个功能:,1)判断键盘上有无键按下。2)用软件去除键的抖动影响。3)扫描键盘,得到按下键的键号。4)判断闭合的键是否抬起,键闭合一次仅进行一次键功能操作。5)输出确定的键号。,2)中断扫描方式,编程扫描方式,CPU经常处于空扫状态,为提高 CPU的效率,可采用中断方式。,44 键盘,行,列,初始化时使键盘行输出口全为0。当有键按下时,向CPU发出中断请求,CPU中断开放,响应中断请求,进入中断服务程序后,,进入中断服务程序后,要完成以下功能:,键识别:执行键盘识别程序,使行扫线全部输出低电平,读入列线的状态,如有键按下,必有列线为低电平

5、,转去抖动;去除抖动:延时10ms左右后,再次识别有无键按下;确定键并计算键值:执行扫描键盘程序,使行扫线逐次输出低电平,读入列线的状态,如所扫行有键按下,必有列线为低电平,从而根据行号和列号可以计算出键值。键值行首值列号值键处理程序中断返回,键盘、显示器接口),48 键盘,8155的端口地址分配如下:,7F00H 命令状态口7F01H A口(显示器位选口;键盘列扫描输出口)7F02H B口(显示器段选口)7F03H C口(键盘行输入口)LED采用动态显示、软件译码;键盘采用编程扫描工作方式。LED采用共阴极数码管;键盘编码为十六进制数。LED驱动采用集电极开路同相输出8位驱动器8718芯片,

6、键扫描子程序的设计要考虑以下个方面:,1、判别键盘上有无键闭合 方法是使PA口输出全“0”,读PC口的状态,若PC口全为“1”则键盘上没有键闭合,若PC口不全为“1”,则有键闭合。2、去除键的机械抖动 方法是判断到键盘上有键闭合后,延迟一段时 再判别键盘的状态,若仍有键闭合,则认为有 一个键处于稳定的闭合期,否则认为是键的抖动。3、判别闭合键的键号 方法执行扫描键盘程序,PA口依次输出扫描码,并用计数器记录下当前扫描列的列号,并相应地读取PC口的状态。行首键号列号8+1 4、使CPU对键的一次闭合仅做一次处理 等待闭合键释放以后再做处理。,PA口列扫描输出码 图8-10 键扫描程序框图,键盘、

7、显示器接口程序清单:,ORG 3000HSTART:MOV SP,#60HMOV DPTR,#2F00H MOV A,#03HMOVX DPTR,AMOV 70H,#00H;70H存放键号KEYI:ACALL KS1;调用判有无键闭合子程序 JNZ LK1NI:ACALL DIR;调用显示子程序,延时6ms AJMP KEYILK1:ACALL DIR;延时12ms ACALL DIR ACALL KS1 JNZ LK2 ACALL DIR AJMP KEYILK2:MOV R2,#0FEH;列扫描码送R2 MOV R4,#00H;R4是列计数单元LK4:MOV DPTR,#7F01H;列扫描

8、码送PA口 MOV A,R2 MOVX DPTR,A,INC DPTR INC DPTR MOVX A,DPTR;读C口 JB ACC.0,LONE;0行为高电平,转判1行 MOV A,#00H;0行首键号送A AJMP LKPLONE:JB ACC.1,LTWO;转判2行 MOV A,#08H;1行首键号送A AJMP LKPLTWO:JB ACC.2,LTHR;转判3行 MOV A,#10H;2行首键号送A AJMP LKPLTHR:JB ACC.3,NEXT;转判下一列 MOV A,#18H;3行首键号送ALKP:ADD A,R4;行首键号+列号=键号 MOV 70H,A PUSH AC

9、CLK3:ACALL DIR ACALL KS1;判键释放否 JNZ LK3 POP ACC AJMP KEY1,判断键号,NEXT:INC R4;列扫描计数器加1 MOV A,R2;判是否已扫到最后一列 JNB ACC.7,KND;扫到则转移 RL A;列扫描码左移一位 MOV R2,A AJMP LK4;无键按下KND:AJMP KEYIKS1:MOV DPTR,#7F01H MOV A,#00H;全“0”送PA口 MOVX DPTR,A INC DPTR INC DPTR MOVX A,DPTR;读入键的状态 CPL A ANL A,#0FH;取出被按下键的状态 RET,判断键是否按下,

10、DIR:MOV R0,#70HMOV A,R0ANL A,#0FHMOV 30H,AMOV A,R0SWAP AANL A,#0FH MOV 31H,AMOV R0,#30 MOV R3,#01D01:MOV A,R3MOV DPTR,#0FF01HMOVX DPTR,AINC DPTRMOV A,R0ADD A,0DHMOVC A,A+PC,将70H中的单字节两位数字拆分成双字节,并送显示缓冲区30H、31H,用两块显示器显示所按下的键值,DIR1:MOVX DPTR,AACALL DL1MOV A,R3RL AJB ACC.2,LD1MOV R3,AINC R0AJMP DO1LD1:RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0C6H DB 0A1H,86H,8EH,0FFHDL1:MOV R7,#2MOV R6.#0FFHDL6:DJNZ R6,DL6DJNZ R7,DLRETEND,单片机人机接口结束,下次见!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号