;以下是一套數(shù)字秒表程序,分辨率0.01S
;利用TIM1產(chǎn)生中斷,沒(méi)次中斷時(shí)間為0.01/8S
;P0口為六個(gè)數(shù)碼管的A、B、C ~F輸入
;P2.0~p2.5作位選
;;;問(wèn)題??為什么結(jié)果顯示一直是000000????
;為什么中斷后79H到7EH的值改變了而中斷返回后有是0?
;請(qǐng)各位賜教
org 0000h
ajmp main
org 001bh
ajmp zhong
org 003fh
main:
mov sp,60h
mov 30h,#08h
mov r7,#06h
mov r0,#79h
loop1:
mov @r0,#00h
inc r0
djnz r7,loop1
mov tmod,#10h
mov th1,#0ch
mov tl1,#0dch
setb ea
setb et1
setb tr1
xian:
acall disp
ajmp xian
zhong:
push psw
push acc
dec 30h
mov a,30h
jnz re ;判斷是否滿八次中斷
mov 30h,#08h
inc 79h ;滿八次中斷,+0.01S
mov a,79h
cjne a,#0ah,re ;斷是否滿0.1S
mov 79h,#00h
inc 7ah ;加0.1S
mov a,7ah
cjne a,#0ah,re
mov 7ah,#00h
inc 7bh ;加1S
mov a,7bh
cjne a,#0ah,re
mov 7bh,#00h
inc 7ch ;加10S
mov a,7ch
cjne a,#06h,re
mov 7ch,#00h ;到60S
inc 7dh ;分上加1
mov a,7dh
cjne a,#0ah,re
mov 7dh,#00h
inc 7eh
mov a,7eh
cjne a,#06h, re
mov 79h,#00h ;到60分,全部顯示0
mov 7ah,#00h
mov 7bh,#00h
mov 7ch,#00h
mov 7dh,#00h
mov 7eh,#00h
pop acc
pop psw
reti
re:
pop acc
pop psw
mov th1,#0ch
mov tl1,#0dch
setb tr1
reti
disp:
mov r1,#79h
mov r0,#0feh
mov dptr,#table
x:
mov a,@r1
movc a,@a+dptr
mov p0,a
mov p2,r0
acall delay
inc r1
mov a,r0
jb acc.5,tuichu
rl a
mov r0,a
ajmp x
tuichu: ret
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,71H
delay:mov r6,#01h
del1: mov r5,#0fh
del2: djnz r5,del2
djnz r6,del1
ret
end
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |