|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
开关控制交通灯源程序和proteus仿真* W9 t* M& q6 y) D
5 D9 I2 L# i6 I) C9 g6 |
3 R" L; \2 R y9 J8 a6 s* f- N交通灯设计,
1 i0 F* h' P( G![]()
6 R S0 K1 R4 N" M( s' C' A$ Q#include<reg51.h>+ g* ]1 v& {% a* V- B% n+ b
#define uint8 unsigned char0 N* W7 A# J! E' C4 Y" d4 m, V( B
#define uint16 unsigend short int 7 N+ w( ^6 R" _ E5 A
sbit k1=P2^0;
& _2 T/ @6 a3 h- u$ W$ _" E& J5 bsbit k2=P2^1; . N5 P4 e1 C% P6 b
sbit RED_N=P0^0;
6 r" J. @+ P* O) a1 v' @; z( |sbit GREEN_N=P0^1;4 ]- G: \1 g: K
sbit YELLOW_N=P0^2;
& _' Z( i$ k7 O; y. E3 v6 `* wsbit RED_E=P0^3; g0 h' e' N8 z* B% E
sbit GREEN_E=P0^4;
6 K* B' k( N1 i9 q! }sbit YELLOW_E=P0^5;
2 k' s9 P" K! d0 ]+ Jvoid delay(uint8 x)
: p5 b0 E1 W4 e9 `{
8 \# G& }9 V0 q1 {9 z7 @ uint8 i;( W0 K+ ^0 Y8 z; ~" c3 U) S
while(x--)5 A. G5 T( Q; c2 ]' Z3 U3 u; y
{
8 e: ]! |$ `* M for(i=120;i>0;i--);
7 @6 [ P6 G8 s }6 j" c) R3 W- c- a7 d
}
& z6 _" U( V; k1 {7 Xuint8 num=1;7 G2 A; Z. g6 p9 h/ j2 i- B
void main()
/ O L `% x) l{' R! l2 S+ j1 b
while(1)) b; K5 O! S K" ?. m
{
. o0 x$ I9 z1 j5 f5 n while(k1==0)
# ?9 W( q: q. u) Y7 |0 u {' x' c9 J @" y. ?. y) O
switch(num)4 x* o+ @/ w) L4 y
{5 R: W. I/ w, m6 }$ h% q" e: y
case 1:RED_N=1;GREEN_N=0;YELLOW_N=1;. ~% _. z9 X7 d5 @. k) \
GREEN_E=1;RED_E=0;YELLOW_E=1;
- n1 c+ }; {- b) A' u delay(2000);delay(2000); delay(2000);- j. n/ I7 C/ T' b) ~3 ? ^. o {
num=2;break;
: v% E. `6 g. C case 2:GREEN_N=1;RED_N=1;
# E4 L. Y: {( B4 K) I. M YELLOW_N=0;) I7 y8 ~0 f# v% Q
delay(500);
+ M' g1 l1 r/ Q* I0 F: z& H YELLOW_N=1;7 G# W, w m' h+ F7 n
delay(500);
6 X1 s* P) h# l) J YELLOW_N=0;. a9 {+ b7 G+ h$ K% j( c7 w
delay(500);
; y w. f$ x1 g! ] YELLOW_N=1;5 J% R) P- B, l- X+ L, z9 j% L# M
delay(500);
* C6 T) N( I1 f1 r/ W YELLOW_N=0;
; r6 `- H! i5 }+ B delay(500);. `; {2 \( _$ D8 B- n, k5 c0 X. t
YELLOW_N=1;. c/ Z/ b, v# P3 z2 W, M' R
delay(500);2 p1 A L" R* X1 x% Q) }
RED_E=0;GREEN_E=1;YELLOW_E=1;
) d5 x% a6 _! p; Z9 Q3 p num=3;break;
, p/ p) B+ \4 d% C& |& B. b case 3:
( Q5 I2 r9 {* ?1 D* Z. f. G1 K RED_N=0;GREEN_N=1;YELLOW_N=1;% E- u% J' O8 P9 |
GREEN_E=0;RED_E=1;YELLOW_E=1;8 d; J( ^2 s; `/ K3 [/ `
delay(2000);delay(2000);delay(2000);, s; A3 L& f9 A% u2 c
num=4;break;0 h% P$ r/ b( K. ~
case 4:RED_N=0;GREEN_N=1;YELLOW_N=1;" g. [+ ^0 f+ ?9 }$ R( [& v8 q- B
GREEN_E=1;RED_E=1;
. [7 Y- T- m) b* Y Y, h9 _5 ] YELLOW_E=0;7 o) M+ h* l1 c/ r$ r/ g. @
delay(500);
; ^* v, S2 e6 }4 D, k2 g. f YELLOW_E=1;$ i- ^4 I" j8 U
delay(500);, b" |, x+ u5 p. E8 n
YELLOW_E=0;7 Y/ o6 Y4 z' M6 l. H9 r5 f
delay(500);
1 b; q# S3 t8 `! \! ~4 m YELLOW_E=1;( u3 p" O3 e0 r$ ~
delay(500);
" n( [: l; _# e6 e) p2 Y YELLOW_E=0;
0 M F' ~1 o9 N5 g delay(500);
% n7 _* _2 C. g) } YELLOW_E=1;2 m. k8 H2 L" K" P
delay(500);
& ~) k% e3 l o+ f4 F6 e6 h3 B num=1;
% e8 k( w8 c1 v8 f* l0 x break;0 |* A0 r. X, j7 G0 j
/ L2 V8 @" b C: a0 P
}0 O- x% o& b) t$ g3 _- y5 {; C* V, o
}& f" ?+ k; Q2 L# D6 j$ c
while(k2==0)9 T: i+ T8 ^2 s# m9 c
{5 P S; ]+ b: Y9 ~( W0 Z
RED_N=0;GREEN_N=1;YELLOW_N=1;
8 u& B# j, a' G/ h7 H# A4 n; s4 _) V RED_E=0;GREEN_E=1;YELLOW_E=1;4 n+ m4 `0 S' p6 h, Q3 x% I
}
& X* U# P9 p" N5 q# h( a }+ I- b5 m% i: A+ f
}/ S, d: D, w" t0 Z" I8 X
" s- t' Q2 x3 K
8 T6 K" b1 Q) z) ]8 y6 y- o( [ |
|