您好,欢迎来到年旅网。
搜索
您的当前位置:首页51单片机矩阵按键程序

51单片机矩阵按键程序

来源:年旅网


MOV H,#00H

MOV 53H,#00H

MOV 52H,#00H

MOV 51H,#00H

START: MOV R0,#H ;初始化寄存器

MOV R2,#00H

SCAN: MOV P2,#11000111B ;扫描有无键按下

MOV A,P2

ORL A,#11000000B

CJNE A,#11000111B,NEXT

SJMP DISP

NEXT: ACALL DELAY20ms ;延时20ms去抖动

MOV P2,#0DFH ;扫描第一行

MOV A,P2

ORL A,#0F8H

SETB C

LOOP: RRC A

INC R2

JNC LOP

CJNE R2,#04H,LOOP

MOV R2,#00H

MOV P2,#0EFH MOV A,P2

ORL A,#0F8H

LOOP1: RRC A

INC R2

;扫描第二行

JNC LOP1

CJNE R2,#04H,LOOP1

MOV R2,#00H

MOV P2,#0F7H MOV A,P2

ORL A,#0F8H

LOOP2: RRC A

INC R2

JNC LOOP3

CJNE R2,#04H,LOOP2

SJMP DISP

LOP: MOV A,R2 ADD A,#06H

;扫描第三行

;键值处理

MOV R2,A

SJMP LOOP3

LOP1: MOV A,R2

ADD A,#03H

MOV R2,A

LOOP3: MOV H,53H MOV 53H,52H

MOV 52H,51H

MOV 51H,R2

KEY: MOV P2,#11000111B MOV A,P2

ORL A,#11000000B

CJNE A,#11000111B,KEY

;左移动待显示键值

;判断按键是否施放

DISP: MOV A,@R0 ;刷新显示第一位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P1,A

MOV P3,#0EFH

ACALL DELAY5ms

DEC R0

MOV A,@R0 MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P1,A

;刷新显示第二位

MOV P3,#0BFH

ACALL DELAY5ms

DEC R0

MOV A,@R0 MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P1,A

MOV P3,#0DFH

ACALL DELAY5ms

DEC R0

MOV A,@R0 MOV DPTR,#TAB

MOVC A,@A+DPTR

;刷新显示第三位

;刷新显示第四位

MOV P1,A

MOV P3,#7FH

ACALL DELAY5ms

LJMP START

DELAY20ms:

MOV R6,#0C8H

LOOP6: MOV R7,#60H

NOP

LOOP7: DJNZ R7,LOOP7

DJNZ R6,LOOP6

RET

DELAY5ms:

MOV R3,#H

LOOP8: MOV R4,#17H

NOP

LOOP9: DJNZ R4,LOOP9

DJNZ R3,LOOP8

RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务