📄 2051-1.asm
字号:
org 0000h;不能检测重码
ajmp start
org 0100h
start:mov p1,#00h
mov p3,#00h
SETB P3.2
D:jb p3.2,$;若P3.2=0则往下执行
mov r6,#10
sb:acall ys1;延时802US
jb p3.2,D
DJNZ R6,SB;R6-1不为0则转到SB
cm:JNB P3.2,$;若P3.2=1则往下执行
ACALL YS2;延时4382US
MOV R1,#1AH
MOV R2,#2
PP:MOV R3,#8
JJ:JNB P3.2,$
LCALL YS1
MOV C,P3.2
JNC UU
JB P3.2,$
UU:MOV A,@R1
RRC A
MOV @R1,A
DJNZ R3,JJ
djnz r2,aa
BJ:MOV A,1AH
XRL A,#11010111B
JNZ START
cpl P3.5
MOV A,1BH
CJNE A,#00000000B,J1
cpl P1.0
J1:CJNE A,#00000010B,J2
cpl P1.1
J2:CJNE A,#00000001B,J3
cpl P1.2
J3:CJNE A,#00000011B,J4
cpl P1.3
J4:CJNE A,#00000110B,J5
cpl P1.4
J5:CJNE A,#00001010B,J6
cpl P1.5
J6:CJNE A,#00000100B,J7
cpl P1.6
J7:CJNE A,#00001000B,J8
cpl P1.7
J8:CJNE A,#00001011B,OK
MOV P1,#00H
AJMP D
OK:MOV R6,#10
D5:ACALL YS3
DJNZ R6,D5
AJMP D
aa:INC R1
lcall ys4
JB P3.2,$
AJMP PP
YS1:MOV R4,#20;延时802US
D1:MOV R5,#18
DJNZ R5,$
DJNZ R4,D1
RET
YS2:MOV R4,#10;延时4382US
D2:MOV R5,#217
DJNZ R5,$
DJNZ R4,D2
RET
YS3:MOV R4,#200;延时21602US
D3:MOV R5,#52
DJNZ R5,$
DJNZ R4,D3
RET
YS4:MOV R4,#100;延时3002US
D4:MOV R5,#13
DJNZ R5,$
DJNZ R4,D4
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -