单片机与键盘显示器的接口.ppt
《单片机与键盘显示器的接口.ppt》由会员分享,可在线阅读,更多相关《单片机与键盘显示器的接口.ppt(41页珍藏版)》请在三一办公上搜索。
1、第7章 MCS-51单片机与键盘、显示器的接口,主要内容,7.4 MCS-51单片机与键盘接口7.5 MCS-51单片机与LED显示器接口7.6 MCS-51单片机与行程开关、晶闸管、继电器的接口,7.4 MCS-51单片机与键盘接口,键盘是人机接口的重要部件,键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。,7.4.1 键盘的工作原理,7.4 MCS-51单片机与键盘接口,键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。,键盘的处理主要涉及三个方面:,1按键的识别:根据输出信号的高低电平来确定,2抖动的消除,消
2、除按键盘抖动通常有两种方法:硬件消抖和软件消抖。,软件消抖是利用延时来跳过抖动过程,7.4 MCS-51单片机与键盘接口,3键位的编码,通常有两种方法编码。,(1)用连接键盘的I/O线的二进制组合进行编码。如(a)图,(2)顺序排列编码。如(b)图,处理方法:编码值=行首编码值X+列号Y。,7.4 MCS-51单片机与键盘接口,7.4 MCS-51单片机与键盘接口,7.4.2 独立式键盘与单片机的接口键盘的安装方式有两种:独立式键盘:当按键个数为14个 矩阵式键盘:当按键个数4,独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。图(a)
3、为中断方式工作的独立式键盘的结构形式,(b)为查询方式工作的独立式键盘的结构形式,7.4 MCS-51单片机与键盘接口,针对查询方式的汇编语言形式的键盘程序。总共有8个键位,KEY0KEY7为8个键的功能程序。START:MOV A,#0FFH;MOV P1,A;置P1口为输入状态MOV A,P1;键状态输入CPL AJZ START;没有键按下,则转开始JB ACC.0,Key0;检测0号键是否按下,按下转JB ACC.1,Key1;检测1号键是否按下,按下转JB ACC.2,Key2;检测2号键是否按下,按下转JB ACC.3,Key3;检测3号键是否按下,按下转JB ACC.4,Key4
4、;检测4号键是否按下,按下转JB ACC.5,Key5;检测5号键是否按下,按下转JB ACC.6,Key6;检测6号键是否按下,按下转JB ACC.7,Key7;检测7号键是否按下,按下转JMP START;无键按下返回,再顺次检测,7.4 MCS-51单片机与键盘接口,KEY0:;0号键功能程序JMP START;0号键功能程序执行完返回KEY1:;0号键功能程序JMP START;1号键功能程序执行完返回KEY7:;7号键功能程序JMP START;7号键功能程序执行完返回,7.4 MCS-51单片机与键盘接口,下图就是通过8255A芯片扩展的并行I/O口连接48的矩阵键盘。,7.4 M
5、CS-51单片机与键盘接口,7.4.3 矩阵式键盘与单片机的接口,1矩阵键盘的工作过程,对矩阵键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。检是否有键按下:将列线送入全扫描字,读入行线的状态来判别 其具体过程如下:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。,7.4 MCS-51单片机与键盘接口,识别哪一个键按下:将列线逐列置低电平,检查行输入状态,称为逐列扫描。从PA0开始,依次输出“0”,置对应的列线为低电平,然后从PC口读入行线状态,如果
6、全为“1”,则按下的键不在此列;如果不全为“1”,则按下的键必在此列,而且是该列与“0”电平行线相交的交点上的那个键。为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列号,检测到第几行有键按下,就用该行的首键码加列号得到当前按键的编码。,7.4 MCS-51单片机与键盘接口,7.4 MCS-51单片机与键盘接口,2.矩阵式键盘的工作方式 查询工作方式 定时扫描工作方式 中断工作方式查询工作方式:在主程序中插入键盘检测子程序主程序每执行一次则键盘检测子程序被执行一次,对键盘进行检测一次,如果把没有键按下,则跳过键识别,直接执行主程序;如果有键按下,则通过键盘扫描子程序识别按键,得到按键的编
7、码值,然后根据编码值进行相应的处理,处理完后再回到主程序执行。,7.4 MCS-51单片机与键盘接口,键盘扫描子程序流程图,8255A的A口、B口、C口和控制口地址分别为7F00H、7F01H、7F02H、7F03H,设8255A已在主程序中初始化。已设定为A口方式0输出,C口的低4位方式0输入。),KEY1:ACALL KS1;调用判断有无键按下子程序 JNZ LK1;有键按下时,(A)0转消抖延时KEY2:ACALL TM6ms AJMP KEY1;无键按下返回 LK1:ACALL TM12ms;调12 ms延时子程序 ACALL KS1;查有无键按下,若有则真有键按下 JNZ LK2;键
8、(A)0逐列扫描 AJMP KEY2;不是真有键按下,返回 LK2:MOV R2,#0FEH;初始列扫描字(0列)送入R2 MOV R4,#00H;初始列(0列)号送入R4 LK4:MOV DPTR,#7F00H;DPTR指向8155PA口 MOV A,R2;列扫描字送至8155PA口 MOVX DPTR,A INC DPTR;DPTR指向8155PC口 INC DPTR,7.4 MCS-51单片机与键盘接口,7.4 MCS-51单片机与键盘接口,MOVX A,DPTR;从8155 PC口读入行状态JB ACC.0,LONE;查第0行无键按下,转查第1行MOV A,#00H;第0行有键按下,行
9、首键码#00HAAJMP LKP;转求键码LONE:JB ACC.1,LTWO;查第1行无键按下,转查第2行 MOV A,#08H;第1行有键按下,行首键码#08HA AJMP LKP;转求键码LTWO:JB ACC.2,LTHR;查第2行无键按下,转查第3行 MOV A,#10H;第2行有键按下,行首键码#10HA AJMP LKP;转求键码 LTHR:JB ACC.3,NEXT;查第3行无键按下,转该查下一列 MOV A,#18H;第3行有键按下,行首键码#18HA LKP:ADD A,R4;求键码,键码=行首键码+列号 PUSH ACC;键码进栈保护 LK3:ACALL KS1;等待键释
10、放 JNZ LK3;键未释放,等待POP ACC;键释放,键码A RET;键扫描结束,出口状态(A)=键码,7.4 MCS-51单片机与键盘接口,NEXT:INC R4;准备扫描下一列,列号加1 MOV A,R2;取列扫描字送累加器A JNB ACC.7,KEND;判断8列扫描否?扫描完返回 RL A;扫描字左移一位,变为下一列扫描字 MOV R2,A;扫描字送入R2保存 AJMP LK4;转下一列扫描KEND:AJMP KEY1 KS1:MOV DPTR,#7F00H;DPTR指向8155PA口 MOV A,#00H;全扫描字A MOVX DPTR,A;全扫描字送往8155PA口 INC D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 键盘 显示器 接口
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6397501.html