|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
这个程序流水灯循环的时候,不按照循环走,按下按键就全部亮了,我加过延时函数了,也是一次全部亮。求助各位学霸。
. u1 }; Q! k9 c/ B9 F+ G$ @* d! r; w( W5 Q- ?$ ^1 z
单片机源程序如下:% i2 R5 B4 J7 R7 p
#include<reg52.h> f0 |0 l% V! X. y
#define u8 unsigned char
7 i8 Z' x8 t. Y) a3 [2 \# Ksbit S7=P3^0;$ g9 q$ W7 y& C3 M5 u6 ?
sbit S6=P3^1;$ \& t. j) ?# {8 K4 p
sbit S5=P3^2;
! C, l& v! f" r) W( \ c+ D$ lsbit S4=P3^3; D( P$ o( J1 e5 I
: e/ Z: C" D4 I' ?5 E. bu8 code LedChar[18] =1 f" X6 H" ^4 A2 B4 F% [) q
$ n( _: v9 _6 z# I+ v' g# i4 S {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
' `( J- s2 t- H2 M) G' u" S6 f# K' K* [! P! [' |" @. w
0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,3 d! h1 k$ p! v1 M* O" R" J6 w
; l3 M+ t& M4 _ N0 O! U
0xbf,0x7f};
- Q& _- p) ]- t8 {! n6 t! D9 y$ c" j) `3 i
void LedXun_huan();
- a9 M# d/ \$ h1 t) w7 {( @# \: hvoid InitSystem();
1 y' h, q5 a" v: P9 gvoid Chosse573(u8 i);
2 q- }5 d. f; ^% W- ~' v4 [4 c. x% Z0 Y9 H2 g4 `
void InitSystem()
. _# [. U3 D6 O' q{, p0 L1 ?% A: z& H! M! h
Chosse573(5);0 l [2 j0 @, Z/ q
P0=0X00;
' J+ ^: z5 g4 R& z6 r}0 ~; ~( m4 A0 ]0 G. H+ f
. |- M2 z5 n6 e7 d1 m- b9 w6 Ovoid Delay(u8 t)
- \$ T$ C" u' G* a8 k5 V- L{
; X( E1 A3 K( n/ k% t1 H* }9 w& X while(t)
: f6 u/ T+ Y9 N. I {
( w3 W) }2 ^( x( b( ~" m, ` t--;; _# D. t" G$ y, d' S
}) g8 [# o f1 W& R/ L: ?5 p
}8 G/ x- L8 f# X% }1 T
% { F1 \; ~9 j' rvoid Chosse573(u8 i)5 O3 k' f1 D9 Y) o# D5 a
{' e C2 _: P, z
switch(i)0 K3 }* V, ^. u5 F
{+ V7 Z0 s, i' ]' P' L5 N- I
case 4: P2=(P2&0X1F)|0X80;break;/ ]8 X8 D$ c; C- ^" c
case 5: P2=(P2&0X1F)|0XA0;break;# I6 j6 `" v7 S$ K# {
case 6: P2=(P2&0X1F)|0XC0;break;
& i0 X- g1 I" J8 g$ V case 7: P2=(P2&0X1F)|0XE0;break;
. h- G% W& U2 t' v% `6 p& m1 C }9 H6 V; F- P& [# Y- Z/ }
}
! C! z+ \5 t3 w# b, \0 I0 s F6 T! U6 t1 b
void KeyDriver()9 J- v: D: K$ K
{
! |4 T6 g7 J5 { Z if(S7==0)
$ [9 R/ A- `: p5 ?9 E {
' E' |0 o- O2 g+ h: C# L8 ^2 n Delay(500);
" d4 O! e9 L8 L7 S8 x* o: M W if(S7==0)
2 ~" n9 E" o. Y9 Y) w! I( b* @ LedXun_huan();
) r2 H9 m4 \9 x }
4 C9 D' k/ ^4 J5 _6 I5 l) z}, U& V* T) x# r) w) E+ y3 t
# y# f% B" w: q( D* K
void LedXun_huan()
( I' ]0 e! X6 U{
4 S, A9 K! j* \$ ?% h1 I0 @3 M/ u u8 i;
; p% \+ x& t* W! L/ ? Chosse573(4);
9 i( [: N0 |( F! J4 Z0 j# e for(i=0;i<8;i++)* r5 w# W2 V0 d' s: u
{
; I9 P, X, q. y1 Z$ c# n+ H4 H/ P P0=~(0x01<<i);
- H1 j# O9 Z3 m" X' K* q5 j2 i% x }* B9 }# v6 \2 z; k
}. X |* m3 \0 Q: a. V
% U# \: s. S( w0 R* m! M
void main()+ O2 l$ d; A1 ?% y+ l
{
. K$ g2 ?5 R% ]+ @% a InitSystem();2 a3 G; r5 @: z- G3 ^! ]
while(1)7 I' @' i! E( X. O. _
{. k4 q' c7 Z9 a8 d, X9 y. E. Q' a5 `" Z
KeyDriver();# o U+ D Z1 j
}
7 c5 [4 T) J# b4 w" u}$ d- q5 _! P0 d4 M
|
|