?? 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 + -