?? 51單片機曼碼解碼程序.txt
字號:
TLL EQU 2DH
TLH EQU 42H
THL EQU 62H
THH EQU 81H
TDL EQU 88H
TDL1 EQU 2AH
BLK1 EQU 70H ;讀出數據緩存
OK BIT 79H
OUT BIT P1.1
CFE BIT P1.2
ORG 0000H
LJMP RD_D
ORG 0050H
RD_D:
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
LCALL EDGEM
JB OK,RD_OK
RD_D0:
CLR OK
LJMP RD_D
RD_OK:
NOP
RD_D1:
MOV R0,#BLK1 ;讀到BLK1
RD_DL0:
MOV R6,#0BH ;位計數---R6*R5
RB_L:
CLR A
MOV @R0,A
RD_DL1:
MOV R5,#05H
RD_DL2:
JB OUT,RD_DL5
MOV A,#00H
RD_DL3:
CJNE A,#TDL1,RD_DL4
LJMP RD_D0
RD_DL4:
JB OUT,RD_DLK
INC A
SJMP RD_DL3
RD_DL5:
MOV A,#00H
RDDL5:
CJNE A,#TDL1,RD_DL6
LJMP RD_D0
RD_DL6:
JNB OUT,RD_DLK
INC A
SJMP RDDL5
RD_DLK:
MOV C,OUT
CPL C
MOV A,@R0
RLC A
MOV @R0,A
MOV R1,#TDL ;延時TNEXT
DJNZ R1,$
DJNZ R5,RD_DL2
INC R0
DJNZ R6,RB_L
SETB OK
RDRET:
POP ACC
MOV R7,A
POP ACC
MOV R6,A
SJMP $
EDGEM:
MOV R7,#00H
EDGE0:
MOV R1,#08H
NOP
DJNZ R7,EDGE1
EDGER:
CLR OK
RET
EDGE1:
JNB OUT,$
MOV DPTR,#0000H
EDGE2:
INC DPTR
JB OUT,EDGE2
MOV A,DPH
JNZ EDGER
MOV A,DPL
CLR C
SUBB A,#THL
JC EDGE0
MOV A,DPL
CLR C
SUBB A,#THH
JNC EDGER
EDGE3:
JNB OUT,$
MOV DPTR,#0000H
EDGE4:
INC DPTR
JB OUT,EDGE4
MOV A,DPL
CLR C
SUBB A,#TLH
JNC EDGE0
MOV A,DPH
JNZ EDGER
MOV A,DPL
CLR C
SUBB A,#TLL
JC EDGER
MOV A,DPL
CLR C
SUBB A,#TLH
JNC EDGE0
DJNZ R1,EDGE3
MOV R1,#TDL
DJNZ R1,$
SETB OK
RET
MOV P0,BLK1
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -