📄 text1.asm
字号:
ORG 00H
;MOV P1,#0FDH
;MOV P3,#0FFH
JMP ST
ORG 0BH
JMP ZD ;中断子程序
ST: CALL YS3
MOV TCON,#00000000B
MOV TMOD,#00001001B
MOV IE,#10000010B
MOV SP,#70H
MOV 30H,#0B
MOV R0,#20H
MOV R3,#10
JB P3.2,$ ;P3.2为低则通过 第一个低电平
ST2: CALL YS1 ;延时882us
JB P3.2, ST ;在9ms内若有高电平则从头来
DJNZ R3,ST2
CALL YS2 ;延时4.74
MOV TL0,#160
MOV TH0,#251
SETB TR0 ;引导码通过,启动定时器0
LOOP1: CLR A
CLR C
MOV R1,#8
LOOP: JNB P3.2,LOOP ;低电平等待,高电平通过
JB P3.2,$ ;高电平等待,低电平通过
RLC A
ADD A,30H
MOV 30H,#0B
MOV TL0,#160
MOV TH0,#251
DJNZ R1,LOOP
INC R0
MOV @R0,A
CJNE R0,#24H,LOOP1
CLR TR0
MOV A,21H
CJNE A,#00000000B,ST
MOV A,22H
CJNE A,#01111110B,ST
MOV A,23H
CJNE A,#11000001B,ST1
MOV A,24H
CJNE A,#00111110B,ST1
CPL P1.7
ST1: MOV A,24H
CJNE A,#00100110B,ST
MOV A,23H
CJNE A,#11011001B,ST
CPL P1.6
CPL P1.5
JMP ST
ZD: PUSH ACC
PUSH PSW
MOV 30H,#01B
;CPL P1.2
POP PSW
POP ACC
RETI
;YS1延882
;YS2延时 4.74ms
YS1: MOV R4,#20
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R3,#30 ;300ms
D3: MOV R4,#20
D4: MOV R5,#248
DJNZ R5,$
DJNZ R4,D4
DJNZ R3,D3
RET
END
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -