|
5-交通燈.png (13.05 KB, 下載次數(shù): 42)
下載附件
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數(shù): 35)
下載附件
2018-6-21 09:03 上傳
`2 {& R2 C u0 W- N5 e3 u#include<reg51.h>. C) p) G: x/ G% x0 E3 Z+ g0 r8 P+ s
#define uchar unsigned char
G; F0 f# n, m/ @#define uint unsigned int4 w' V/ v& {: B# e4 c0 ~4 Z/ T
sbit RED_A=P0^0; //東西向燈
' Y. M; \% f( R) u+ |/ Psbit YELLOW_A=P0^1;' G2 E- T2 L) O1 w0 m1 g2 p% @
sbit GREEN_A=P0^2;$ ~; J; {4 {" X, j7 o/ \
sbit RED_B=P0^3; //南北向燈
* s; r/ q2 S& J; C3 C& `sbit YELLOW_B=P0^4;) P; |6 H9 `* t% s& r8 X: h6 J1 L u2 e
sbit GREEN_B=P0^5;
3 M; @- q5 I4 D$ a5 x1 Guchar Flash_Count=0,Operation_Type=1; //閃爍次數(shù),操作類(lèi)型變量
Y" C7 @; ?. y% B- d
y" Y1 v# I3 \6 N/ s//延時(shí) R, t# U% F/ q; @' W; H+ [5 w3 v
void DelayMS(uint x)6 c" l$ l% m! C
{5 u: B( O2 u" c, }& y) n
uchar i;
+ W0 M. c+ a' N# Vwhile(x--) for(i=0;i<120;i++);; {0 ?4 j; M; s. P# d& O
}$ v1 j7 R! E* ^+ \) Z) u/ j
//交通燈切換
. b1 U( J A' ^; Jvoid Traffic_Light()* r) g+ M$ A }1 F9 z. z
{" M1 J: s: }, `- Y2 ]" }7 C; ^
switch(Operation_Type)) @$ N2 q" O7 q9 d
{
* i+ o* C: j1 L" I/ hcase 1: //東西向綠燈與南北向紅燈亮
* y6 P: o1 E% a7 t* HRED_A=1;YELLOW_A=1;GREEN_A=0;
( m+ j" p4 J ^: B- aRED_B=0;YELLOW_B=1;GREEN_B=1;
1 |- F' e! e9 }: o' y3 oDelayMS(2000);+ l7 \/ ~1 m# ~
Operation_Type=2;2 ^+ V6 k& [* H1 X U! F
break;
* u6 [1 Z3 C/ l9 Ucase 2: //東西向黃燈閃爍,,綠燈關(guān)閉
5 ~! o; U& z9 k" {7 CDelayMS(300);
% \ a8 y& c4 d" U0 mYELLOW_A=~YELLOW_A;GREEN_A=1;
) h7 ~6 H$ S- t, T! J) C1 R, \" a7 u0 Iif(++Flash_Count!=10) return; //閃爍 5 次( i' ^3 J; F! @5 K( U
Flash_Count=0;
0 n4 z# U( x* h' K {) U' dOperation_Type=3;
& p; \5 j9 a6 s5 qbreak;4 c& K9 q- s& h5 Y; F
case 3: //東西向紅燈,,南北向綠燈亮
' c5 S/ J- ^& bRED_A=0;YELLOW_A=1;GREEN_A=1;- U; H1 r# s% [) [2 t9 |/ s/ h0 y: Q
RED_B=1;YELLOW_B=1;GREEN_B=0;) S5 ]: w# d& v
DelayMS(2000);( N+ Y4 l+ ]5 e' C
Operation_Type=4;
; B) f4 i) s+ M$ m4 b/ zbreak;
6 o6 J# D& [' _+ x# g* D. Icase 4: //南北向黃燈閃爍 5 次$ T9 X5 v! R( @. {4 H& c2 P0 Y0 c
DelayMS(300);+ E% D$ y5 d# @
YELLOW_B=~YELLOW_B;GREEN_B=1;
. m2 E8 j0 }% H% \6 Sif(++Flash_Count!=10) return;6 m* E& J. _: ~- q
Flash_Count=0;
, `! F: h' v# {) z8 `* c4 wOperation_Type=1;) e3 M( v8 P% e7 |: Y7 E6 x! S9 h
}
; B. z- e1 |) x+ [$ T! G( P}
! }4 d! x! h/ s+ I+ Y' a' e& J//主程序5 u7 {5 t B$ v& U3 S
void main()
* s( Q2 U7 U& g. y, T: b5 K' e$ V{8 K, c7 K- {. U
while(1) Traffic_Light();0 \8 g/ C1 V# X2 ]8 }5 v
}
& t* U6 ?. ]9 @+ A9 I2 l: q8 P
+ T+ V* W7 n% V' x8 Q! y" M2 b3 G9 \ j$ I! L
8 K j# Q5 i- Z# j, ^" g; I8 ] |
|