|
5-交通燈.png (13.05 KB, 下載次數: 42)
下載附件
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數: 35)
下載附件
2018-6-21 09:03 上傳
, I D' k z% r# b. R0 o
#include<reg51.h>
. x4 C0 S, N0 A8 l) Y! L" u#define uchar unsigned char4 ^2 m; P$ F1 G
#define uint unsigned int2 w; {& O' l5 D* V7 H g3 \
sbit RED_A=P0^0; //東西向燈
4 W% g% J: c* i& b$ p& Z6 M: |5 {sbit YELLOW_A=P0^1;
8 F0 D7 I- l7 Osbit GREEN_A=P0^2;9 y9 j' T, l& H) T
sbit RED_B=P0^3; //南北向燈% p F8 ^' E' g0 J, F! q
sbit YELLOW_B=P0^4;' Y* k4 c! w6 j4 x2 n t
sbit GREEN_B=P0^5;. e" C) Q* ]8 \) o) A
uchar Flash_Count=0,Operation_Type=1; //閃爍次數,操作類型變量 3 a2 m$ T) i1 k2 Z. U7 x' j
' p# x' i+ \) q% X2 G' Y% S
//延時! F [( a# k' @! P" A
void DelayMS(uint x)
4 H: O' U7 Z& G- `+ M1 J{
3 n+ z' p O' c7 a# xuchar i;" h# x( o y. d" Z2 N3 H* F& K* Z
while(x--) for(i=0;i<120;i++);
3 T+ T2 n1 E/ a/ C& p& @1 J) |}2 |- u1 d; _. z# A( h- }0 W( u
//交通燈切換
: u* {5 @0 W- k/ Q2 Ovoid Traffic_Light()% z4 Y9 [# \. P
{5 Q; ~* |% P: j; `9 ?5 L$ e6 s0 u
switch(Operation_Type)
' Z1 w2 L* p$ x; I{+ Q! K' u* ?4 u. ~; F/ x
case 1: //東西向綠燈與南北向紅燈亮
; ~4 b8 f2 f/ r K' @3 \0 fRED_A=1;YELLOW_A=1;GREEN_A=0;
8 l. o* b1 H g$ l& g# wRED_B=0;YELLOW_B=1;GREEN_B=1;1 K( v' Z0 n+ R& D% d; G3 R) v
DelayMS(2000);
' k, L. i' S' Y/ @Operation_Type=2;
# P; Y; J0 N3 f3 d0 ^" F$ N9 M4 fbreak;
# s+ g0 b5 a/ Z# V. T2 |case 2: //東西向黃燈閃爍,綠燈關閉
* n: h3 o9 Q# a z9 cDelayMS(300);
. U% g' M; O! r4 cYELLOW_A=~YELLOW_A;GREEN_A=1;
- w B6 Z$ _- [9 w2 bif(++Flash_Count!=10) return; //閃爍 5 次
" ?$ X. h# [; \Flash_Count=0;9 T+ a- j" n+ \4 }
Operation_Type=3;& z. I! W9 W- N. z
break;
" Q4 @( {6 g2 bcase 3: //東西向紅燈,南北向綠燈亮9 W6 ^/ _) k) ?5 `- Z& [. V) H
RED_A=0;YELLOW_A=1;GREEN_A=1;5 J/ M' _3 c# P: A9 Y
RED_B=1;YELLOW_B=1;GREEN_B=0;
7 B* m0 Q& M3 F2 S# N3 ?DelayMS(2000);# I# v3 g: S7 Q* w! R' b
Operation_Type=4;
' L/ M& q: D7 p) y7 ~- ubreak;- a- _, n+ v1 N8 k0 n1 w1 k% S
case 4: //南北向黃燈閃爍 5 次 |* [8 Q" Y& V6 J" b
DelayMS(300);
. Y9 ~( q& x* K: X' XYELLOW_B=~YELLOW_B;GREEN_B=1;
2 ?' E$ r( Y* ~0 x, ^) s" ^if(++Flash_Count!=10) return;
7 Z# j O% F8 k* w0 t" |' M XFlash_Count=0;# B8 l" B9 a( K2 X* Z; c v& \+ t
Operation_Type=1;; e& J8 ^* Z& d! g7 M
}
. \0 G4 C4 O+ `# W" I}
9 \/ s `7 Y! ~6 O( T( y//主程序- e Y6 o' b" z* E/ o
void main()$ k- `1 z" n4 ? M- Z# J9 K' t
{6 [# ~6 I! v% Y* t
while(1) Traffic_Light();$ G7 t. e# r c. A/ V N. e
}
+ S* `: q7 ]4 X8 j7 ?
$ Y3 q$ t6 {0 e3 q: B' W9 C) G$ s0 j8 N! q# ~
8 E$ f7 {) L5 Q, c' [
|
|