|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
开关控制交通灯源程序和proteus仿真/ |8 _. O! r, l3 o0 {
/ n* @( r) h+ T" X% S9 E J8 M8 u* }0 Y1 b/ V+ t7 p
交通灯设计,* n- ?/ f3 R; u
![]()
9 Z6 H: O6 z% s' n% K& _, |#include<reg51.h>
# \; _$ \6 ]; t+ I5 n- O#define uint8 unsigned char& L/ C, z# C& U4 ^5 y
#define uint16 unsigend short int
) U2 V* b, @0 W* [5 Z' h, [sbit k1=P2^0;6 ]4 F* c. g+ M
sbit k2=P2^1; 9 M& L3 s$ O& k# N0 p8 ]" U; i
sbit RED_N=P0^0;+ N( Q9 K+ a- S4 j# t$ u3 x- U% x; Z! S
sbit GREEN_N=P0^1;
; j4 g9 _5 }) p6 T$ J0 @* osbit YELLOW_N=P0^2;
, Y6 U9 ], s" @; Tsbit RED_E=P0^3;' T+ j1 w5 G+ v2 h" i" o- k8 T
sbit GREEN_E=P0^4;" N- c/ J. G0 Z/ Y
sbit YELLOW_E=P0^5;: l% F! V; }8 q7 p' w
void delay(uint8 x)6 _6 t4 G, p7 \" O
{
& n; n' Z: T3 H8 O1 {' ` uint8 i;
+ A+ c. L0 [5 K, V while(x--)7 e- @( O1 {- q0 a& k+ h/ j* U+ s
{
! F+ P: m* S8 j" Q2 n9 Z for(i=120;i>0;i--);7 z0 @" j9 e j5 K0 p" @' ?
}' i3 a1 S% I" g# P8 w
}# a+ _ {9 w u) F
uint8 num=1;
7 d- @1 `7 |) @% Q+ L7 k+ Yvoid main()
& T- P6 {; i. S9 R5 ^3 f2 C{. o; B: p6 H* `( y6 l1 U2 W8 z
while(1)0 O/ \) W# [( i- G. y% Q
{) v6 g- F; `3 r" ]6 Q
while(k1==0)
- u! x1 U& Y7 ]$ I {
S# }0 Q: P' _1 q switch(num)
0 G1 r. z# C. p$ |, { {
& t& e- k+ ^/ w, A2 P- c, p case 1:RED_N=1;GREEN_N=0;YELLOW_N=1;
! k- Q( \ Y9 U. d9 R% T GREEN_E=1;RED_E=0;YELLOW_E=1;. O- ]: J5 u% U# w% |$ O# s& i% h. `
delay(2000);delay(2000); delay(2000);
! R; M% R* z: R num=2;break;6 Z1 A5 l3 h& a. j/ B; E
case 2:GREEN_N=1;RED_N=1;
$ l+ \5 H9 h7 q ^$ X4 W YELLOW_N=0;1 v( a6 a" z8 O- G9 K5 y. Z
delay(500);; ]0 a# t: l# u1 Q- @
YELLOW_N=1;- f1 @- ?( v- F- k5 i. g
delay(500);
3 L/ Z" \ g# [0 y a8 b) F. j9 ` YELLOW_N=0;
: b3 q+ A6 U" w& o delay(500);
# I) U" r8 s$ z YELLOW_N=1;
3 w& l( z2 f. L8 d& V5 S- C t delay(500);6 b& i# R: j/ C- a# |9 g
YELLOW_N=0;$ H" h! u# |' H \) V" o
delay(500);) Y6 Z; L2 v: C3 Z) P; @
YELLOW_N=1;
& X1 N+ s7 w+ \- l. b: z delay(500);3 q F% R3 v2 b0 I4 w+ i( X$ i
RED_E=0;GREEN_E=1;YELLOW_E=1;4 @ J9 g6 z1 e$ L
num=3;break;
0 H5 i9 [: C. g' q case 3:& r W0 J7 u3 L/ l
RED_N=0;GREEN_N=1;YELLOW_N=1;
c% c. p+ ^5 L9 Y3 k" p4 h! h7 O GREEN_E=0;RED_E=1;YELLOW_E=1;
" H; [& l* W5 O/ C delay(2000);delay(2000);delay(2000);
- j: H) W9 v& D; ~* B num=4;break;# J( m/ k v( s a
case 4:RED_N=0;GREEN_N=1;YELLOW_N=1;* \1 ~# ]( ~, t9 D+ E8 Z% v$ U
GREEN_E=1;RED_E=1;* c5 A, n) R' M a* J
YELLOW_E=0;3 }/ ^8 C9 F: R* X- ] a
delay(500);) {" p! H l7 Z1 j
YELLOW_E=1;
; ^0 B( d' d$ }6 I, r- r delay(500);0 U) X& q* Z; X" A3 s' h' D# w. d
YELLOW_E=0;# F2 x2 ]0 _! n# h- T
delay(500);( P( t# z5 e. K+ K/ O
YELLOW_E=1;+ z( e7 x. s, c D( ]8 u, l
delay(500);$ I; z' z& x+ E8 C) p' N! S+ R+ H
YELLOW_E=0;3 b7 c4 \$ j+ }8 \& B* Q6 a
delay(500);, n$ D6 @% b) y; Q5 X& j
YELLOW_E=1;, ]8 V% `; l( A; t
delay(500);! B" I$ K+ r- j5 [1 Z+ m
num=1;' Q1 @0 x8 M. @( w( ], }
break;0 x& {! Y. j" s* s( F9 z
- Q8 s( M3 V# O2 D0 X3 [; ?, U
}+ h$ S8 {8 E! }( s7 D7 `
}4 M6 `2 ~0 ^6 L- ^
while(k2==0)
1 E( O* `; F+ s0 y/ M {/ B. _8 V+ A2 R% y8 ?" r
RED_N=0;GREEN_N=1;YELLOW_N=1;
+ ~- w3 l0 X7 x RED_E=0;GREEN_E=1;YELLOW_E=1;
5 v- z# P4 F: P0 ~. U! ~ }
$ g/ T) B6 W3 Z/ g( j2 q' h* w$ j }, J, D) B6 N! G. f% {
}7 @8 {5 z" r' ~) `1 ?6 ~7 _
& G+ W! F* I: R
# T7 w0 T5 ~. e2 u |
|