|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
这个程序流水灯循环的时候,不按照循环走,按下按键就全部亮了,我加过延时函数了,也是一次全部亮。求助各位学霸。
' H" t( s4 o8 s. {
7 I# A+ U/ [4 k2 {6 ]/ D% h单片机源程序如下:
7 f3 h i3 T# y+ q% d3 {#include<reg52.h>4 r I, j. D& P: j
#define u8 unsigned char
, E% o/ g7 n9 z+ V8 Z) Isbit S7=P3^0;
1 C$ _8 U5 m9 U, x- tsbit S6=P3^1;
4 ~1 r+ }. [3 Hsbit S5=P3^2;
% \" l& F. C. ^6 V7 Ksbit S4=P3^3;
T4 d# C. ?( w
5 t4 h8 y7 R3 Q$ s$ {; ?u8 code LedChar[18] =
) `9 `( f Z7 C4 E( O
?7 C/ ?1 h* d! h0 o- j5 e8 x {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
* ]0 {/ |8 D1 W2 H, q) n' u& v; ]7 J( _- {
0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
: j' q+ |7 N* s7 R, T$ e- E" S6 m2 j0 d$ w7 y) i) B
0xbf,0x7f};# W9 g) G; }! R ?7 w
: v/ Q2 d, u! J
void LedXun_huan();
: @. {8 }8 k; z; F8 B$ F+ Uvoid InitSystem();
% B6 t5 G* [: X% J+ h$ d. qvoid Chosse573(u8 i);0 L0 J, D& e7 d! H' ^' x
; n" ~* j! B; v, q: [" F" Q) Svoid InitSystem()- V: q1 P: W9 \ t" V5 w2 p4 t7 H
{
0 m; i" q5 w6 w Chosse573(5);
5 R9 Q/ a- F# E& G! c8 |4 v P0=0X00;
0 _$ _7 F' p, a- Y4 U- b* d}
5 _6 O/ I8 |9 _* I u- Q! C; e+ k4 `. ~4 Y
void Delay(u8 t)
* F6 @6 I: U" D0 L{% h, f& T$ @: E6 L# }, W
while(t), a( @3 \; |! t+ X& g F1 ^) G# M
{
. a) `1 T8 H, m, y/ {! S, m) V( b t--;
/ Y3 V1 G( s$ ]& Y0 b8 l8 _! s }
* ~+ r/ t5 O* J# d# O# M3 I7 l}/ ?; c9 N+ E1 _
( n. ?" x8 ^4 O8 J7 Z7 Z1 evoid Chosse573(u8 i)
3 X9 b' g) G! ?2 u$ _& t{0 W- h1 c+ V; }: K- x$ S
switch(i); S% [$ F+ O. p- u" S
{
" p; t) ]8 `" N2 X7 F4 i case 4: P2=(P2&0X1F)|0X80;break;9 [) C* C' f4 J
case 5: P2=(P2&0X1F)|0XA0;break;
6 E1 v6 O$ j: S) | case 6: P2=(P2&0X1F)|0XC0;break;2 x8 S0 F+ E& f$ r2 y( `
case 7: P2=(P2&0X1F)|0XE0;break;8 o: n) l+ D6 j) k
}
7 z2 I" E8 ^1 o' z) d2 @$ e}$ D! a/ I' |6 ~9 }$ S; ]
# ?% E* T5 H8 m+ o6 I
void KeyDriver()1 m7 h: m: t5 j1 T5 u# \* q" Y! u( Y+ b1 J
{
* e2 S4 Y/ S$ V& a if(S7==0)/ \$ @0 W$ l' ~+ J& Y2 Y* n
{
; c0 N( |- i5 g) {4 m% d Delay(500); G; U# z/ @ Q/ k9 A5 y. b0 O
if(S7==0)* h7 G s# @2 i$ S3 O% [
LedXun_huan();
$ B9 F# f: T X: C+ o }
. W( O, ], l# e( J}
3 X1 X5 c: \$ u9 h5 i [0 H3 M/ S% U5 \- v6 p
void LedXun_huan()
3 J0 k6 i1 G# p! }6 z% R{
E2 ^& t# p4 e4 V u8 i;
5 w' K. Q/ w% V6 i& \2 i& N' r Chosse573(4);
. O) |9 ?) E" d+ |, T$ I for(i=0;i<8;i++)
; a& i& |. q1 d7 x5 \ x: y$ t {2 V1 K- ~3 H) u/ ]0 e K3 J, c* r
P0=~(0x01<<i);" l1 a6 G) u5 l' U$ z
}' f+ I* l4 A' S6 g
}
: p1 {/ E+ W0 r3 w6 k
! @- F7 M6 @9 I: Wvoid main()% V1 X) x2 e/ J6 k9 k+ y
{
/ L1 b; v! M6 @/ j+ `" t- R+ F InitSystem();
F7 X. _! O( ~8 `+ b while(1); h. s1 v& k8 v d' `0 [
{
$ {7 Y9 E+ B& a0 i. { KeyDriver();6 `! K7 J V( m4 E2 \ |" Y
}3 O m5 D, N* ~5 {2 D
}
5 ~/ ~8 F* C$ C' Q |
|