七七影院色七七_免费观看欧美a一级黄片_亚洲综合久久久久久中文字幕_国产999999在线视频免费观看,国产小视频无码,国产精品亚洲日日摸夜夜添,女人高潮潮叫免费网站,久久影院国产精品,日韩成人在线影院,欧美囗交XX×BBB视频,色在线综合高清

機械社區(qū)

標題: 單片機新手,,請教問題 [打印本頁]

作者: 何其    時間: 2009-12-3 19:57
標題: 單片機新手,,請教問題
前不久用c語言寫了一個數碼管動態(tài)顯示倒計時程序。倒計時倒是沒問題,,可無論我怎么調延時時間,,他都閃爍的厲害,,請問高手怎么處理。是掃描頻率太低,,還是點亮后延時不夠,。如果是以上的原因,,那么掃描頻率和動態(tài)延時各要多少才能看起來不閃。
8 w, o+ }) r) v1 i程序如下:
0 @  D8 M1 v: L# m* q#include <AT89X51.H>
7 X. m( f6 Z" p# [" g2 ]6 xunsigned char code led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
5 E: M! x3 W5 `" |, F4 x9 ]int i=0,j=0,k=1,a=0;: H7 C( F& }1 H1 u5 h- f' S
sbit beep=P2^1;
: ?+ ~0 B3 ?, F6 Gsbit P35=P3^5;% I: k; S8 [5 w) b9 d$ X
sbit P36=P3^6;
  r) ^% q" m: W; {5 \7 qsbit P37=P3^7;1 p* m- _( Q, ]" `+ u- o) g
void delay(unsigned int aa)$ h7 U0 A; ~: }; v
{unsigned int jj;$ n' `6 j; z  A) y
for(;aa>0;aa--)
6 d+ C0 @: g9 `# t! w5 ]! f% ^for(jj=0;jj<60;jj++)
" a, j  w1 M5 v- a" H  o{;}}
6 V7 q5 m. t% q2 V( [; Dvoid main(void)
% F( c1 s! B0 R1 i# f' k# x{
0 @& m% z, H. k* Z5 Q* v: s& qEA=1;5 t. o5 _" b- `
ET0=1;% E" E: o! R0 Z* T  v- F/ K
TMOD=0x01;5 c* l/ r- H8 `" O" B6 {
TH0=0xff;! f, l0 r$ W, Z! A8 @  h! B/ z
TL0=0xff;
3 L5 G, H& t' l, `) M& o* E* w' eTR0=1;1 o) Q/ }3 b$ R3 U6 U5 Q" i& ~+ V
while(1)  E" o5 _- L, |2 H$ _
{3 R- e2 I$ ]2 J/ \, R6 u: d
}  }
# N' i/ \& j6 N* y* R+ N0 ]6 m; V  s; j' [
void timer0() interrupt 1
6 P8 J4 ~1 W) _0 x6 @3 I" m{if(i<1&&j<1&&k<1)
& O& u4 @6 A7 i: Q{P37=0;. v" p0 N6 z7 ]2 _
P0=led[0];2 _7 q, X: I" |: q2 q' u, h
beep=0;                                 
+ |6 P: A7 o" n8 _. H# J! Q" O) ~}
" W+ j3 {: ^. |; Delse  7 O2 [8 c/ z8 {
{
) L6 j" j3 z7 k* u( _/ d6 r7 uP37=0;
. ]$ E3 Y; Y$ R4 k; g" ?) Z8 uP0=led;* A& d% S/ [3 E- G8 K
delay(5); " l& U. d8 O7 U; `8 w9 [- X
P37=1;, Q3 ?8 F0 h: L
} 6 j9 D1 u3 F5 T  J# T" N
if(j<1&&k<1)  l* U3 q8 Z' Q) i  c( m
P36=1;
% D7 m& @+ X, Aelse
+ Q! e1 ^' [) u) a  ^2 R{
! G3 x) L6 d) [& k% fP36=0;; v$ w  l  C& L) d: |/ T
P0=led[j];8 H4 J7 i! ~4 W
delay(5);
" Z( t1 N$ y9 X4 h- k( JP36=1;
$ W% r4 T7 ?- Y; z}
3 ^' l* a& j% bif(k<1)0 A$ d% V: W# f( u! G
P35=1;
) v# H9 v6 m- M( p, X; jelse
; {- d$ H# }- h9 x+ W- b{P35=0;
8 {9 ?, N+ Y4 i7 D- m5 k) n- ]P0=led[k];0 B( H# H+ T" p1 m
delay(5);  $ M5 Q! t% u1 b' H
P35=1;
# v9 R& r" h" U& G" L; m$ ]& P# X}a++;- m4 H0 L( n" \' v6 h
if(a%20==0)
; ]8 L+ A$ k4 Z& K0 n' _# V{ , A9 R2 z$ p3 A# r) Y- D0 \
i--;
) b4 I1 [* V6 w8 B6 Kif(i<0)
, u5 p. v0 L$ S{i=9;8 N- \9 k9 H; ]$ D8 ?
j--;}- s2 }. I* d: l
if(j<0)                     & j. X0 c/ s3 N2 l
{j=9;
* a" l- B( b8 G5 I$ x/ X9 m5 pk--;}' o! [0 S. Y+ v
TH0=0xB1;
' v4 o6 K" V! y& R0 Z! s* h. [+ XTL0=0xE0;. u, \$ M% f8 M4 ^# z( W
}}

作者: syw開門造車    時間: 2009-12-4 08:22
何其 網友好,!
0 H2 j3 Y& W/ K7 J. g. n$ g# U
% L  S7 a, q; F# R/ \# E, q' @你的延時子程序中的延時太長了,,所以閃爍。2 e, H5 ~) g! n4 n3 p' q
.
& P0 f6 b* B2 @2 ksyw  091204---08.22
作者: 何其    時間: 2009-12-4 13:06
不是吧,,開門大俠,,循環(huán)60次,一毫秒都不到呀,。
作者: syw開門造車    時間: 2009-12-5 05:11
何其 網友好,!
* l: _) {+ E" a.
5 X/ J" v+ a3 x8 L你用一下我給的延時看看還閃爍不?,!
; n& k- j- d+ S7 A5 p# p.
  _. I( c" U5 J2 E  Ysyw  091205---05.11
) n0 F3 i& M: h5 g/ H/ P" d, o, }, O& J$ J5 {5 D: r4 m. i

* l# x/ K6 f0 h/ p: O$ r0 X
% h: y; X0 S& p7 U" y( M5 p
  G* R0 u, I- T3 s        P0=xsjs[xsjs1];
4 `" l* C0 ], {9 s3 l         P1=xsws[8];
" G8 I; `  Q  }        delay(10);
* v! x% [3 B0 }2 A% F' n) X//****************************
  R: g1 J, J( V$ s0 k9 v$ W    void delay(int x)
4 M' W& ]7 t8 B) g2 y6 L    {
/ L. [  [1 z8 E& W. W/ E      int  y, z;& A/ b0 x' Y, f6 H& \# r$ O
        for(y=0;y<x;y++)
- M3 G( c2 ?7 Y0 I        for(z=0;z<2;z++);/ `5 ~6 ^$ t) ?( s
     }
作者: 何其    時間: 2009-12-5 22:29
還是閃,,是不是這種程序里不適合if語句呀,我用除余數的方法如下程序就好了,。
9 L/ I8 V2 M' V/ h9 Q6 S#include <AT89X51.H>1 ~+ E4 G8 v4 s' `4 R9 p, y/ o
unsigned char code led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
- h# |3 M+ G  p7 }8 N1 Mint i=0,j=0,k=1,a=0,js;
* c( f8 Y) j. S1 c2 Jsbit beep=P2^1;
1 P$ Q; M0 [) o) Z8 c1 W" `sbit P35=P3^5;
4 H* W6 i& y4 D& `1 Fsbit P36=P3^6;
* Q- y/ u: p; m/ _$ @sbit P37=P3^7;
; |$ _2 g3 B+ |/ yvoid delay(int aa)1 n7 W6 V2 Q+ A2 y; r  ?8 r
{int y,z;8 O7 M" r: E0 |+ s* s" f: Y1 L
for(y=0;y<aa;y++)
) h) k) v( Z4 m' U# D( efor(z=0;z<60;z++);
/ J4 T# U% M" R8 o}8 ^1 j; a: {9 H% _/ T# b% e
6 C. R4 @/ [5 y& R% ]
void main(void)
2 z& ]9 v/ @, ?7 j{) C& g! [" e2 @1 I7 @2 R( Z" ]
EA=1;
& k" `- [/ R$ y- U( b. \ET0=1;& {! ?* I/ i9 s) \* s  x; z3 S
TMOD=0x01;
1 l) o% c/ x- T& t9 NTH0=0xff;" K6 g/ N2 A( |: l0 j3 a
TL0=0xff;
' q& X6 o2 y% W; V7 ETR0=1;& e4 A$ t1 R9 |7 Q% I
while(1)/ F8 f5 r6 R3 h
{
' G: K. Y* T5 g. ?& Vfor(i=100;i>=0;i--)9 C! G) Q* s6 K7 T! j
{
. D1 Z' T2 V: m. ^% F  L3 ijs=i;
0 Y$ q" l0 R, E( `( ^1 J$ [ delay(500); } , ]# r, n  X8 s
}         }2 \; N% N) }; s  n% L, b2 ]6 d

% y, Z! d: }) K" @6 }( m- Q
" J. o4 V# n, j5 fvoid timer0() interrupt 1
6 m0 z  i  `5 b/ y  q0 B! ~{& c- i4 C& N1 P/ K) y. J' Y
  P0=led[js/100];
: V* i# x0 _9 \' jP35=0;
9 `% ^+ H, F0 U; v3 O! T7 g* P  delay(5);; X. F+ L! D4 q7 n: z
          P35=1;
# e; }: V& t% ~  P0=led[(js-(js/100)*100)/10];# m3 j7 H& h! [- ?
P36=0;
6 l4 x9 c6 D- y# x  delay(5);
( S4 z" a' J7 F1 a" T P36=1;' T/ U6 ]/ o* Z& C; D
P0=led[(js-(js/100)*100)-((js-(js/100)*100)/10)*10];
% Z$ d; w( m0 M3 QP37=0;
" l- K9 X: y$ W1 j0 Z delay(5);0 q' X, E' g( Y* a1 h) n8 g
  P37=1;
( z+ M; j1 I% O2 h9 m# `* J$ v! S4 Z* E& K( _6 S, f
TH0=0xB1;( E. y4 n" m8 V5 k! Q
TL0=0xE0;  H! E3 m* X, Q$ V
2 {, H+ u# P" I8 Y
}




歡迎光臨 機械社區(qū) (http://97307.cn/) Powered by Discuz! X3.4