ZKX's LAB

键盘扫描汇编 原理 求用汇编语言编写的 键盘扫描参考程序?(单片机)

2021-04-28知识12

用汇编语言编写独立式键盘的扫描程序 这个简单,我来好了:ORG 0000HAJMP MAINORG 0010HMAIN:MOV P0,#0FFH;给按键接口赋高电平MOV A,P0;假设P1.0是开,P1.1是关开关SUBB A,#FEACALL DELAY;去抖JZ RUNSUBB A,#FDACALL DELAY;去抖10MSJZ STOPSJMP MAINRUN:MOV P2,#0FEH;假设P2.0是控制口,低电平开SJMP MAINSTOP:MOV P2,#0FEH;假设P2.0是控制口,高电平关SJMP MAINDELAY:MOV R7,#08HDELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND

求用汇编语言编写的 键盘扫描参考程序?(单片机) MAIN:ACALL KSJZ MAINSCAN:ACALL DELAYMOV R7,#0MOV R4,#0MOV R2,#0FEH LOOP:MOV P1,R2MOV A,P1JB ACC.4,ONEMOV R6,#0LJMP GETZHONE:JB ACC.5,TWOMOV R6,#1LJMP GETZHTWO:JB ACC.6,THREEMOV R6,#2LJMP GETZHTHREE:JB ACC.7,NEXTMOV R6,#3LJMP GETZHNEXT:INC R4MOV A,R4RL ARL AMOV R7,AMOV A,R2RL AMOV R2,ALJMP LOOPGETZH:MOV A,R7ADD A,R6PUSH ACCDD:ACALL KSJNZ DDACALL DELAYPOP ACCACALL CHULILJMP MAINCHULI:CJNE A,#0,CL1MOV P0,#0FEHLJMP D3CL1:CJNE A,#1,CL2MOV P0,#0FDHLJMP D3CL2:CJNE A,#2,CL3MOV P0,#0FBHLJMP D3CL3:CJNE A,#3,CL4MOV P0,#0F7HLJMP D3CL4:CJNE A,#4,CL5MOV P0,#0EFHLJMP D3CL5:CJNE A,#5,CL6MOV P0,#0DFHLJMP D3CL6:CJNE A,#6,CL7MOV P0,#0BFHLJMP D3CL7:CJNE A,#7,D3MOV P0,#7FHLJMP D3KS:MOV P1,#0F0HMOV A,P1;若无键按下,A里为F0,有键按,高4位中有一个为0ORL A,#0FH;若无键按下,A为FFCPL A;若无键按下,A为00,有键按下,不为0RETDELAY:MOV R5,#2;延时10msD1:MOV R6,#20D2:MOV R7,#123NOPDJNZ R7,$DJNZ R6,D2DJNZ R5,D1D3:RETEND

单片机行列式键盘扫描原理? 单片机行列式键盘扫描原理如下: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、单片机实践准备一台电脑、一块。

#键盘扫描原理汇编#键盘扫描汇编 原理

随机阅读

qrcode
访问手机版