📄 实用计时程序.asm
字号:
week equ 30h
hour equ 31h
min equ 32h
sec equ 33h
hourg equ 34h
hours equ 35h
ming equ 36h
mins equ 37h
sec1 equ 38h
sec2 equ 39h
sec3 equ 3eh
org 0000h
ljmp start
org 000bh
ljmp ET_0
org 001bh
ljmp ET_1
org 0000h
ET_0:inc sec1 ;sec1每200us就加1
mov a,sec1
mov b,#5
div ab
mov sec1,b
add a,sec2 ;sec2每200us×5=1ms就加1
mov b,#100
div ab
mov sec2,b
add a,sec3 ;sec3每1ms×100=0.1s就加1
mov b,#10
div ab
mov sec2,b
add a,sec ;sec每0.1s×10=1s就加1
mov b,#60
div ab
mov sec,b
add a,min ;min每1s×60=1min就加1
mov b,#60
div ab
mov min,b
add a,hour ;hour每1min×60=1h就加1
mov b,#24
div ab
mov hour,b
add a,week ;week每1h×24=1天就加1
mov b,#7
div ab
mov week,b /*mov a,min
mov b,#10
div ab
mov ming,b
mov mins,a
mov a,hour
mov b,#10
div ab
mov hourg,b
mov hours,a
*/
RETI
ET_1:mov th1,#0ffh ;形成175μ秒中断(200偏低音,100、150偏高音)
mov tl1,#51h
cPL p3.7
RETI
start:mov hour,#0ch
mov min,#00h
mov sec,#00h
mov week,#00h
mov sec1,#00h
mov sec2,#00h
mov sec3,#00h
mov week11,#00h
mov hour11,#18h
mov min11,#00h
mov tl00,#38h
mov tl01,#1eh
mov week21,#00h
mov hour21,#18h
mov min21,#00h
mov week22,#07h
mov hour22,#17h
mov min22,#00h
mov week23,#00h
mov hour23,#18h
mov min23,#00h
mov chang,#14h
mov tiq,#05h
mov jihao,#00h
mov sp,#60h
mov ie,#00h
setb et1 ;允许T1中断
mov tmod,#12h ;T0&T1方式选择 T1方式1,16位计数器;T0方式2,8位自动重装计数器
mov ip,#02h ;设置中断优先级控制T0>T1
mov th0,#38h ;计数器赋初值
mov tl0,45h
mov th1,#0ffh
mov tl1,#51h
setb ea
setb et0 ;开放总中断和允许T0中断
setb tr0 ;启用t0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -