用汇编语言实现一个电子秒表

0-59秒,到了60秒后变为0重新开始,急需!!谢谢了

段码表和接口定义需要自己修改 主程序就是这样 加电后直接开始记秒 没有按键控制

diyi equ 31h
dier equ 32h
cou equ 33h
diyiwei bit p2.4
dierwei bit p2.5
org 0
ajmp start
org 0bh
ajmp time0
org 30h
start:mov sp,#5fh
mov dptr,#table
mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h
mov diyi,#0
mov dier,#0
mov cou,#0
setb ea
setb et0
setb tr0
main: lcall xianshi
ajmp main
xianshi:mov r1,#20
loop: mov a,diyi
movc a,@a+dptr
mov p0,a
clr diyiwei
lcall dely1ms
setb diyiwei
mov a,dier
movc a,@a+dptr
mov p0,a
clr dierwei
lcall dely1ms
setb dierwei
djnz r1,loop
ret
time0: push acc
push psw
inc cou
mov a,cou
cjne a,#20,over
mov cou,#0
inc diyi
mov a,diyi
cjne a,#10,over
mov diyi,#0
inc dier
mov a,dier
cjne a,#6,over
mov dier,#0
over: mov th0,#3ch
mov tl0,#0b0h
pop psw
pop acc
reti
dely1ms:mov r7,#250
dl1: nop
nop
djnz r7,dl1
ret
table:db 28h,0ebh,32h,62h,0e1h,64h,24h,0eah,20h,60h
end
温馨提示:答案为网友推荐,仅供参考
相似回答