📄 9.asm
字号:
org 00h
sjmp start
org 0bh
ljmp to
org 13h
ljmp int
;20h sign
;21h how many cycles a second
;15 second
org 40h
start:
mov tmod,#02h;count 0 mod 2
mov th0,#0cdh;1/10000s
setb ea;cpu it
setb et0;count0 it
setb ex1;int1
clr p1.0;stop turn
setb tr0;start count
setb it1;int1 shup down
mov r0,#0;m
mov r1,#0
mov r2,#0
mov r3,#0
mov r4,#08h;m n=#0ffh
mov r5,#0
mov r6,#0;r6 and r7 count 10000
mov r7,#0;
mov 20h,#0;sigh
mov 21h,#14h
mov 22h,#15
dis:
acall show
clr cy
mov a,r0
add a,r4
mov r0,a
jc out1;if m is full then send 1
sjmp out0;else send 0
out1:
setb p1.0
clr cy
sjmp dis
out0:
clr p1.0
sjmp dis
to:
inc r6
cjne r6,#40,ext0
mov r6,#0
inc r7
cjne r7,#250,ext0
mov r7,#0
;check the speed and time if allowed then set 21h 40
mov a,20h;
cjne a,#1,turn10;
mov a,22h;
subb a,#1;
mov 22h,a;
jnc turn20;
clr cy;
mov 21h,#28h;
mov 22h,#15
turn10:
cjne a,#2,turn20
mov a,22h
subb a,#1
mov 22h,a
jnc turn20
clr cy
mov 21h,#0h
mov 20h,#00h
turn20:
;chech and improve the speed
mov a,r3
mov b,#16
div ab
mov r1,a;high
mov r2,b
clr cy
mov a,r3
mov r3,#0
cjne a,#14h,ctt20;
mov 20h,#01h;
ctt20:cjne a,#28h,ctt40
mov 20h,#02h
ctt40:
subb a,21h
jc up
sjmp down
up:
;mov 20h,#01h;end the 20 turn a second
mov a,r4
add a,#01h
mov r4,a
sjmp ext0
down:
;mov 20h,#01h;end the 20 turn a second
mov a,r4
clr cy
subb a,#01h
mov r4,a
sjmp ext0
ext0:
reti
int:
inc r3
reti
show:
clr ea
mov dptr,#0ff22h
mov a,#0ffh
movx @dptr,a
mov a,#01h
mov dptr,#0ff21h
movx @dptr,a
mov a,r2
mov dptr,#table
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
mov dptr,#0ff22h
mov a,#0ffh
movx @dptr,a
mov a,#02h
mov dptr,#0ff21h
movx @dptr,a
mov a,r1
mov dptr,#table
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
setb ea
ret
table: db 0c0h,0f9h,0a4h,0b0h
db 99h,92h,82h,0f8h
db 80h,98h,88h,83h
db 0c6h,0a1h,86h,8eh
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -