?? ledkey.asm
字號:
LOWBIT EQU 00
HIGHBIT EQU 00
ORG 0000H
LJMP MAIN
ORG 30H
MAIN: MOV R7,#00
MOV R6,#00
CLR P2.5
MOV A,#42H ;送讀數(shù)據(jù)的控制字
LCALL SEND
lcall delay
; SETB P2.5
; LCALL DELAY
; CLR P2.5
LCALL GETKEY ;讀低8位
LB: ;CMP R6,#00H
;JZ HB
MOV ACC,R6
ANL A,#1BH
CJNE A,#00H,LB0 ;若R6=0則跳轉(zhuǎn)至HB
JMP HB
LB0: ; MOV ACC,R6
;ANL A,#1BH
CJNE A,#01H,LB1
JMP SET1
LB1: CJNE A,#02H,LB2
JMP SET2
LB2: CJNE A,#08H,LB3
JMP SET3
LB3: CJNE A,#10H,LB4
JMP SET4
SET1: MOV LOWBIT,#01
MOV P0,#0FFH
clr p0.0
clr p2.0
SETB P2.0
JMP NEXT
SET2: MOV LOWBIT,#02
MOV P0,#0FFH
clr p0.1
clr p2.0
SETB P2.0
JMP NEXT
SET3: MOV LOWBIT,#03
MOV P0,#0FFH
clr p0.2
clr p2.0
SETB P2.0
JMP NEXT
SET4: MOV LOWBIT,#04
MOV P0,#0FFH
clr p0.3
clr p2.0
SETB P2.0
JMP NEXT
LB4: MOV LOWBIT,#00
JMP NEXT
HB: lcall delay
LCALL GETKEY ;讀高8位
MOV ACC,R6
ANL A,#1BH
MOV R6,ACC
CJNE R6,#00H,HB0
JMP SET0 ;SET0說明沒有按鍵
HB0:
CJNE R6,#01H,LB11
JMP SET5
LB11: CJNE R6,#02H,LB22
JMP SET6
LB22: CJNE R6,#08H,LB33
JMP SET7
LB33: CJNE R6,#10H,SET0
JMP SET8
SET5: MOV HIGHBIT,#05
MOV P0,#0FFH
clr p0.4
clr p2.0
SETB P2.0
JMP NEXT
SET6: MOV HIGHBIT,#06
MOV P0,#0FFH
clr p0.5
clr p2.0
SETB P2.0
JMP NEXT
SET7: MOV HIGHBIT,#07
MOV P0,#0FFH
clr p0.6
clr p2.0
SETB P2.0
JMP NEXT
SET8: MOV HIGHBIT,#08
MOV P0,#0FFH
clr p0.7
clr p2.0
SETB P2.0
JMP NEXT
SET0: ;MOV LOWBIT,#00
;MOV HIGHBIT,#00
MOV P0,#0FFH
clr p2.0
SETB P2.0
JMP NEXT
NEXT: SETB P2.5
LCALL DELAY
LJMP MAIN
GETKEY: MOV R5,#8 ;把值放在R6里
MOV R6,#00
MOV ACC,R6
S1:CLR P2.4
LCALL DELAY
MOV C,P2.2
JC SET11 ;CY=1就跳轉(zhuǎn)
JMP SET00
SET00:
ANL A,#7FH;首位置0
SETB P2.4
LCALL DELAY
MOV R6,ACC
RR A ;右移一位
DJNZ R5, S1
RET
SET11:
ORL A,#80H ;首位置1
SETB P2.4
LCALL DELAY
MOV R6,ACC
RR A ;右移一位
DJNZ R5,S1
RET
SEND: MOV R6,#8 ;循環(huán)8次
MOV B,#1H
D2: CLR P2.4 ;CLK置0
LCALL DELAY
PUSH ACC
ANL A,B
JZ SET000
SET111: SETB P2.3 ;DIN置1
SETB P2.4 ;CLK置1
LCALL DELAY
;
MOV A,B
RL A
MOV B,A
POP ACC
DJNZ R6,D2
RET
SET000: CLR P2.3 ;DIN<=0
SETB P2.4 ;;;clk<=1
LCALL DELAY
MOV A,B
RL A
MOV B,A
POP ACC
DJNZ R6,D2 ;r6<=r6-1,若r6=0則jmp d2
RET
DELAY: MOV R3,#250
d22:djnz r3,d22
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -