📄 cmrxdb.asm
字号:
org 0000h
jmp main
org 000bh
jmp time1
org 001bh
reti
org 0023h
reti
org 0100h
main:
clk equ p1.1
io equ p1.2
rst equ p1.0
mov sp,#70h
mov tmod,#21h
mov th0,#0f4h
mov tl0,#048h
setb tr0
mov th1,#0f9h
mov tl1,#0f9h
setb tr1
mov ie,#92h
mov ip,#02h
mov scon,#50h
mov r4,#130
mov 29h,#0
mov 2ah,#0
mov 2bh,#1
mov 27h,#0ffh
mov 14h,#0ffh
mov 2ch,#0 ;桌面
mov 15h,#5
mov r1,#0fh
mov 40h,#11
mov 41h,#11
mov 30h,#0feh
;------------
;mov 20h,#4
;mov 21h,#3
;mov 22h,#8
;mov 23h,#9
;mov 24h,#1
call r_1302
mov 42h,24h
zckz: mov a,20h
add a,21h
mov 25h,a
;------ mov 2ch,#0
mov a,42h
cjne a,#1,fsw2
clr p2.7
setb p2.6
setb p2.5
clr p2.4
clr p2.3 ;车绿,横红
mov 2dh,#0
sjmp pp
fsw2: cjne a,#2,fsw3
mov 2ch,#0
mov 2dh,#88h
anl p2,#17h
sjmp pp
fsw3: cjne a,#3,pp
mov a,2ch
xrl a,#77h
jnz pp
mov 2dh,#0
mov 0fh,#0
mov 2ah,#0
call kop2
;-------------------------------------
pp: jb 27h.1,ttm
jnb 27h.1,$
ajmp k6
ttm: mov a,14h
orl a,#07h
cpl a
jz bcd
call jjpp
bcd: jb p3.3,zckz
;-------------------------------------
mov 2dh,#0
call kop2
mov a,42h
xrl a,#2
jnz anbai
mov 2dh,#88h
anbai: sjmp pp
;---------------------------------------
kop2: mov 32h,20h
mov 33h,25h
qa1: mov 31h,#60h
mov a,p2 ;车绿闪,横红
anl a,#07h
orl a,31h
mov p2,a
call fsk
call ys1
mov a,p2
anl a,#07h
orl a,#40h
mov p2,a
call ys1
dec 32h
dec 33h
mov a,32h
xrl a,#0
jnz qa1
;---------
kopa: mov 32h,21h
mov 31h,#50h
qa2: call pin ;车黄,横红
call fsk
call ys
dec 32h
dec 33h
mov a,32h
xrl a,#0
jnz qa2
;---------
mov 32h,22h
mov 33h,32h
mov 31h,#88h
qa3: call pin ;车红,横绿
call fsk
call ys
dec 32h
mov 33h,32h
mov a,32h
xrl a,#0
jnz qa3
;---------
mov 32h,23h
mov 33h,32h
mov 31h,#60h
qa4: call pin ;车绿,横红
call fsk
call ys
dec 32h
mov 33h,32h
mov a,32h
xrl a,#0
jnz qa4
mov 40h,#11
mov 41h,#11
ret
;-----------------------
fsk: mov 40h,32h
mov 41h,33h
mov r2,#4
mov r0,#30h
fsk1: mov a,@r0
mov sbuf,a
aaq0: jbc ti,af0
sjmp aaq0
af0: inc r0
djnz r2,fsk1
ret
;------------------------
pin: mov a,p2
anl a,#07h
orl a,31h
mov p2,a
ret
;-----------------------
set1302t: setb rst
clr clk
clr rst
mov a,#0ceh
call r_bit
mov a,#00h
call r_bit
setb clk
setb rst
mov r0,#20h
mov r7,#5
mov r5,#0c0h
set1302a: setb rst
clr clk
clr rst
mov a,r5
call r_bit
mov a,@r0
call r_bit
inc r0
inc r5
inc r5
setb clk
setb rst
djnz r7,set1302a
setb rst
clr clk
setb clk
nop
setb rst
nop
clr clk
clr rst
mov a,#90h
call r_bit
mov a,#0a5h
call r_bit
setb clk
setb rst
clr clk
clr rst
mov a,#0ceh
call r_bit
mov a,#0c0h
call r_bit
setb clk
setb rst
ret
;---------------
r_bit: mov r3,#08h
r_bit1: rrc a
mov io,c
setb clk
clr clk
djnz r3,r_bit1
ret
w_bit: mov r3,#08h
w_bit2: mov c,io
rrc a
setb clk
clr clk
djnz r3,w_bit2
ret
;-----------------------------
r_1302: call r_1302b
mov 20h,a
call r_1302a
mov 21h,a
call r_1302a
mov 22h,a
call r_1302a
mov 23h,a
call r_1302a
mov 24h,a
ret
r_1302b: mov r5,#0c1h
r_1302a: setb rst
clr clk
clr rst
mov a,r5
call r_bit
call w_bit
setb rst
setb clk
inc r5
inc r5
ret
;------------------------
jjpp: mov a,14h
jb acc.3,asd1
xz1: mov a,14h
jnb acc.3,xz1
ajmp k1
asd1: jb acc.4,asd2
xz2: mov a,14h
jnb acc.4,xz2
ajmp k2
asd2: jb acc.5,asd3
xz3: mov a,14h
jnb acc.5,xz3
ajmp k3
asd3: jb acc.6,asd4
xz4: mov a,14h
jnb acc.6,xz4
ajmp k4
asd4: jb acc.7,asd5
xz5: mov a,14h
jnb acc.7,xz5
ajmp k5
asd5: ret
k1: inc 2ah
mov a,2ah
cjne a,#1,fa1
mov 40h,#0
mov 41h,42h
mov 0fh,#40h
sjmp fa5
fa1: cjne a,#2,fa2
mov 40h,22h
mov 41h,23h
mov 0fh,#20h
sjmp fa5
fa2: cjne a,#3,fa3
mov 40h,#1
mov 41h,20h
mov 0fh,#10h
sjmp fa5
fa3: cjne a,#4,fa4
mov 40h,22h
mov 41h,23h
mov 0fh,#08h
sjmp fa5
fa4: cjne a,#5,fa5
mov 40h,#11
mov 41h,#11
mov 2ah,#0
mov 0fh,#00h
fa5: ret
;-----------
k2: mov 24h,42h
call set1302t
mov a,2ah
xrl a,#1
jnz btk
mov a,42h
xrl a,#3
jnz btk
mov 2ch,#77h
call set1302t
ret
btk: mov a,2ah
xrl a,#3
jnz mmk
inc 2bh
mov a,2bh
xrl a,#3
jnz mvc
mov 2bh,#1
sjmp mmk
ret
mvc: mov 40h,2bh
mov 41h,21h
ret
mmk: mov 40h,#11
mov 41h,#11
mov 0fh,#0
mov 2ah,#0
call set1302t
ret
;---------------------
k3: mov a,2ah
cjne a,#2,sxz2
inc 22h
mov a,22h
xrl a,#51
jnz bnk2
mov 22h,#1
bnk2: mov 40h,22h
sxz2: ret
;-----------
k4: mov a,2ah
cjne a,#2,sxz3
dec 22h
mov a,22h
xrl a,#0
jnz bnk3
mov 22h,#50
bnk3: mov 40h,22h
sxz3: ret
;------------------------------
k5: mov a,2ah
cjne a,#1,sxz5
sjmp sxz6
sxz5: cjne a,#2,sxz7
sjmp hyo
sxz7: cjne a,#3,sxz1
mov a,2bh
;--------
cjne a,#1,hyo1
inc 20h
mov a,20h
xrl a,#10
jnz asx
mov 20h,#1
asx: mov 40h,2bh
mov 41h,20h
ret
hyo1: cjne a,#2,sxz1
inc 21h
mov a,21h
xrl a,#10
jnz asx1
mov 21h,#1
asx1: mov 40h,2bh
mov 41h,21h
ret
hyo: inc 23h
mov a,23h
xrl a,#100
jnz bnk5
mov 23h,#1
bnk5: mov 41h,23h
ret
;-------------
sxz6: inc 42h
mov a,42h
xrl a,#4
jnz bnk
mov 42h,#1
bnk: mov 40h,#0
mov 41h,42h
sxz1: ret
;---------------------------------
k6: mov a,2ah
cjne a,#1,ssxa
sjmp ssxb
ssxa: cjne a,#2,pot
sjmp pot1
pot: cjne a,#3,sxx1
mov a,2bh
cjne a,#1,pit1
dec 20h
mov a,20h
xrl a,#0
jnz pit2
mov 20h,#9
pit2: mov 41h,20h
sjmp sxx1
pit1: cjne a,#2,sxx1
dec 21h
mov a,21h
xrl a,#0
jnz pit3
mov 21h,#9
pit3: mov 41h,21h
sjmp sxx1
;---------
pot1: dec 23h
mov a,23h
xrl a,#0
jnz bxk
mov 23h,#99
bxk: mov 41h,23h
ajmp pp
;-----------
ssxb: dec 42h
mov a,42h
xrl a,#0
jnz bnk1
mov 42h,#3
bnk1: mov 40h,#0
mov 41h,42h
sxx1: ajmp pp
;-----------------------
sm: mov a,40h
mov b,#10
div ab
mov dptr,#tab
movc a,@a+dptr
mov 10h,a
mov a,b
mov dptr,#tab
movc a,@a+dptr
mov 11h,a
mov a,41h
mov b,#10
div ab
mov dptr,#tab
movc a,@a+dptr
mov 12h,a
mov a,b
mov dptr,#tab
movc a,@a+dptr
mov 13h,a
ret
;---------
smx: mov a,29h
jnz gg
mov a,p2
anl a,#0f8h
orl a,15h
mov p2,a
mov p0,@r1
dec 15h
inc r1
mov a,15h
xrl a,#0
jnz kk
mov 29h,#88h
sjmp kk
;----------
gg: mov a,p2
anl a,#0f8h
orl a,#07
mov p2,a
mov 14h,p1
mov c,p3.2
mov 27h.1,c
mov 29h,#0
mov 15h,#5
mov r1,#0fh
kk: ret
;-------------------------
time1: push acc
push psw
push dph
push dpl
mov th0,#0f4h
mov tl0,#48h
call sm
call smx
djnz r4,looph
mov r4,#130
clr p3.6
setb p3.6
mov a,2dh
xrl a,#88h
jnz looph
cpl p2.4
looph: pop dpl
pop dph
pop psw
pop acc
reti
;----------------------
ys: mov 60h,#10
lp2: mov 61h,#200
lp1: mov 62h,#7dh
lp0: nop
nop
djnz 62h,lp0
djnz 61h,lp1
djnz 60h,lp2
ret
ys1: mov 60h,#5
gp2: mov 61h,#200
gp1: mov 62h,#7dh
gp0: nop
nop
djnz 62h,gp0
djnz 61h,gp1
djnz 60h,gp2
ret
ys2: mov 60h,#10h
kn2: mov 61h,#10h
kn1: nop
djnz 61h,kn1
djnz 60h,kn2
ret
tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
db 40h
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -