┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
DK3A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK3A
NOKEY3:
MOV P3,#0FFH
CLR P3.7
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY4
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY4
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK13
MOV KEYBUF,#12
LJMP DK4
NK13: CJNE A,#0DH,NK14
MOV KEYBUF,#13
LJMP DK4
NK14: CJNE A,#0BH,NK15
MOV KEYBUF,#14
LJMP DK4
NK15: CJNE A,#07H,NK16
MOV KEYBUF,#15
LJMP DK4
NK16: NOP
DK4:
MOV A,KEYBUF
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
DK4A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK4A
NOKEY4:
LJMP WAIT
DELY10MS:
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
MOV R3,#F7H ; 扫描初始值
MOV R1,#00H ; 取码指标
SCAN1: MOV A,R3 ; 开始扫描
MOV P1,A ; 将扫描值输出到 P1
MOV A,P1 ; 读入 P1 判断是否有按下
MOV R4,A ; 存到 R4, 判断是否放开
SETB C ; C=1
MOV R5,#04H ; 扫描 P14~P17
L1: RLC A ; 将按键值左移一位元
JNC KEYIN ; 若 C=0, 有按, 执行 KEYIN
INC R1 ; 将指标值加 1, 继续扫描下一行
DJNZ R5,L1 &
nbsp; ; 扫描四行
MOV A,R3 ; 载入扫描值
SETB C ; C=1
RRC A ; 扫描下一列(P13~P10)
MOV R3,A ; 存回扫描值
JC SCAN1 ; C=1, 尚未完成扫描
RET ; 结束键盘扫描, 回到 Main Program
KEYIN: MOV R7,#10 ; 消除弹跳
D2: MOV R6,#248
DJNZ R6,$
DJNZ R7,D2
D3: MOV A,P1 ; 读入 P1
XRL A,R4
JZ D3
MOV A,R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
Table:
db 0c0h,0f9h,0a4h,0b0h,099h ;0-4
db 092h,082h,0f8h,080h,090h ;5-9
db 088h,083h,0a7h,0a1h,086h ;A-E
db 08eh ;F
end
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |