|
5-交通燈.png (13.05 KB, 下載次數: 45)
下載附件
保存到相冊
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數: 38)
下載附件
保存到相冊
2018-6-21 09:03 上傳
' C, c% {3 s% V#include<reg51.h>4 g4 r, ~! _( ]% L, B o
#define uchar unsigned char
" D6 n" x3 {0 c+ d3 S" r8 \$ k! U#define uint unsigned int
G! X& Q+ w- i+ s7 ssbit RED_A=P0^0; //東西向燈
2 U% B7 z) o7 N+ v1 Fsbit YELLOW_A=P0^1;- @2 w2 k# K9 _0 N- B- l" g
sbit GREEN_A=P0^2;3 p" \6 |5 v; O0 G2 z
sbit RED_B=P0^3; //南北向燈$ h- w2 p' J4 l6 d& w
sbit YELLOW_B=P0^4;
& h4 U! J+ L' g9 ]sbit GREEN_B=P0^5;
. W) Z4 N) S( c3 uuchar Flash_Count=0,Operation_Type=1; //閃爍次數,操作類型變量 9 a! x% C4 Z1 F' w( s* u2 G3 ~
! X2 R9 N# Q5 I2 z! k2 Z//延時2 N: [' w" O( L/ u) }
void DelayMS(uint x)
- `# ^& Q+ o% c& }{2 [- o. f/ P" `9 y) W/ Z. ~$ K
uchar i;% s9 j8 }) d! g7 z4 d- h: T
while(x--) for(i=0;i<120;i++);4 v2 B4 ~9 v4 _
}
$ b- q5 {' Y) h2 {$ d//交通燈切換
2 l0 m( Q: u1 }/ e2 k4 ?# U+ }void Traffic_Light()7 A& d& C0 Y/ }, r& C, B
{% a2 j" |) _4 \2 p0 A( c) o. c) j
switch(Operation_Type)6 Q+ @4 ]" Z4 s9 z! T9 b4 v, ~
{# d9 ~1 b& C! `7 ]# P9 v
case 1: //東西向綠燈與南北向紅燈亮
; c% D# C% J$ ?# H7 MRED_A=1;YELLOW_A=1;GREEN_A=0;, Y! |, o, j0 O
RED_B=0;YELLOW_B=1;GREEN_B=1;% Q! L0 P; g/ ~6 K) K: k
DelayMS(2000);. h# C+ W- w) [5 N
Operation_Type=2;
8 m, P2 u* o4 R/ I8 Sbreak;4 e4 N- Q. T% O& b& u
case 2: //東西向黃燈閃爍,綠燈關閉
7 l4 g- s3 R$ @9 O7 IDelayMS(300);( h; {' E9 B4 X$ {
YELLOW_A=~YELLOW_A;GREEN_A=1;. z. N* Y8 W$ P% W; K. D
if(++Flash_Count!=10) return; //閃爍 5 次9 R) t+ x% G& @4 g0 }2 P ~
Flash_Count=0;% p, ^8 w, b8 ]) ~$ M; r
Operation_Type=3;" Z `% s2 Y2 F+ o s* K
break;
. O$ w- R% v' {case 3: //東西向紅燈,南北向綠燈亮
! T3 v# o( e) q8 f& dRED_A=0;YELLOW_A=1;GREEN_A=1;
9 d _8 K" `" S. qRED_B=1;YELLOW_B=1;GREEN_B=0;! N! e" F/ t* R
DelayMS(2000);" v: [/ U% k' o" B' ?4 Y/ ]3 D* ]
Operation_Type=4;
8 ?; J! T0 o% t1 bbreak;" I, K" Q, \5 y) r
case 4: //南北向黃燈閃爍 5 次
/ y2 Q/ ~7 y! W" n6 fDelayMS(300);
) v' j. e3 |$ x0 `! [3 pYELLOW_B=~YELLOW_B;GREEN_B=1;; F; \" q7 _4 P
if(++Flash_Count!=10) return;
* i7 \* u# k, ~- b( k& ~% F! T1 p6 o7 VFlash_Count=0;
; h6 Z% S L' F2 `7 v9 H yOperation_Type=1;
4 L" d! C9 c; m* b& `' Q}
. ~- K7 m) j( D5 k; j}
/ L2 b: h1 G9 N+ N' u* t( w//主程序, v3 a& W; H; l, b) u
void main()3 M7 q; `6 B! E( p. ^; ]
{/ M$ y( F/ @6 C8 s. ?2 V- d
while(1) Traffic_Light();
7 x: a; @* J2 c' K; c$ h0 S" L6 T}
# F7 F& c3 |# Z* J) O% g
; o" H( f0 a+ N% T, A: ?% K
6 D! c( b0 Y8 B; t c$ A( ?7 C
- j4 r* U! v8 V$ \: h5 Y0 S |
|