前不久用c語言寫了一個數碼管動態(tài)顯示倒計時程序,。倒計時倒是沒問題,,可無論我怎么調延時時間,他都閃爍的厲害,,請問高手怎么處理,。是掃描頻率太低,還是點亮后延時不夠,。如果是以上的原因,,那么掃描頻率和動態(tài)延時各要多少才能看起來不閃。
+ }3 f& h8 f) s7 H5 y程序如下:- Y9 |* ]; ]# C, U+ i o( M
#include <AT89X51.H>; U! z8 L+ w& }5 b( R& i( E5 s/ @! U+ L
unsigned char code led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};, }2 U# f) a' r. K# U3 k
int i=0,j=0,k=1,a=0;
% w& l- \" E" Y) ~9 b( Ssbit beep=P2^1;
4 \' p# q. N" F" }sbit P35=P3^5;8 o* |0 u" e0 t
sbit P36=P3^6;
1 [+ w8 M* R1 v6 `+ Osbit P37=P3^7;
& v i+ L0 C: Wvoid delay(unsigned int aa)
0 V/ C/ ]! z2 _8 ~+ b{unsigned int jj;' ]9 t% i1 E( t6 D5 e" Q
for(;aa>0;aa--)
' a6 N C0 n) u }for(jj=0;jj<60;jj++)
; ]0 d5 B! @& @. `' l% {{;}}
2 T1 ? Q# p7 |+ X1 Uvoid main(void)
' h2 H. _. E* P" F# Y$ J0 R0 w{$ ]+ e5 e8 Y8 O! Q# {
EA=1;1 y! Q2 \4 l, S# V) W& y Q
ET0=1;7 o- c# Q2 z" |" g+ }4 v" M
TMOD=0x01;0 n7 o3 h" ^! O; D
TH0=0xff;! c3 f ?2 d9 d: ^4 q. `# R
TL0=0xff;
! r" \4 z- _1 T( ~4 qTR0=1;
* O3 v1 `7 h, mwhile(1)& ~5 T2 O7 c/ R) g
{
* Q& x' s! \( [# S7 ~ } }
- W2 W- U4 F/ l/ V
% o; A* m9 u! R0 R" Zvoid timer0() interrupt 1
4 G; b! @$ A2 Q$ y{if(i<1&&j<1&&k<1)
0 D9 E0 G: t i" B; V5 R{P37=0;
. |5 E' h- Z6 s7 ]& G- G. aP0=led[0];
, X2 x, B+ T0 r- Abeep=0; ( J3 N" J, w* ?
}
0 y O9 o% z1 G: belse
! r8 r. t* b* X3 ~{+ V& k$ a6 K! C h( o" v1 b+ t
P37=0;3 Z7 z1 S% j1 |2 r
P0=led;
6 O; s5 o* c1 [4 a0 ]: ydelay(5);
& b/ t+ _, V* O; C: M: k$ KP37=1;
; u8 v) F# F' A% H# x, D# d} 2 t- F+ e' D: j7 Q
if(j<1&&k<1)* i4 b' m- S/ N* g* [% ^8 a
P36=1;, h' ~0 o( Z# s2 v. G+ z3 k3 y) N
else' I1 d8 w4 S8 Q" a! S
{ W7 Z9 |5 x- S/ B4 C
P36=0;
* [# i: m6 u$ L# AP0=led[j];; H" N1 ^* ?# r6 w: \
delay(5);
" G( P# n4 U( v+ f, VP36=1; " o8 g. K, V% W: q
}
. l3 G. T$ i( c% w" n1 F6 J: Sif(k<1)
% Z( |1 c9 s3 `' FP35=1;/ d* ~; M4 W5 @
else
) ~% K3 O5 s# z{P35=0;! j0 @0 b) N- O, z9 K
P0=led[k];
7 F# C9 R W- K5 a5 L- T0 rdelay(5);
3 F/ l( O! c1 C6 {P35=1;* d1 e$ N" `4 \9 k0 f! Q
}a++;' w7 ~1 j2 h. g( L
if(a%20==0)
( G7 ]1 \. o/ h& V$ o! V9 p; D{
. J" D+ V, M; X, T. Di--;" H) f1 u! |( ?4 E" w
if(i<0)
2 d) k4 Q5 d5 h; a% {8 b{i=9;
. z9 M3 A t& f6 v* a! Rj--;}
3 S* |: y) X& x; u2 y+ Q$ sif(j<0)
# r. f) S3 d3 G" p% Y{j=9;
+ C* P& E' y* ^0 g- \% ]! g( G0 M: Bk--;}- O, I, ^6 a1 A$ Y$ `# e7 L
TH0=0xB1;
! U \3 e; x% Q8 _. sTL0=0xE0;% Z# D) s' E: d v5 j) }+ j$ {2 U) ]
}} |