單片機(jī)源程序如下:
- ORG 00H
- LJMP INIT
- ORG 30H
- DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H
- ;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
- ;*************;
- ; 主程序 ;
- ;*************;
- INIT:
- CLR P2.2
- CLR P2.3
- CLR P2.4
- MOV R1,#00H
- START:
- MOV A,R1
- MOV DPTR,#30H
- MOVC A,@A+DPTR
- MAIN:
- MOV P0,A
- ;**********************;
- ; 矩陣鍵盤掃描程序 ;
- ;**********************;
- KEY_SCAN:
- MOV P1,#00FH
- NOP
- MOV R2,P1
- CJNE R2,#00FH,KEY_DOWN ;沒有按鍵按下就返回主函數(shù)
- SJMP MAIN
- KEY_DOWN:
- ACALL DELAY10MS ;消抖
- MOV R2,P1
- CJNE R2,#00FH,NEXT0
- SJMP MAIN ;沒有按鍵按下就返回主函數(shù)
- NEXT0:
- CJNE R2,#007H,NEXT1 ;如果不等于007H就跳去檢測(cè)下一個(gè)鍵值
- MOV R1,#00H ;如果是的話
- SJMP NEXT_SCAN
- NEXT1:
- CJNE R2,#00BH,NEXT2
- MOV R1,#01H
- SJMP NEXT_SCAN
- NEXT2:
- CJNE R2,#00DH,NEXT3
- MOV R1,#02H
- SJMP NEXT_SCAN
- NEXT3:
- CJNE R2,#00EH,MAIN
- MOV R1,#03H
- NEXT_SCAN:
- MOV P1,#0F0H
- MOV R2,P1
- CJNE R2,#070H,NEXT4
- MOV A,#00H
- ADD A,R1
- MOV R1,A
- LJMP START
- NEXT4:
- CJNE R2,#0B0H,NEXT5
- MOV A,#04H
- ADD A,R1
- MOV R1,A
- LJMP START
- NEXT5:
- CJNE R2,#0D0H,NEXT6
- MOV A,#08H
- ADD A,R1
- MOV R1,A
- LJMP START
- NEXT6:
- CJNE R2,#0E0H,MAIN
- MOV A,#0CH
- ADD A,R1
- MOV R1,A
- MOV R3,#030H
- KEY_UP:
- ACALL DELAY10MS
- DJNZ R3,KEY_UP
- LJMP START
- ;*************;
- ; 延時(shí)程序 ;
- ;*************;
- DELAY10MS:
- MOV R6,#015H
- DE1:
- MOV R7,#0F8H
- DE2:
- DJNZ R7,DE2
- DJNZ R6,DE1
- RET
- END
-
復(fù)制代碼
所有資料51hei提供下載:
矩陣鍵盤.rar
(18.73 KB, 下載次數(shù): 12)
2019-3-12 17:58 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|