这是基于51单片机矩阵键盘行扫描法和线反转法的Proteus仿真,下面是自己写的逐行扫描的代码,按键是自定义的。仿真和实际上机操作有一些不同,线反转法仿真上每个按键需要按两次才有效果,实际上机操作的话效果很好,反应很灵敏,如果初学单片机建议买一块板子实际操作为主,仿真为辅,整个工程的源代码见附件。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机汇编语言源程序如下:
- ORG 0000H
- LJMP START
- ORG 0030H
- START:MOV SP,#60H
- MOV DPTR,#TAB
- MOV R0,#0FEH
- MOV R2,#00H
- LOOP: MOV P2,R0
- NOP
- NOP
- MOV A,P2
- ANL A,#0F0H
- JNB Acc.4,L1
- JNB Acc.5,L2
- JNB Acc.6,L3
- JNB Acc.7,L4
- MOV A,R0
- INC R2
- RL A
- MOV R0,A
- CJNE A,#0EFH,LOOP
- LJMP START
-
- L1: MOV R1,#0
- LJMP L5
- L2: MOV R1,#1
- LJMP L5
- L3: MOV R1,#2
- LJMP L5
- L4: MOV R1,#3
- L5: MOV A,R2
- MOV B,#4
- MUL AB
- ADD A,R1
- MOVC A,@A+DPTR
- MOV P0,A
- LJMP START
- TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
- END
复制代码
全部资料51hei下载地址:
Protues工程.zip
(71.92 KB, 下载次数: 37)
|