📄 key.asm
字号:
;实验名称:键盘实验
;功能:每按一个数字键,数码管显示相应的数字。
; 作者:http://www.mcuyjf.com.cn
; 05-02-01
;***********************************************************
E BIT P3.5 ;LCD口线的定义
RW BIT P3.6
RS BIT P3.7
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CLR E ;取消LCD对LED的影响
CLR RW
SETB RS
CLR P2.0 ;用第一个8字数码管显示
MOV P0,#8CH ;上电显示"P"
LOOP: MOV P1,#0FEH ;循环扫描按键
ACALL SCANKEY
MOV P1,#0FDH
ACALL SCANKEY
MOV P1,#0FBH
ACALL SCANKEY
MOV P1,#0F7H
ACALL SCANKEY
AJMP LOOP
;按键扫描程序
SCANKEY: MOV A,P1 ;读P1口
CJNE A,#0EEH,NEXT2
MOV A,#01H
AJMP SENDLED
NEXT2: CJNE A,#0DEH,NEXT3
MOV A,#02H
AJMP SENDLED
NEXT3: CJNE A,#0BEH,NEXT4
MOV A,#03H
AJMP SENDLED
NEXT4: CJNE A,#7EH,NEXT5
MOV A,#04H
AJMP SENDLED
NEXT5: CJNE A,#0EDH,NEXT6
MOV A,#05H
AJMP SENDLED
NEXT6: CJNE A,#0DDH,NEXT7
MOV A,#06H
AJMP SENDLED
NEXT7: CJNE A,#0BDH,NEXT8
MOV A,#07H
AJMP SENDLED
NEXT8: CJNE A,#7DH,NEXT9
MOV A,#08H
AJMP SENDLED
NEXT9: CJNE A,#0EBH,NEXT10
MOV A,#09H
AJMP SENDLED
NEXT10: CJNE A,#0DBH,NEXT_UP
MOV A,#00H
AJMP SENDLED
NEXT_UP: CJNE A,#0BBH,NEXT_DN ;+键
AJMP SCAN_RE
NEXT_DN: CJNE A,#7BH,NEXT_A
AJMP SCAN_RE
NEXT_A: CJNE A,#0E7H,NEXT_B
MOV A,#0AH
AJMP SENDLED
NEXT_B: CJNE A,#0D7H,NEXT_C
MOV A,#0BH
AJMP SENDLED
NEXT_C: CJNE A,#0B7H,NEXT_D
MOV A,#0CH
AJMP SENDLED
NEXT_D: CJNE A,#77H,SCAN_RE
MOV A,#0DH
SENDLED: MOV DPTR,#LEDCODE
MOVC A,@A+DPTR
MOV P0,A
SCAN_RE: RET
;8字LED的连接方法
;P0.7 P.06 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
; H G F E D C B A
;LED字段码表
LEDCODE: DB 0C0H ;0
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 99H ;4
DB 92H ;5
DB 82H ;6
DB 0F8H ;7
DB 80H ;8
DB 90H ;9
DB 88H ;A
DB 83H ;B
DB 0C6H ;C
DB 0A1H ;D
DB 86H ;E
DB 8EH ;F
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -