|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
这个程序流水灯循环的时候,不按照循环走,按下按键就全部亮了,我加过延时函数了,也是一次全部亮。求助各位学霸。0 g% v. a7 U2 Q Y4 H
5 C2 ]; A: L( w; L
单片机源程序如下:( c9 D) K7 L5 @) h7 h
#include<reg52.h>
5 X1 k4 x5 V) p1 X, N+ \$ l* R#define u8 unsigned char* h" c6 q0 M% h" H5 L/ a# z
sbit S7=P3^0;
( r/ v2 T7 |) fsbit S6=P3^1;
& |$ O: }7 J4 Z$ E+ I0 U3 u7 L1 {+ vsbit S5=P3^2;
1 {- |$ j; p/ V' ]1 Nsbit S4=P3^3;
- F" d' O. Q |' E7 V: V, U
4 {7 ~: x) ~4 L7 u+ |( ]u8 code LedChar[18] =; P3 o+ \, p5 O' R, D9 b
& P5 |3 K* I' B) d4 ^
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,3 F. @7 |$ [/ z( ? \$ t
/ ]1 ^+ W+ e. C0 T 0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,4 \* @- K5 R: |
+ ~/ |" o- q# @4 ` E( |/ H 0xbf,0x7f};
: T5 `( `! {' Y. k- Y" f. M/ m- q" l6 \) T( {0 _
void LedXun_huan();- |( k/ D' @6 @: D M- {
void InitSystem();
, S+ }+ ~* P( z3 _& R% |2 K5 j# `* F# Svoid Chosse573(u8 i);
& L! [- B/ Y5 d4 w8 H. m9 P/ L& ~
& |1 i( ?! n- u/ Z) V( Gvoid InitSystem()
! m8 z+ a# P* }* j2 o# E. a{2 V N/ x7 j! q
Chosse573(5);
9 x2 d+ t0 U/ `( `% L P0=0X00;
, ?* O8 L/ P1 [. m0 L: @9 a$ N}0 X! G; h/ b) M
# v0 u; l0 ~. ~( B1 i
void Delay(u8 t)/ w( L. o1 A P- }
{
* }% {) [9 n9 y* p! [ while(t). P2 Q% W& ?2 }; p; {$ \
{
: a0 s) i& X' ~9 }8 h t--;2 b; D0 o* R- Y) E/ E2 ^
}0 t" C& H* Q; r4 g# w/ I
}1 c2 O" `: R4 k# }: O
1 H3 J" E" g* W
void Chosse573(u8 i)8 w+ n$ a0 b: S, ^6 H
{# @( O- {# M9 F+ p+ n7 Z& o' {4 ]* `
switch(i)
! x7 L4 ^6 F" M4 I {$ _ v7 C7 @7 N+ U4 g0 k
case 4: P2=(P2&0X1F)|0X80;break;' Q: y- c k. x9 @$ C
case 5: P2=(P2&0X1F)|0XA0;break;
5 n$ ]) E" z7 V8 d& w" l1 [ case 6: P2=(P2&0X1F)|0XC0;break;5 o9 @& O; W# i" U) G4 Y
case 7: P2=(P2&0X1F)|0XE0;break;1 [1 w8 O. m" \. F
}
( h9 l9 k6 l( O8 t3 ~}
1 Z5 z6 z" t6 p. r" B9 P
8 f9 s; X2 n1 f- U* l dvoid KeyDriver()7 C4 U" j4 j4 E
{: S) M0 v$ _( \$ R8 K2 G
if(S7==0)
; T$ E) M4 s1 i0 |- d* Q {
8 ^$ Y' J5 U8 j: s Delay(500);, F2 Q! c5 ~5 p% n3 v
if(S7==0)
) L- |/ c) r2 U F LedXun_huan();' k# R* Z! v" e+ {" C4 m
}( |6 h; G2 ^" ?5 s$ ^5 j
}
) T" W0 K" I3 h3 d
0 F1 \$ }5 D; g: T! i2 D& Jvoid LedXun_huan()
2 l! C: ^. e, e9 s4 _{+ i- ]6 X- R+ d3 g0 ?6 Y/ [3 Q" Q d
u8 i;# ~8 v6 Q0 Z6 r. u
Chosse573(4);$ `. q" W% C" b& X: S# P
for(i=0;i<8;i++)
+ y* F4 n; u5 w* d1 z* g" P {% w& K% ~& ? l9 A; y2 ^
P0=~(0x01<<i);- L* j! R9 o$ \2 ]2 E) C( E
}
& K& j( P$ V, q0 A/ [* y% i}) D4 |0 T W t* m$ b& }! K- R
7 L# W, V7 o3 yvoid main()
" [1 { x. Q9 h: U& ~( ]8 A{5 X, V/ l+ V7 M }
InitSystem();& t, A1 @- ?: ~! v
while(1)
; h4 i! N& j- r# m | h4 M( a {/ W: e+ e0 w/ i
KeyDriver();) z3 O5 f O' w! j* v6 N# @
}2 S" [3 x% A5 |6 ]/ s
}/ y" L) H; E* P* [( [
|
|