|
問(wèn)題描述:程序可以運(yùn)行,倒計(jì)時(shí)也可以實(shí)現(xiàn),但是在倒計(jì)時(shí)的時(shí)候數(shù)碼管上的數(shù)會(huì)隔一秒閃爍一次,因?yàn)槲野讯〞r(shí)器中斷計(jì)時(shí)1s的程序放在了數(shù)碼管顯示程序里面,但是如果放在定時(shí)器中斷里面就達(dá)不到1s倒計(jì)時(shí)一次的效果了。
我想解決的問(wèn)題:希望倒計(jì)時(shí)的時(shí)候數(shù)碼管不要閃爍,而是一直顯示,希望大神們指點(diǎn)指點(diǎn),或者可以幫忙改一下,或者如果有更好的實(shí)現(xiàn)方法也希望大神們不吝賜教。
代碼如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP WBZD ;轉(zhuǎn)向外部中斷子程序(暫停功能)
ORG 000BH
LJMP INT0;轉(zhuǎn)向定時(shí)中斷0服務(wù)程序
ORG 0030H
;P0口接數(shù)碼管的段選(高電平有效)
;P2.0-P2.3接數(shù)碼管的位選(低電平有效?
MAIN:
MOV P2,#00H ;初始化P2口
MOV P0,#3FH ;開始顯示000000
SETB EA;中斷允許
SETB ET0;定時(shí)器0中斷允許
SETB EX0;外部中斷0允許
MOV TMOD,#01H;置定時(shí)器0為工作方式1
MOV TH0,#3CH ;12MHz50ms初值
MOV TL0,#0B0H
MOV R4,#1 ;計(jì)時(shí)時(shí)間(小時(shí))
MOV R5,#00H
; MOV R6,#00H
; MOV R7,#10
SETB TR0 ;計(jì)時(shí)開始
;==========================================
;=========鍵盤掃描程序=====================
MOSHI:
;計(jì)時(shí)顯示掃描
;R4為時(shí),R5為分,R6為秒
;顯示小時(shí)的十位
MOV A,R4
MOV B,#10
DIV AB
LCALL CHABIAO
MOV P2,#0FEH
MOV P0,A
LCALL DELAY
MOV P2,#0FFH
;顯示小時(shí)的個(gè)位
MOV A,B
LCALL CHABIAO
MOV P2,#0FDH
MOV P0,A
LCALL DELAY
MOV P2,#0FFH
;顯示分鐘的十位
MOV A,R5
MOV B,#10
DIV AB
LCALL CHABIAO
MOV P2,#0FBH
MOV P0,A
LCALL DELAY
MOV P2,#0FFH
;顯示分鐘的個(gè)位
MOV A,B
LCALL CHABIAO
MOV P2,#0F7H
MOV P0,A
LCALL DELAY
MOV P2,#0FFH
;顯示秒鐘的十位
MOV A,R6
MOV B,#10
DIV AB
LCALL CHABIAO
MOV P2,#0EFH
MOV P0,A
LCALL DELAY
MOV P2,#0FFH
;顯示秒鐘的個(gè)位
MOV A,B
LCALL CHABIAO
MOV P2,#0DFH
MOV P0,A
LCALL DELAY
MOV P2,#0FFH
LOOP1:
CJNE R0,#20,LOOP1
MOV R0,#00H
DEC R6
CJNE R6,#0FFH,MOSHI
MOV R6,#59
DEC R5
CJNE R5,#0FFH,MOSHI
MOV R5,#59
DEC R4
CJNE R4,#0FFH,MOSHI
MOV R4,#0
CLR TR0
LJMP MOSHI
;====================================
;延時(shí)20ms子程序
DELAY:
MOV 30H,#10
LOOP:
MOV 40H,#0FFH
DJNZ 40H,$
DJNZ 30H,LOOP
RET
;==================================
;查表指令
CHABIAO:
MOV DPTR,#TAB
MOVC A,@A+DPTR
RET
;============================
;定時(shí)中斷子程序
INT0:
INC R0
MOV TH0,#3CH
MOV TL0,#0B0H
RETI
EXIT:
RETI
;================================================
;外部中斷0子程序
WBZD:
JNB P3.2,$
CPL P3.7
CPL TR0
RETI
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,58H,5EH,79H,71H
END
|
|