📄 ps2.asm
字号:
sclk bit p3.2
dat2 bit p1.3
key_num equ 23h
org 0000h
ajmp main
org 0030h
main:mov p0,#0FFh
clr p2.1
main1:jnb sclk,key
sjmp main1
key:acall dill_key
sjmp main1
dill_key:lcall receive
mov a,key_num
cjne a,#0ffh,key2
lcall receive
ret
key2:CJNE A,#05H,JK4 ;F1
CLR p0.0
ret
JK4: CJNE A,#06H,JK5 ;F2
CLR p0.1
ret
JK5: CJNE A,#04H,JK6 ;F3
CLR p0.2
ret
JK6: CJNE A,#0cH,JK7 ;F4
CLR p0.3
ret
JK7: CJNE A,#03H,JK8 ;F5
CLR p0.4
ret
JK8: CJNE A,#0bH,JK9 ;F6
CLR p0.5
ret
JK9: CJNE A,#83H,JK10 ;F7
CLR p0.6
ret
JK10: CJNE A,#0aH,JK11 ;F7
CLR p0.7
ret
JK11:CJNE A,#76H,key_ret ;ESC
mov p0,#0FFh
ret
key_ret:ret
RECEIVE:CLR A ;接收数据子程序
CLR C
MOV R4,#08H
IN4:JNB SCLK,$ ;等待时钟升高
JB SCLK,$ ;等到时钟拉低
MOV C,DAT2
RRC A
NOP
DJNZ R4,IN4 ;八位数据传送完毕,继续向下执行
MOV KEY_NUM,A
JNB SCLK,$
JB SCLK,$
JNB SCLK,$ ;这是最后一个时钟信号
JB SCLK,$
JNB SCLK,$
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -