单片机原理与应用技术(四)

您所在的位置:网站首页 汇编应用领域 单片机原理与应用技术(四)

单片机原理与应用技术(四)

2024-07-17 06:19| 来源: 网络整理| 查看: 265

一、实验原理

        矩阵键盘是使用8个IO口控制的16按键的控制读取的器件。具体原理如下图所示,当4号键被按下的时候,与此键连接的行线电平将由与此键连接的列线甲平决定,而行线电平在没有按下时为高电平。如果让所有的列线都处于高电平,那么天论是否按下键都不会影响行线的电平状态。所以,让所有的列线处于高电平是无法检测到按键的。反过来,如果让所有的列线都处于低电平,很明显按键后,所有的行线都变成低电平,能够判断出一定有键按下,但是不能确定到底是哪个键按下。所以,让所有的列线处于低电平是不合理的。为了进一步判断到底是哪列的键被按下,可以在某一时刻让一条列线处于低电平,其余的列线处于高电平。当第一列为低电平,其余列为高电平时,因为是4键按下,所以第一行仍为高电平;当第二列为低电平,其余列为高电平时,因为是4键按下,所以第一行仍为高电平。直到当第四列为低电平,其余列为高电平时,因为是4键按下,所以第一行将变为低电平,据此,确信第一行第四列交叉处的按键被按下。        根据以上分析,很容易得到键盘识别的方法,此方法分两步进行:第一步,识别有无键按下;第二步,如果有键按下,识别具体的键值。        识别键盘有无键按下的方法是:让所有列线都置零,检查行线有无变化,如果有变化贝说明有键按下,否则没有,这个过程中要注意软件去抖。        识别具体按键的方法是:逐列置低电平,其余列为高电平,检查各行线的电平变化,如果某行为低电平,可确定相应的此行此列交点的键被按下。

 二、实验电路图

三、源代码

ORG 0000H SETB P2.7 MOV A,#0DFH MOV P0,A CLR P2.7 MOV A,#000H MOV P0,A CHECK: MOV P3,#00FH MOV A,P3 CLR C SUBB A,#00FH JZ CHECK LCALL DL MOV P3,#00FH MOV A,P3 CJNE A,#00FH,TTK SJMP CHECK TTK: MOV P3,#0F0H MOV B,P3 ORL A,B MOV R0,A MOV R1,#000H MOV DPTR,#KEYTAB SEARCH: MOV A,#0 MOVC A,@A+DPTR CLR C SUBB A,R0 INC DPTR INC R1 JNZ SEARCH DEC R1 MOV A,R1 MOV DPTR,#LEDTAB MOVC A,@A+DPTR SETB P2.6 MOV P0,A CLR P2.6 AJMP DRIVER DL: MOV R6,#50 DL1: MOV R5,#250 DL2: DJNZ R5,DL2 DJNZ R6,DL1 RET ORG 1000H KEYTAB: DB 0EEH,0DEH,0BEH,07EH,0EDH,0DDH,0BDH,07DH,0EBH,0DBH,0BBH,07BH,0E7H,0D7H,0B7H,077H LEDTAB: DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H END



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3