ZKX's LAB

用行列反转法进行单片机矩阵键盘扫描,解释一下下面的程序 矩阵键盘扫描原理汇编

2021-04-05知识1

单片机行列式键盘扫描原理? 单片机行列式键盘扫描原理如下:1、行线P10~P13为输出线,列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。2、延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。当判断确实有键按下之后,行线轮流输出低电平,根据读入列线的数据可以确定键值。3、单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平。4、此时再来读取列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。转到S5键功能处理子程序就可以达到目的。扩展资料单片机学习方法1、基础理论知识学习基础理论知识包括模拟电路、数字电路和C语言知识。在学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。2、单片机实践准备一台电脑、一块。

矩阵键盘程序解析,扫描和判断程序如下。求注释!!真心看不懂啊!4*4矩阵 大体上看了一下你的程序,就是一个很简单的键盘扫描~你应该看看矩阵键盘的原理,再看这个的时候就很简单了~我给你手写也有点累~处于责任心,给你写点吧。这个程序实现的是4*4的矩阵键盘,用高4位来进行扫描是否有键按下(高位的4个口轮流置零扫描),如果有键按下(置零的哪个口连接的线就会和低四位其中的一根线接触)低四位中就会有一个口为低电平.剩下的就是通过高低4位来判断具体按键是哪个~我不写了~自己了解一下原理吧,很简单~加油。PANDUAN:MOV P3,#0FFH/程序开始 p3口全部拉高CLR P3.4/P3.4置零 P3=0XEFMOV A,P3/将P3端口的值赋给A-0XEFANL A,#0FH/将上一步得到的值 和0X0F逻辑与-也就是取P3口低四位0X0F-结果存到AXRL A,#0FH/A里面的值 与0X0F异或-结果为0JZ SW1/如果为零 则跳转到SW1,否则往下执行-含义就是如果为零则代表无键按下 否则有LCALL DELAY10MS/延时10MS-有按键按下,软件消抖JZ SW1/继续判断-确定有键按下 但是不确定是哪个键按下-接下来判断哪个键按下MOV A,P3/以解释ANL A,#0FH/以解释CJNE A,#0EH,K1/A不等于0x0E 则跳转到k1,否则往下执行MOV COUNT,#0/count置零LJMP DK/跳转到DKK1:CJNE A,#0DH,K2MOV COUNT,#4LJMP DKK2:CJNE A,#0BH,K3MOV 。

4*4矩阵键盘汇编语言程序,按键分别显示,1,2,3,4,5,6,7,8,9,A,b,c,d,E ORG 00HSTRAT:MOV R4,#00HL1:MOV R3,#0F7HMOV R1,#00HL2:MOV A,R3MOV P3,AMOV A,P3MOV R4,ASETB CMOV R5,#04HL3:RLC AJNC KEYINC R1DJNZ R5,L3MOV A,R3SETB CRRC AMOV R3,AJC L2JMP L1KEY:ACALL DELAYD1:MOV A,P3XRL A,R4JZ D1MOV A,R1ACALL DISPJMP L1DISP:MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ARETDELAY:MOV R7,#60MOV R6,#248DLY1:DJNZ R6,$DJNZ R7,DLY1RETTABLE:DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EHEND89c51的,很经典,不懂的可以问我。

#矩阵键盘扫描原理汇编#矩阵键盘扫描原理#矩阵键盘扫描有几种方法

qrcode
访问手机版