MCS-51与键盘、显示器的接口.ppt
《MCS-51与键盘、显示器的接口.ppt》由会员分享,可在线阅读,更多相关《MCS-51与键盘、显示器的接口.ppt(30页珍藏版)》请在三一办公上搜索。
1、第七章 MCS-51与键盘、显示器的接口,7.1 MCS-51单片机与键盘接口,7.1.1 键盘的工作原理,键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。,键盘的处理主要涉及三个方面:,1按键的识别,2抖动的消除,消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。,硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用RS触发器或单稳态电路。如图。,软件消抖是利用延时来跳过抖动过程,3键位的编码,通常有两种方法编码。,(1)用连接键盘的I/O线的二进制组合进行编码。如(a)图,(2)顺序排列编码。如(b)图,处理方法
2、如下:编码值=行首编码值X+列号Y。,7.1.2 独立式键盘与单片机的接口,键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。,独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。,图(a)为中断方式工作的独立式键盘的结构形式,(b)为查询方式工作的独立式键盘的结构形式,下面是针对图7.4(b)图查询方式的汇编语言形式的键盘程序。总共有8个键位,KEY0KEY7为8个键的功能程序。START:MOV A,#0FFH;MOV P1,A;置P1口为输入状态MOV A,P1;键状态输入CPL AJZ START;没有键按下,则转开始JB ACC
3、.0,K0;检测0号键是否按下,按下转JB ACC.1,K1;检测1号键是否按下,按下转JB ACC.2,K2;检测2号键是否按下,按下转JB ACC.3,K3;检测3号键是否按下,按下转JB ACC.4,K4;检测4号键是否按下,按下转JB ACC.5,K5;检测5号键是否按下,按下转JB ACC.6,K6;检测6号键是否按下,按下转JB ACC.7,K7;检测7号键是否按下,按下转JMP START;无键按下返回,再顺次检测,K0:AJMP KEY0K1:AJMP KEY1K7:AJIMP KEY7KEY0:;0号键功能程序JMP START;0号键功能程序执行完返回KEY1:;0号键功能
4、程序JMP START;1号键功能程序执行完返回KEY7:;7号键功能程序JMP START;7号键功能程序执行完返回,7.1.3 矩阵键盘与单片机的接口,矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上。例如44的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。,矩阵键盘的连接方法有多种,可直接连接于单片机的I/O口线;可利用扩展的并行I/O口连接;也可利用可编程的键盘、显示接口芯片(如8279)进行连接等等。其中,利用扩展的并行I/O口连接方便灵活,在单片机应用系统中比较常用。下图就是通过8255A芯片扩展的并行I/O
5、口连接48的矩阵键盘。,一矩阵键盘的工作过程,对矩阵键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。1检测键盘上是否有键按下处理方法是:将列线送入全扫描字,读入行线的状态来判别。其具体过程如下:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。2识别键盘中哪一个键按下处理方法是:将列线逐列置低电平,检查行输入状态,称为逐列扫描。其具体过程如下:从PA0开始,依次输出“0”,置对应的列线为低电平,然后从PC口读入行线状态,如果全为“1”,则按下的键不在此
6、列;如果不全为“1”,则按下的键必在此列,而且是该列与“0”电平行线相交的交点上的那个键。为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列号,检测到第几行有键按下,就用该行的首键码加列号得到当前按键的编码。,二矩阵键盘的工作方式,1查询工作方式,这种方式是直接在主程序中插入键盘检测子程序,主程序每执行一次则键盘检测子程序被执行一次,对键盘进行检测一次,如果把没有键按下,则跳过键识别,直接执行主程序;如果有键按下,则通过键盘扫描子程序识别按键,得到按键的编码值,然后根据编码值进行相应的处理,处理完后再回到主程序执行。键盘扫描子程序流程如图。,键盘扫描子程序如下:(硬件线路如图7.4,82
7、55A的A口、B口、C口和控制口地址分别为7F00H、7F01H、7F02H、7F03H,设8255A已在主程序中初始化。已设定为A口方式0输出,C口的低4位方式0输入。),KEY1:ACALL KS1;调用判断有无键按下子程序JNZ LK1;有键按下时,(A)0转消抖延时KEY2:ACALL TM6msAJMP KEY1;无键按下返回LK1:ACALL TM12ms;调12 ms延时子程序ACALL KS1;查有无键按下,若有则真有键按下JNZ LK2;键(A)0逐列扫描AJMP KEY2;不是真有键按下,返回LK2:MOV R2,#0FEH;初始列扫描字(0列)送入R2MOV R4,#00
8、H;初始列(0列)号送入R4LK4:MOV DPTR,#7F00H;DPTR指向8155PA口MOV A,R2;列扫描字送至8155PA口MOVX DPTR,AINC DPTR;DPTR指向8155PC口INC DPTR,MOVX A,DPTR;从8155 PC口读入行状态JB ACC.0,LONE;查第0行无键按下,转查第1行MOV A,#00H;第0行有键按下,行首键码#00HAAJMP LKP;转求键码LONE:JB ACC.1,LTWO;查第1行无键按下,转查第2行MOV A,#08H;第1行有键按下,行首键码#08HAAJMP LKP;转求键码LTWO:JB ACC.2,LTHR;查
9、第2行无键按下,转查第3行MOV A,#10H;第2行有键按下,行首键码#10HAAJMP LKP;转求键码LTHR:JB ACC.3,NEXT;查第3行无键按下,转该查下一列MOV A,#18H;第3行有键按下,行首键码#18HALKP:ADD A,R4;求键码,键码=行首键码+列号PUSH ACC;键码进栈保护LK3:ACALL KS1;等待键释放JNZ LK3;键未释放,等待POP ACC;键释放,键码ARET;键扫描结束,出口状态(A)=键码,NEXT:INC R4;准备扫描下一列,列号加1MOV A,R2;取列扫描字送累加器AJNB ACC.7,KEND;判断8列扫描否?扫描完返回R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 键盘 显示器 接口

链接地址:https://www.31ppt.com/p-6512314.html