📄 定时器.asm
字号:
org 0000h
ajmp main
org 001bh
ajmp int_1
main: mov a, #0bbh
mov r4, #04h
acall led
mov a, #00h
mov p1, a
start: mov sp, #60h
mov p1, #0ffh
mov tmod,#10h
mov tl1, #0b0h ;晶振为12M,每50MS定时器溢出中断一次
mov th1, #3ch ;若晶振为11.0592M时,时间常数为4C00H,若晶振为6M时,时间常数为9E58H
mov r0, #00h
mov r1, #14h
mov 40h, #00h
setb tr1
setb et1
setb ea
here: sjmp here
int_1: push acc
push psw
push dpl
push dph
clr tr1
mov tl1, #0b0h
mov th1, #3ch
setb tr1
djnz r1, e_end
mov r1, #014h
mov dptr, #tab
mov a, r0
movc a, @a+dptr
mov p1, a
inc r0
cjne r0,#0ah,l1
mov r0,#00h
l1: mov r2, 40h
inc r2
mov 40h, r2
acall led1
acall led2
e_end: pop dph
pop dpl
pop psw
pop acc
reti
led1: mov b, #0fh
mov a, 40h
div ab
mov r2,a
mov r3,b
mov dptr,#table
mov a,r3
movc a,@a+dptr
mov r4,#01h
acall led
mov dptr,#table
mov a,r2
movc a,@a+dptr
mov r4,#01h
acall led
ret
led: mov scon, #00h
mov sbuf, a
jnb ti, $
clr ti
djnz r4,led
ret
led2: mov r4, #02h
mov a, #00h
acall led
ret
delay: mov r6, #0ffh
a3: nop
djnz r6, a3
djnz r7, delay
ret
tab: db 05h,0ah,14h,28h,50h,0a0h,55h,0aah,0ffh,00h
table: db 0bbh,09h,0eah,6bh,59h,73h,0f3h,0bh
db 0fbh,7bh,0dbh,0f1h,0b2h,0e9h,0f2h,0d2h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -