亚洲欧美日韩国产一区二区精品_亚洲国产精品一区二区动图_级婬片A片手机免费播放_亚洲国产成人Av毛片大全,男女爱爱好爽好疼视频免费,中文日韩AV在线,无码视频免费,欧美在线观看成人高清视频,在线播放免费人成毛片,成 人 网 站 在 线 视 频A片 ,亚洲AV成人精品一区二区三区

機械社區(qū)

 找回密碼
 注冊會員

QQ登錄

只需一步,,快速開始

搜索
查看: 3254|回復: 4
打印 上一主題 下一主題

單片機新手,,請教問題

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2009-12-3 19:57:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前不久用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) ]
}}
2#
發(fā)表于 2009-12-4 08:22:36 | 只看該作者
何其 網友好,!
1 i; _. B* C, y
9 ~2 g( {$ m, _; v5 S  m6 Z! @你的延時子程序中的延時太長了,,所以閃爍。
7 ~# f+ I$ C# W' j.8 p4 @% k' S5 ?) g/ L) y
syw  091204---08.22
3#
 樓主| 發(fā)表于 2009-12-4 13:06:37 | 只看該作者
不是吧,,開門大俠,,循環(huán)60次,一毫秒都不到呀,。
4#
發(fā)表于 2009-12-5 05:11:29 | 只看該作者
何其 網友好,!
3 ~' }1 [: k' J* `0 ]" b  N  t& Y.1 T, e4 q; r5 g8 V; @4 V1 X/ f- d  ^
你用一下我給的延時看看還閃爍不?,!9 C5 Q9 E1 Y. z1 F9 ~, I
.: ^% z6 O8 W% A) }% v* ^) P7 l
syw  091205---05.11" W" F. m% ?9 @0 m/ {7 m9 M

) K" ]& U7 A1 S! L6 K9 ?9 U
, O. E5 K3 [6 n; {: v7 x
* c- j9 p  V2 |1 B) ?
$ E+ c5 a: A( Y9 y        P0=xsjs[xsjs1];
$ c% p$ U/ K- y. m% Y; v; A7 T' O         P1=xsws[8];
3 a' s( b9 ~3 F* J& Z. l. y        delay(10);
1 E5 w' M( w1 M  X( v' H5 |//****************************; g: @* q/ w( W
    void delay(int x)$ F, c2 _' {4 `  H
    {8 h6 ?: k& r* E; M2 H! ^# J
      int  y, z;
' X/ N; V# s) R9 w        for(y=0;y<x;y++)
" X9 R4 W2 H! X        for(z=0;z<2;z++);
2 t8 ~& J% M% o/ D, a     }
5#
 樓主| 發(fā)表于 2009-12-5 22:29:30 | 只看該作者
還是閃,,是不是這種程序里不適合if語句呀,我用除余數的方法如下程序就好了,。
8 x! [% g0 V: t6 i8 |8 K  ], E0 W: C#include <AT89X51.H>% F" b% _' R. h3 D7 Y+ v
unsigned char code led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
) z# A5 ~1 o% O5 M, E8 gint i=0,j=0,k=1,a=0,js;
6 x* F2 M9 J* N- q' @' O& [sbit beep=P2^1;- l/ x' @  Z) p* p4 A4 `0 ^$ D
sbit P35=P3^5;
. X% H& y& o" z( q& F# I+ Isbit P36=P3^6;8 W8 ?# _2 J+ F, q/ i
sbit P37=P3^7;
) B% g4 }" s0 X% m" L5 ]' }' qvoid delay(int aa)
+ e* m( h9 G2 Y! R4 t9 Y{int y,z;
* n7 ?3 E2 p' h" p$ u$ Dfor(y=0;y<aa;y++)
9 ]6 L5 g) h8 X( _" _  O. nfor(z=0;z<60;z++);
: X! Q* y& U+ M  Y9 N/ i: J$ S}5 ^5 e  Q; T3 [

+ ]% E9 d( i) w+ ~void main(void)
7 V( R' i0 @- Y3 U  n{
6 _2 ^4 e- E. v+ QEA=1;
* \/ g& B" e4 k3 T: fET0=1;
# Z3 f) j% I' v. ?  q( ITMOD=0x01;9 d& Q; p8 X6 I0 r: C
TH0=0xff;
0 j9 A+ X# C, E  m1 c2 uTL0=0xff;
; X  ~, z8 V, R3 ZTR0=1;0 i% R" K; F! \6 I6 v1 k8 S
while(1)
! b- W6 j0 k3 J" h/ R+ k2 h{( ]* U! s! R8 H, c2 m+ P
for(i=100;i>=0;i--)
8 m  ?5 V9 b5 H& N5 f! a{$ E; J0 ^) u, T. r" P
js=i;7 D/ Z- ?* ?0 ]; U2 l" G7 ~9 O3 C8 }% X0 x
delay(500); } ) ?0 C/ e1 f- \( d; F) g1 o- C" ?0 G. K
}         }
* p1 h! @/ {" ?1 S6 ~: N, P$ f7 H7 ~+ `% b- w  S
% o7 c/ F8 y3 _$ c0 \; e
void timer0() interrupt 1
0 o+ v7 x/ j, \  f0 D- X$ ]{# u' p! }6 X$ J" w+ I, E
  P0=led[js/100];
0 ~: M0 _, r0 Q$ V+ N3 }0 z3 eP35=0;! x/ I$ U5 A5 M8 V5 Z* F3 G  _
  delay(5);
7 V- @% v1 k( I  u, D! Q; J          P35=1;0 z# {( Z7 D& L# ]+ V8 L" F  ]
  P0=led[(js-(js/100)*100)/10];5 o, J) v' v7 r, q
P36=0;$ D! Q* w1 C$ P1 C2 U, F) W$ b: K/ E
  delay(5);
  a) w' H, R% h P36=1;: \& ?) K* W- }1 t
P0=led[(js-(js/100)*100)-((js-(js/100)*100)/10)*10];
: ]9 i( ~! Y* o8 c. Z$ |# S% `P37=0;5 M# J) }& U/ ?+ ?5 r1 U
delay(5);
& B% J$ s6 Q( ^) D/ ^  P37=1;) l7 F, t# g$ M/ z
  b- T, t4 Q5 D4 E+ K9 v
TH0=0xB1;
2 o0 B6 w& C9 qTL0=0xE0;
6 t: a1 K8 w. d3 V
( h" H" X9 @/ G}
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

小黑屋|手機版|Archiver|機械社區(qū) ( 京ICP備10217105號-1,,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-2-13 22:29 , Processed in 0.049241 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表