📄 倍频器.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT0
ORG 000BH
AJMP INTT0
ORG 001BH
AJMP INTT1
ORG 0040H
MAIN:MOV SP, #70H
MOV 20H,#00H
MOV TMOD,#11H
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#0ffH
MOV TL1,#0faH
MOV DPL,#00H
MOV DPH,#00H
setb pt1
CLR PT0
CLR PX0
SETB EA
setb ex0
SETB IT0
SETB ET0
SETB ET1
HERE: JNB 04H, RELA
CLR 04H
clr ex0
MOV A,33H ;判断最高位是否为零。
JNZ RELB
CLR C
MOV A, 32H
CJNE A, #91,RELC ;次位与91相比。
SJMP RELD
RELC: JNC RELB
JC RELJ
RELD: MOV A,31H ;第三位与8d相比
CJNE A, #8DH, RELE
SJMP RELF
RELE: JNC RELB
JC RELJ
RELF: MOV A, 30H ;最低位与80相比
CJNE A, #80H,RELG
SJMP RELJ
RELG: JNC RELB
RELJ: ACALL DIVII
MOV A, 34H
CPL A
MOV 36H, A
MOV A, 35H
CPL A
MOV 37H, A
CLR C
MOV A, 36H
ADDC A, #0eh
MOV 36H, A
MOV A, 37H
ADDC A, #00H
MOV 37H,A
CLR 05H
clr 07h
SETB TR1
SJMP rini
RELB: SETB 05H
clr 07h
SETB TR1
rini: setb ex0
sjmp thereeee
RELA: clr c
mov a, 44h
subb a, #01h
mov 44h, a
mov a, 45h
subb a, #00h
mov 45h, a
mov a, 46h
subb a, #00h
mov 46h, a
mov a, 47h
subb a, #00h
mov 47h,a
orl a, 46h
orl a, 45h
orl a, 44h
jnz HERE
setb 07h
thereeee:SJMP HERE
INTT0: clr tr0
inc dptr
setb tr0
reti
INTT1: clr tr1
jnb 07h,rel5678
clr p1.7
setb tr1
reti
rel5678: JNB 05H,RELP
CPL P1.7
MOV TH1,#3cH
MOV TL1,#0afh
setb tr1
RETI
RELP: DJNZ 39h,XUNHUAN
SJMP XIXI
XUNHUAN:mov th1,#00h
mov tl1,#00h
setb tr1
RETI
XIXI: cpl p1.7
mov th1,37h
mov tl1,36h
MOV 39h,50h
setb tr1
RETI
INT0: JB 00H, REL ;外部中断在此
SETB TR0
SETB 00H
reti
REL:
clr tr0
CLR 00H
push a
push psw
SETB 04H ;标志位
jb 06h, relgaijin
setb 06h
MOV 30H, TL0
MOV 31H, TH0
MOV 32H, DPL
MOV 33H,DPH ;33H单元为最高,32H单元为次高,31H次之,30H最低
ajmp texture
relgaijin:
mov 52h,tL0
mov 53h,th0
mov 54h,dpl
mov 55h,dph
clr c
mov a, 55h
cjne a,33h,relaa
sjmp relbb
relaa: jc relcc
sjmp reldd
relbb: mov a, 54h
cjne a, 32h,relee
sjmp relff
relee: jc relcc
sjmp reldd
relff: mov a, 53h
cjne a, 31h,relgg
sjmp relhh
relgg:jc relcc
sjmp reldd
relhh:mov a, 52h
cjne a, 30h,reljj
ajmp texture
reljj: jc relcc
sjmp reldd
relcc: clr c
mov a,30h
subb a, 52h
mov 56h, a
mov a, 31h
subb a, 53h
mov 57h, a
mov a, 32h
subb a, 54h
mov 58h, a
mov a, 33h
subb a, 55h
mov 59h, a
jnz relkk
mov a, 58h
jnz relkk
mov a, 57h
jnz relkk
mov a, 56h
clr c
subb a, #50
jnc relkk
clr 04h ;关闭
ajmp texture
reldd: mov a, 52h
subb a, 30h
mov 56h, a
mov a, 53h
subb a, 31h
mov 57h, a
mov a, 54h
subb a, 32h
mov 58h, a
mov a, 55h
subb a, 33h
mov 59h, a
jnz relkk
mov a, 58h
jnz relkk
mov a, 57h
jnz relkk
mov a, 56h
clr c
subb a, #50 ;阀门值50
jnc relkk
clr 04h
ajmp texture
relkk: mov 33h,55h
mov 32h,54h
mov 31h,53h
mov 30h,52h
texture: acall jia2miao
acall chuyi26
MOV TH0,#00H
MOV TL0,#00H
MOV DPL,#00H
MOV DPH,#00H
pop psw
pop a
RETI
DIVII: MOV R4,#78H
MOV R7, 31H
MOV R6, 30H
MOV R2, 33H
MOV R3, 32H
CLR A
MOV R5, A
MOV R1,#32
DIV1: CLR C
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
MOV A, R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A, R5
RLC A
MOV R5, A
SUBB A, R4
JC NEXT1
INC R6
MOV R5, A
NEXT1: DJNZ R1,DIV1
MOV A, R5
JB ACC.7, ADD1
CLR C
MOV A, R5
RLC A
MOV R5, A
SUBB A, R4
JC NEXT2
ADD1: MOV A, R6
ADD A, #01H
MOV R6, A
MOV A, R7
ADDC A, #00H
MOV R7, A
MOV A,R3
ADDC A,#00H
MOV R3,A
NEXT2: MOV A, R7
MOV 35H, A
MOV A, R6
MOV 34H, A
MOV A, R3
MOV 38H,A
inc 38h
mov a, 38h
mov 39h,a
mov 50h, a
RET
jia2miao:clr c
mov a, 30h
addc a, #80h
mov 40h, a
mov a, 31h
addc a,#84h
mov 41h, a
mov a, 32h
addc a, #1eh
mov 42h,a
mov a, 33h
addc a, #00h
mov 43h, a
ret
chuyi26: MOV R4,#20
MOV R7, 41H
MOV R6, 40H
MOV R2, 43H
MOV R3, 42H
CLR A
MOV R5, A
MOV R1,#32
DIV1234: CLR C
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
MOV A, R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A, R5
RLC A
MOV R5, A
SUBB A, R4
JC NEXT1234
INC R6
MOV R5, A
NEXT1234: DJNZ R1,DIV1234
MOV A, R5
JB ACC.7, ADD1234
CLR C
MOV A, R5
RLC A
MOV R5, A
SUBB A, R4
JC NEXT2345
ADD1234: MOV A, R6
ADD A, #01H
MOV R6, A
MOV A, R7
ADDC A, #00H
MOV R7, A
MOV A,R3
ADDC A,#00H
MOV R3,A
mov a, r2
addc a, #00h
mov r2, a
NEXT2345: MOV A, r2
MOV 47H, A
MOV A, R3
MOV 46H, A
MOV A, R7
MOV 45H,A
mov a, r6
mov 44h,a
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -