|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
开关控制交通灯源程序和proteus仿真
% a# P7 ?' y; L+ I6 I1 Q
, s$ N& H# y3 R6 P1 E1 p
! B9 n2 w4 K d5 B+ m" a% E) J交通灯设计,3 t1 u( y m# c( W1 c% |
![]()
$ L' W" l4 ?; k; X* h#include<reg51.h>- q5 \- u$ \" Y1 A& ?: H; _
#define uint8 unsigned char
" W) f& R: O, b$ Y# A! ?6 e1 {#define uint16 unsigend short int
2 ~+ s" V8 V9 M7 l: B+ o$ |; gsbit k1=P2^0;# |9 c' d+ w9 l0 A6 \$ I. n' Z( x
sbit k2=P2^1; % p8 a3 ~4 l3 `+ s* A& W
sbit RED_N=P0^0;
4 B5 t& c9 _: X& \* s0 Ysbit GREEN_N=P0^1;0 E# t9 w% o5 h `; O0 L
sbit YELLOW_N=P0^2;# c$ Y, j# n* X/ R3 H8 c9 v
sbit RED_E=P0^3;
% P. t$ H0 L# [2 _sbit GREEN_E=P0^4;5 e2 }( c1 X- R1 b& ?/ Q5 e
sbit YELLOW_E=P0^5;
* j& O- y! T! {* H2 a4 Yvoid delay(uint8 x)& m# U: X) i$ W
{
$ n' o, a! ^9 `5 u uint8 i;; L% e8 n' f2 i8 Q6 w: F
while(x--)/ T# m# A8 G C' K- t4 V7 X: x
{# h' m, l: e; }9 j7 g
for(i=120;i>0;i--);1 v* l; b1 a9 ]7 H9 b, f
}
+ X" s3 L5 O1 c* _7 k/ V3 n}
2 |% D$ } [7 M2 _# `9 r2 wuint8 num=1;! V) Z1 b+ o6 r" ] X2 C
void main()
2 I0 d( M/ y+ l0 d{% d. V; J+ h" c) p
while(1)5 H% k5 w% v8 E% r' y* P/ o0 G
{
8 s W( z- ^/ K; ^+ P, w while(k1==0)
0 J6 H3 k1 g x; N {3 P3 }, f$ \* W+ r/ z1 v1 Z1 U
switch(num)
6 w i& v/ E2 ]- T) D ^& Q1 q {
5 E1 D2 H1 w' S" U7 |3 R9 l0 Y case 1:RED_N=1;GREEN_N=0;YELLOW_N=1;
, [) d A( t; x GREEN_E=1;RED_E=0;YELLOW_E=1;
I! n$ Z$ Y+ d* m7 C delay(2000);delay(2000); delay(2000);
$ y" L b' h D7 `& v8 ` num=2;break;! H. h9 f9 e. ?4 z$ d# |+ Q
case 2:GREEN_N=1;RED_N=1;
3 U: `4 }$ a1 l1 m YELLOW_N=0;' c: L7 t$ r% U U) S: |
delay(500);
/ V9 w' ^. O3 ~/ e4 C YELLOW_N=1;* |0 S6 _- L2 u1 E7 u+ d, W5 T( x
delay(500);
: |2 X5 { l+ @/ B# v YELLOW_N=0;9 f) d/ B! x! S4 c# ^
delay(500);
, k: A8 J+ _; u/ O YELLOW_N=1;7 o" O! t7 I& C% y7 v
delay(500);
; u: l( }1 p0 m1 L4 B3 Y- u YELLOW_N=0;
n4 v; W" o8 `+ A6 o6 F% O) M delay(500);
( Y" O1 ~! v; a# O; }! D* s& h- A YELLOW_N=1;+ v9 ?- P, I# H
delay(500);
3 `1 }! x9 Q( M; E/ R RED_E=0;GREEN_E=1;YELLOW_E=1;1 K( `1 K, q+ E: ^7 O
num=3;break;5 c9 k) }& p( y- J, f1 |$ y8 i
case 3: u5 }. [' ]# b8 x O. p
RED_N=0;GREEN_N=1;YELLOW_N=1;
: p" v2 j! O8 w# z' A1 A GREEN_E=0;RED_E=1;YELLOW_E=1;+ h# B% B' R2 I, @- w1 `
delay(2000);delay(2000);delay(2000);8 r; ~4 |' D# O; W* P
num=4;break;
6 W/ u, r7 S; Z5 d1 b% ? case 4:RED_N=0;GREEN_N=1;YELLOW_N=1;9 X: Z) |% v) g+ ]* O" R# ?, T
GREEN_E=1;RED_E=1;
+ `+ m! |6 e2 f1 ^3 z2 m0 _ YELLOW_E=0;# ^: y( P$ C% {. L; b
delay(500);- a" n" w0 p0 C9 p$ i
YELLOW_E=1;2 b! h1 p1 W8 W4 |
delay(500);
8 o% S, `! ~7 @ YELLOW_E=0;
5 W5 j6 ~. N" X# p' a delay(500);8 ]0 v9 q6 g+ W6 P: S& M0 z
YELLOW_E=1;
" ~% ~& H1 s9 d7 p/ T9 A delay(500);0 y7 n" d4 D1 H6 ~. Q5 F2 \. ^. P
YELLOW_E=0;( U# w$ m2 i7 z2 i( e
delay(500);
# ?6 m7 k& M% x' S5 N( K YELLOW_E=1;
- [9 n+ s/ h2 N4 P delay(500);. Y6 A( m$ O9 P, b1 o8 w: }
num=1;
6 h2 Q* r$ O0 }; X. f3 S$ Y break;
7 o m% k2 M V& J5 q& S
; C! A+ [2 `1 e# u5 l }. Z( b6 T; A+ t
}1 H: _, I: _0 V7 S2 k- z
while(k2==0)+ g; `+ n6 u% V
{* a8 t! f& H+ A. j
RED_N=0;GREEN_N=1;YELLOW_N=1;
$ c9 L/ `; e( F5 E" ~ RED_E=0;GREEN_E=1;YELLOW_E=1;+ N0 ^" p9 w9 u$ g3 i! z8 |7 r
}
* X+ @' I9 t: W" G" P$ K. @ }, V, L0 z* A; p; q$ [' a
}' Z/ C# ^! t. u
7 v5 u" a e9 t1 B& v
" b& a$ l, Q7 \- o# F" N |
|