|
剛學(xué)單片機(jī)三個(gè)星期的萌新,有問(wèn)題實(shí)在解決不了,求大佬幫個(gè)忙。單片機(jī)型號(hào)STC95C52,數(shù)碼管為共陰極數(shù)碼管,LED連接數(shù)碼管運(yùn)行,晶振為11.0592MHz,我設(shè)的定時(shí)中斷口為P3.3。其他接口和題目我都寫(xiě)在紙上,現(xiàn)在的問(wèn)題就是:?jiǎn)纹瑱C(jī)能夠正常運(yùn)行,能夠正常倒計(jì)時(shí),LED能夠正常運(yùn)行,但是數(shù)碼管顯示的十位上(左邊)的數(shù)字一直在閃,我怎么調(diào)都調(diào)不好,要么閃要么一秒只跳一下,就是不能穩(wěn)定顯示,實(shí)在沒(méi)辦法了,求大佬幫忙看看程序,從MAIN開(kāi)始就行了,前面應(yīng)該都沒(méi)問(wèn)題,不會(huì)匯編的大佬就不用進(jìn)來(lái)了,謝謝各位大佬!!!
SECOND EQU 30H
TCOUNT EQU 31H
ORG 0000H
LJMP START
ORG 001BH
LJMP T_0
START:SETB IT1
SETB EX1
SETB EA
MOV R6,#0
MOV R0,#00H
MOV R1,#01H
MOV R2,#00H
MOV R3,#00H
MOV DPTR,#TABLE
LCALL DISP1
DISP1:MOV R7,#200
DISP2:MOV A,R0
ORL P2,#00001110B
ANL P2,#11111110B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV A,R1
ORL P2,#00001101B
ANL P2,#11111101B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV A,R2
ORL P2,#00001011B
ANL P2,#11111011B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV A,R3
ORL P2,#00000111B
ANL P2,#11110111B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
RET
DONE:SJMP DONE
T_0:PUSH PSW
PUSH ACC
LJMP MAIN
POP ACC
POP PSW
RETI
MAIN: MOV SECOND,#90
MOV TCOUNT,#00H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
DISP: MOV A,SECOND
MOV B,#10
DIV AB
MOV DPTR,#TABLE
ORL P2,#00000101B
ANL P2,#11111101B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY2
MOV A,B
ORL P2,#00001011B
ANL P2,#11111011B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY2
WAIT: JNB TF0,WAIT
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
INC TCOUNT
MOV A,TCOUNT
CJNE A,#20,NEX
MOV TCOUNT,#00H
DEC SECOND
MOV A,SECOND
CJNE A,#00H,NEXT
MOV SECOND,#90
CLR P2.6
CLR P2.5
CLR P2.4
CLR P2.3
CLR P2.2
CLR P2.1
CLR P2.0
JNB P2.0,DONE1
NEX: LJMP DISP
NEXT: LJMP WAIT
DELAY:MOV R5,#25
D1:MOV R4,#25
D2:DJNZ R4,D2
DJNZ R5,D1
RET
DONE1:LJMP START1
START1:SETB P1.5
LCALL DELAY
CLR P1.5
LCALL DELAY
LJMP START1
DELAY1:MOV R0,#50
D3:MOV R1,#30
D4:DJNZ R1,D4
DJNZ R0,D3
RET
DELAY2:MOV R0,#5
D5:MOV R1,#5
D6:DJNZ R1,D4
DJNZ R0,D3
RET
TABLE: DB 03FH,006H,05BH,04FH,066H
DB 06DH,07DH,007H,07FH,06FH
END
|
|