按下按键会有数字显示和报警声,按键松开报警声取消,数字仍然显示
模仿以前的手机按键
运用汇编语言
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- ORG 0000H
- AJMP START
- ORG 0003H
- AJMP PINT0
- ORG 0030H
- START:
- MOV SP,#5FH
- MOV 30H,#00H
- SETB IT0
- MOV IP,#01H
- SETB EA
- SETB EX0
- MAIN:MOV P2,#0FH
- LCALL SHOW
- SJMP MAIN
- ORG 0100H
- PINT0:PUSH ACC
- PUSH PSW
- SETB P1.7
- LCALL DELAY0
- CLR P1.7
- LCALL RDKEY
- POP PSW
- POP ACC
- RETI
- RDKEY:MOV P2,#0FH
- MOV A,P2
- ANL A,#0FH
- CJNE A,#0FH,XIAODOU
- AJMP RDEND
- XIAODOU:LCALL DELAY10MS
- MOV P2,#0FH
- MOV A,P2
- ANL A,#0FH
- CJNE A,#0FH,SCAN
- AJMP RDEND
- SCAN:MOV R4,#00H
- LINE0: MOV P2,#0EFH
- MOV A,P2
- ANL A,#0FH
- CJNE A,#0FH,GKEY
- INC R4
- LINE1:MOV P2,#0DFH
- MOV A,P2
- ANL A,#0FH
- CJNE A,#0FH,GKEY
- INC R4
- LINE2:MOV P2,#0BFH
- MOV A,P2
- ANL A,#0FH
- CJNE A,#0FH,GKEY
- INC R4
- LINE3:MOV P2,#7FH
- MOV A,P2
- ANL A,#0FH
- CJNE A,#0FH,GKEY
- INC R4
- GKEY:JNB ACC.0,NEXT
- INC R4
- INC R4
- INC R4
- INC R4
- RR A
- AJMP GKEY
- NEXT:MOV 30H,R4
- RDEND:RET
- SHOW:MOV A,30H
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P0,A
- LCALL DELAY10ms
- RET
- DELAY10ms:MOV R7,#25
- DELAY0:MOV TMOD,#01H
- MOV TL0,#0B0H
- MOV TH0,#3CH
- SETB TR0
- DELAY1:MOV R6,#200
- DJNZ R6,$
- DJNZ R7,DELAY1
- RET
- TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
- DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
- END
复制代码
所有资料51hei提供下载:
中断矩阵式按键.zip
(53.8 KB, 下载次数: 15)
|