📄 rdblock1.asm
字号:
T0INT0: CJNE R5,#04H,T0INT1
MOV A,R6
CJNE A,#01H,T0INT00
CLR P1.5
MOV A,R1
MOV A,@R1
CPL A
ANL A,#00000001B
MOV @R1,A
AJMP T0INT01
T0INT00: SETB P1.5
T0INT01: MOV R1,#10H
MOV R6,#1
MOV R2,#066H
MOV A,@R0
MOV R4,A
AJMP T0OUT
T0INT1: mov a,r4
ANL A,#00000001B
CJNE A,#01H,T0INT3
CLR P1.5
MOV A,R1
MOV A,@R1
CPL A
ANL A,#00000001B
MOV @R1,A
INC R1
AJMP T0INT4
T0INT3: SETB P1.5
INC R1
MOV A,R6
CPL A
ANL A,#00000001B
MOV R6,A
T0INT4: MOV A,R4
RR A
MOV R4,A
INC R5
AJMP T0OUT
T0DATA1: CJNE R2,#066H,T0MAOHAO
NOP
; nop
;nop
T0INT2: CJNE R5,#08H,T0INT21
MOV A,R6
CJNE A,#01H,T0INT20
CLR P1.5
MOV A,R1
MOV A,@R1
CPL A
ANL A,#00000001B
MOV @R1,A
INC R1
AJMP T0INT22
T0INT20: SETB P1.5
INC R1
T0INT22: NOP
MOV R1,#10H
MOV R5,#0
MOV R6,#1
INC R0
MOV R2,#55H
CJNE R0,#DATA_ADD+4,T0INT7
MOV R7,#10011111B
mov r2,#22h
T0INT7: ajmp t0out
T0INT21: NOP
mov a,r4
ANL A,#00000001B
CJNE A,#01H,T0INT5
CLR P1.5
MOV A,R1
MOV A,@R1
CPL A
ANL A,#00000001B
MOV @R1,A
INC R1
AJMP T0INT6
T0INT5: SETB P1.5
INC R1
MOV A,R6
CPL A
ANL A,#00000001B
MOV R6,A
T0INT6: MOV A,R4
RR A
MOV R4,A
INC R5
AJMP T0OUT
t0maohao: cjne r2,#22h,t0LRC
nop
maohao0: mov a,r7
jb acc.0,maohao1
setb p1.5
INC R1
ajmp maohao2
maohao1: clr p1.5
MOV A,R1
MOV A,@R1
CPL A
ANL A,#00000001B
MOV @R1,A
INC R1
maohao2: inc r5
MOV A,R7
RR a
mov r7,a
CJNE R5,#05H,MAOHAO3
MOV R6,#1
MOV R5,#0
MOV R1,#10H
mov r2,#88h
MAOHAO3: ajmp t0out
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
T0LRC: CJNE R2,#88H,T0TIP
nop
nop
nop
nop
CJNE R1,#14H,T0LRC0
mov r5,#1 ; LRC ODD PARITY
mov r1,#10h
T0LRC4: CJNE R1,#14H,T0LRC40
AJMP T0LRC5
T0LRC40: mov a,@r1
jNz T0LRC3
INC R1
AJMP T0LRC4
T0LRC3: MOV A,R5
CPL A
ANL A,#00000001B
MOV R5,A
INC R1
AJMP T0LRC4
T0LRC5: CJNE R5,#1,T0LRC6
CLR P1.5
AJMP T0LRC7
T0LRC6: SETB P1.5
T0LRC7: NOP
MOV R2,#0AAH
MOV R3,#00
T0LRC8: AJMP T0OUT
T0LRC0: MOV A,@R1
JZ T0LRC1
CLR P1.5
AJMP T0LRC2
T0LRC1: SETB P1.5
T0LRC2: INC R1
ajmp t0out
T0TIP: CJNE R2,#0AAH,T0OUT2
setb p1.5 ; ";" 同步字符,120ms
inc r3
cjne r3,#22,t0out
MOV R3,#00H
NOP
T0OUT2: MOV R2,#0BBH
AJMP T0OUT
T0OUT: ;CPL P1.4
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 条码仿真
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OUTPUTB: NOP
MOV R0,#DATA_ADD+3
MOV R2,#00H
; LCALL DELAYL0
; LCALL DELAYL0
; LCALL DELAYL0
; LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL STAR
LCALL DELAYL0
LCALL GET
LCALL STAR
; LCALL DELAYL0
; LCALL DELAYL0
; LCALL DELAYL0
; LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYL0
LCALL DELAYH1
RET
;.........................................
GET: NOP
MOV A,@R0
ANL A,#00001111B
GET0: CJNE A,#00H,GET1
LCALL NUM0
LCALL DELAYL0
AJMP GETNUM
GET1: CJNE A,#01H,GET2
LCALL NUM1
LCALL DELAYL0
AJMP GETNUM
GET2: CJNE A,#02H,GET3
LCALL NUM2
LCALL DELAYL0
AJMP GETNUM
GET3: CJNE A,#03H,GET4
LCALL NUM3
LCALL DELAYL0
AJMP GETNUM
GET4: CJNE A,#04H,GET5
LCALL NUM4
LCALL DELAYL0
AJMP GETNUM
GET5: CJNE A,#05H,GET6
LCALL NUM5
LCALL DELAYL0
AJMP GETNUM
GET6: CJNE A,#06H,GET7
LCALL NUM6
LCALL DELAYL0
AJMP GETNUM
GET7: CJNE A,#07H,GET8
LCALL NUM7
LCALL DELAYL0
AJMP GETNUM
GET8: CJNE A,#08H,GET9
LCALL NUM8
LCALL DELAYL0
AJMP GETNUM
GET9: CJNE A,#09H,GETA
LCALL NUM9
LCALL DELAYL0
AJMP GETNUM
NOP
GETNUM: CJNE R2,#0FFH,GETNUM1
MOV A,@R0
SWAP A
MOV @R0,A
DEC R0
CJNE R0,#DATA_ADD-1,GETNUM2
AJMP GETOUT
GETNUM2: MOV R2,#00H
AJMP GET
GETNUM1: MOV R2,#0FFH
MOV A,@R0
SWAP A
MOV @R0,A
AJMP GET
GETOUT: RET
GETA: AJMP GETOUT
;.................................
DELAYL0: CLR P1.5
MOV R1,#20 ;ABOUT 250US
DELAYL00: NOP
NOP
NOP
DJNZ R1,DELAYL00
RET
;;................................
DELAYL1: CLR P1.5
MOV R1,#40 ;ABOUT 750US
DELAYL10: NOP
NOP
NOP
DJNZ R1,DELAYL10
RET
;..............................
DELAYH0: SETB P1.5
MOV R1,#20 ;ABOUT 250US
DELAYH00: NOP
NOP
NOP
DJNZ R1,DELAYH00
RET
;;................................
DELAYH1: SETB P1.5
MOV R1,#40 ;ABOUT 750US
DELAYH10: NOP
NOP
NOP
DJNZ R1,DELAYH10
RET
;..............................
STAR: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
RET
;.................................
NUM1: NOP
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
RET
;.................................
NUM2: NOP
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
RET
;.................................
NUM3: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
RET
;.................................
NUM4: NOP
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
RET
;.................................
NUM5: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
RET
;.................................
NUM6: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL1
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
RET
;.................................
NUM7: NOP
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
RET
;.................................
NUM8: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
RET
;.................................
NUM9: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
LCALL DELAYL1
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
RET
;.................................
NUM0: NOP
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL0
LCALL DELAYH1 ;BARS
LCALL DELAYL1
LCALL DELAYH0 ;BARS
LCALL DELAYL0
LCALL DELAYH0 ;BARS
RET
;.................................
;4字节16进制数转化为5字节10进数
;..................................
IBTD2: NOP
mov 50h,40h
mov 51h,41h
mov 52h,42h
mov 53h,43h
mov 54h,44h
CLR A
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#32
LOOP: CLR C
MOV A,54H
RLC A
MOV 54H,A
MOV A,53H
RLC A
MOV 53H,A
MOV A,52H
RLC A
MOV 52H,A
MOV A,51h
RLC A
MOV 51H,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A
MOV A,R2
ADDC A,R2
DA A
MOV R2,A
DJNZ R7,LOOP
MOV 50H,R2
MOV 51H,R3
MOV 52H,R4
MOV 53H,R5
MOV 54H,R6
RET
;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
; T1 INT
;)))))))))))))))))))))))))))))))))))))))))))))))))))))))
T1INT: NOP
INC BZ
MOV TH1,#00
MOV TL1,#00
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -