⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (2).txt

📁 单片机入门,包括9个小实验的汇编程序和protues仿真,可连接观看程序运行效果
💻 TXT
字号:
;********用反转法扫描键盘并显示*******
ORG   0000H
LJMP  KL1
KL1:   MOV    P3,#00FH            ;先令行线为低惦平,列线为高电平
       JB     P3.4,PK1            ;若第一行行线变为高电平说明有键按下,跳到PK1
       JB     P3.5,PK1            ;判断第二行
       JB     P3.6,PK1            ;判断第三行
       JNB    P3.7,KL1            ;判断第四行,无键按下跳到KL1,重新扫描
PK1:   LCALL  DL10                ;延时消抖,重新扫描
       JB     P3.4,PK2
       JB     P3.5,PK3
       JB     P3.6,PK4
       JNB    P3.7,KL1
       MOV    A,#0CH              ;第四行有键按下,把0CH放入累加器
       LJMP   PK5                 ;跳到PK5
PK2:   MOV    A,#00H              ;第一行有键按下,把00H放入累加器
       LJMP   PK5                 ;跳到PK5
PK3:   MOV    A,#04H              ;第二行有键按下,把04H放入累加器
       LJMP   PK5                 ;跳到PK5
PK4:   MOV    A,#08H              ;第三行有键按下,把08H放入累加器
       
PK5:   MOV    P3,#0F0H             ;令行线为高,列线为低,进行列扫描
       JB     P3.0,PKONE          ;判断第一列是否有键按下,若有跳到PKONE
       JB     P3.1,PKTWO          ;判断第二列是否有键按下
       JB     P3.2,PKTHR          ;判断第三列是否有键按下
       JNB    P3.3,KL1            ;判断第四列是否有键按下
       LCALL  KL4                 ;调用子程序,等待键释放
       ADD    A,#03H              ;计算键值
       LCALL  DIR                 ;调用显示程序
       SJMP   KL1                 ;跳到KL1,重新键盘扫描
PKONE: LCALL  KL4                 ;调用子程序,等待键释放
       ADD    A,#00H              ;第一列键按下,计算键值
       LCALL  DIR                 ;调用显示程序
       SJMP   KL1                 ;跳到KL1,重新键盘扫描
PKTWO: LCALL  KL4                 ;调用子程序,等待键释放
       ADD    A,#01H              ;第二列键按下,计算键值
       LCALL  DIR                 ;调用显示程序
       SJMP   KL1                 ;跳到KL1,重新键盘扫描
PKTHR: LCALL  KL4                 ;调用子程序,等待键释放
       ADD    A,#02H              ;第三列键按下,计算键值
       LCALL  DIR                 ;调用显示程序
       SJMP   KL1                 ;跳到KL1,重新键盘扫描
;*******等待键释放子程序**********
KL4:   JB    P3.0,KL4             
       JB    P3.1,KL4
       JB    P3.2,KL4
       JB    P3.3,KL4
       RET
;*********显示子程序*************
DIR:   MOV DPTR,#TAB             ;查表
       MOVC A,@A+DPTR
       MOV P0,A                  ;A送P0口显示
       RET
;***********延时10ms程序*********
DL10:  MOV R7,#0AH
DEL1:  MOV R6,#0FFH
DEL2:  DJNZ R6,DEL2 
       DJNZ R7,DEL1 
       RET
       
TAB:   DB    3FH,06H,5BH,4FH,66H,6DH
       DB    7DH,07H,7FH,6FH,77H,7CH
       DB    39H,5EH,79H,71H,73H,3EH
       DB    31H,6EH,1CH,23H,40H,03H
       DB    18H,00
        
 
      
END































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -