单片机与键盘显示器的接口.ppt
《单片机与键盘显示器的接口.ppt》由会员分享,可在线阅读,更多相关《单片机与键盘显示器的接口.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7 7章章 MCS-51MCS-51单片机与键单片机与键盘、显示器的接口盘、显示器的接口主要内容7.4MCS-51单片机与键盘接口单片机与键盘接口7.5MCS-51单片机与单片机与LED显示器接口显示器接口7.6MCS-51单片机与行程开关、晶闸管、继电单片机与行程开关、晶闸管、继电器的接口器的接口7.4 MCS-51单片机与键盘接口单片机与键盘接口键盘是人机接口的重要部件键盘是人机接口的重要部件键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。7.4.1键盘的工作原理键盘的工作原理7.4 MCS-51单片机与键盘接口单片机与键盘接口P1.1V
2、CCGND断开闭合断开P1.1(a)(b)键盘实际上是一组按键开关的集合,平时按键开关总是处于断开键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。状态,当按下键时它才闭合。键盘的处理主要涉及三个方面:键盘的处理主要涉及三个方面:1按键的识别:根据输出信号的高低电平来确定按键的识别:根据输出信号的高低电平来确定2抖动的消除抖动的消除消除按键盘抖动通常有两种方法:消除按键盘抖动通常有两种方法:硬件消抖硬件消抖和和软件消抖软件消抖。断开断开闭合闭合+5V+5V输出输出软件消抖是利用延时来跳过抖动过程软件消抖是利用延时来跳过抖动过程 7.4 MCS-51单片机与键盘接
3、口单片机与键盘接口3键位的编码键位的编码通常有两种方法编码。通常有两种方法编码。(1)用连接键盘的)用连接键盘的I/O线的二进制组合进行编码。如(线的二进制组合进行编码。如(a)图)图(2)顺序排列编码。如()顺序排列编码。如(b)图,处理方法:编码值)图,处理方法:编码值=行首编码值行首编码值X+列号列号Y。7.4 MCS-51单片机与键盘接口单片机与键盘接口P1.088848281484442412824222118141211FEDCBA9876543210(a)(b)P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
4、7.4 MCS-51单片机与键盘接口单片机与键盘接口7.4.2 独立式键盘与单片机的接口独立式键盘与单片机的接口键盘的安装方式有两种:键盘的安装方式有两种:独立式键盘:当按键个数为独立式键盘:当按键个数为14个个 矩阵式键盘:当按键个数矩阵式键盘:当按键个数4 独立式键盘就是各按键相互独立,每个按键各接一根独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根口线,每根I/O口线上的按键都不会影响其它的口线上的按键都不会影响其它的I/O口线。口线。图(图(a)为中断方式工作的)为中断方式工作的独立式键盘的结构形式,(独立式键盘的结构形式,(b)为查询方式工作的独立式键盘的结构形式)为查
5、询方式工作的独立式键盘的结构形式GNDVCCGNDVCC与与(b)8051(a)INT08051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.77.4 MCS-51单片机与键盘接口单片机与键盘接口 针对查询方式的汇编语言形式的键盘程序。总共有针对查询方式的汇编语言形式的键盘程序。总共有8个键位,个键位,KEY0KEY7为为8个键的功能程序。个键的功能程序。START:MOV A,#0FFH;MOV P1,A ;置;置P1口为输入状态口为输入状态MOV A,P1 ;键状态输入;键状态输入CPL AJZ START ;
6、没有键按下,则转开始;没有键按下,则转开始,Key0 ;检测;检测0号键是否按下,按下转号键是否按下,按下转,Key1 ;检测;检测1号键是否按下,按下转号键是否按下,按下转,Key2 ;检测;检测2号键是否按下,按下转号键是否按下,按下转,Key3 ;检测;检测3号键是否按下,按下转号键是否按下,按下转,Key4 ;检测;检测4号键是否按下,按下转号键是否按下,按下转,Key5 ;检测;检测5号键是否按下,按下转号键是否按下,按下转,Key6 ;检测;检测6号键是否按下,按下转号键是否按下,按下转,Key7 ;检测;检测7号键是否按下,按下转号键是否按下,按下转JMP START ;无键按下
7、返回,再顺次检测;无键按下返回,再顺次检测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口连接口连接4 8的矩阵键盘。的矩阵键盘。PA7PA6PA5PA4P
8、A3PA2PA1PA0PC0PC1PC2PC30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 316 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CS74LS373WR RDA1A0P2.7WRRDALEP0.0P0.7D0D7RESET1K20F+5V+5V82555.1K480517.4 MCS-51单片机与键盘接口单片机与键盘接口7.4.3 矩阵式键盘与单片机的接口矩阵式键盘与单片机的接口1矩阵键盘的工作过程矩阵键盘的工作过程 对矩阵键盘的工作过程可分两步:对矩阵键盘的工作过程可分两步:第一步第一步是是CPU首先检
9、测键盘上是否有键按下;首先检测键盘上是否有键按下;第二步第二步是再识别是哪一个键按下。是再识别是哪一个键按下。检是否有键按下:检是否有键按下:将列线送入全扫描字,读入行线的状态来判别将列线送入全扫描字,读入行线的状态来判别 其具体过程如下:其具体过程如下:PA口输出口输出00H,即所有列线置成低电平,然后将行线电平状态读,即所有列线置成低电平,然后将行线电平状态读入累加器入累加器A中。中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为入状态不全为1。7.4 MCS-51单片机与键盘接口单片机与键盘接口 识别哪一个键按
10、下识别哪一个键按下:将列线逐列置低电平,检查行输入状态,称:将列线逐列置低电平,检查行输入状态,称为逐列扫描。为逐列扫描。从从PA0开始,依次输出开始,依次输出“0”,置对应的列线为低电平,然后从,置对应的列线为低电平,然后从PC口读入行线状态,如果全为口读入行线状态,如果全为“1”,则按下的键不在此列;如果不全,则按下的键不在此列;如果不全为为“1”,则按下的键必在此列,而且是该列与,则按下的键必在此列,而且是该列与“0”电平行线相交的电平行线相交的交点上的那个键。交点上的那个键。为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列
11、号,检测到第几行有键按下,就用该行的首键码加列号得到当前按键号,检测到第几行有键按下,就用该行的首键码加列号得到当前按键的编码。的编码。7.4 MCS-51单片机与键盘接口单片机与键盘接口7.4 MCS-51单片机与键盘接口单片机与键盘接口2.矩阵式键盘的工作方式矩阵式键盘的工作方式 查询工作方式查询工作方式 定时扫描工作方式定时扫描工作方式 中断工作方式中断工作方式查询工作方式:查询工作方式:在主程序中插入在主程序中插入键盘检测子程序键盘检测子程序主程序每执行一次则键盘检测子程序被执行一次,对键盘主程序每执行一次则键盘检测子程序被执行一次,对键盘进行检测一次,进行检测一次,如果把没有键按下,
12、则跳过键识别,直接执行主程序;如果把没有键按下,则跳过键识别,直接执行主程序;如果有键按下,则通过键盘扫描子程序识别按键,得到按如果有键按下,则通过键盘扫描子程序识别按键,得到按键的编码值,然后根据编码值进行相应的处理,处理完后键的编码值,然后根据编码值进行相应的处理,处理完后再回到主程序执行。再回到主程序执行。开始开始有键按下否?有键按下否?调用调用6ms延时子程序?延时子程序?调用调用12ms延时子程序?延时子程序?有键按下否?有键按下否?判闭合键,编码入栈保护判闭合键,编码入栈保护闭合键释放否?闭合键释放否?编码编码A返回返回否否否否否否是是是是是是7.4 MCS-51单片机与键盘接口单
13、片机与键盘接口键盘扫描子程序流程图键盘扫描子程序流程图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 ;
14、调;调12 ms延时子程序延时子程序 ACALL KS1 ;查有无键按下,若有则真有键按下;查有无键按下,若有则真有键按下 JNZ LK2 ;键;键(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指向指向815
15、5PC口口 INC DPTR 7.4 MCS-51单片机与键盘接口单片机与键盘接口7.4 MCS-51单片机与键盘接口单片机与键盘接口MOVX A,DPTR ;从;从8155 PC口读入行状态口读入行状态,LONE ;查第;查第0行无键按下,转查第行无键按下,转查第1行行MOV A,#00H ;第;第0行有键按下,行首键码行有键按下,行首键码#00HAAJMP LKP ;转求键码;转求键码LONE:,:,LTWO ;查第;查第1行无键按下,转查第行无键按下,转查第2行行 MOV A,#08H ;第;第1行有键按下,行首键码行有键按下,行首键码#08HA AJMP LKP ;转求键码;转求键码L
16、TWO:,:,LTHR ;查第;查第2行无键按下,转查第行无键按下,转查第3行行 MOV A,#10H ;第;第2行有键按下,行首键码行有键按下,行首键码#10HA AJMP LKP ;转求键码;转求键码 LTHR:,:,NEXT ;查第;查第3行无键按下,转该查下一列行无键按下,转该查下一列 MOV A,#18H ;第;第3行有键按下,行首键码行有键按下,行首键码#18HA LKP:ADD A,R4 ;求键码,键码;求键码,键码=行首键码行首键码+列号列号 PUSH ACC ;键码进栈保护;键码进栈保护 LK3:ACALL KS1 ;等待键释放;等待键释放 JNZ LK3 ;键未释放,等待;
17、键未释放,等待POP ACC ;键释放,键码;键释放,键码A RET ;键扫描结束,出口状态;键扫描结束,出口状态(A)=键码键码7.4 MCS-51单片机与键盘接口单片机与键盘接口NEXT:INC R4 ;准备扫描下一列,列号加;准备扫描下一列,列号加1 MOV A,R2 ;取列扫描字送累加器;取列扫描字送累加器A,KEND ;判断;判断8列扫描否?扫描完返回列扫描否?扫描完返回 RL A ;扫描字左移一位,变为下一列扫描字;扫描字左移一位,变为下一列扫描字 MOV R2,A ;扫描字送入;扫描字送入R2保存保存 AJMP LK4 ;转下一列扫描;转下一列扫描KEND:AJMP KEY1 K
18、S1:MOV DPTR,#7F00H ;DPTR指向指向8155PA口口 MOV A,#00H ;全扫描字;全扫描字A MOVX DPTR,A ;全扫描字送往;全扫描字送往8155PA口口 INC DPTR ;DPTR指向指向8155PC口口 INC DPTR MOVX A,DPTR;读入;读入PC口行状态口行状态 CPL A ;变正逻辑,以高电平表示有键按下;变正逻辑,以高电平表示有键按下 ANL A,#0FH ;屏蔽高;屏蔽高4位,只保留低位,只保留低4位行线值位行线值 RET ;出口状态:;出口状态:(A)0时有键按下时有键按下7.4 MCS-51单片机与键盘接口单片机与键盘接口TM12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 键盘 显示器 接口
限制150内