|
5-交通燈.png (13.05 KB, 下載次數(shù): 34)
下載附件
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數(shù): 27)
下載附件
2018-6-21 09:03 上傳
) l8 [; P4 r7 l* x4 M#include<reg51.h>5 a6 r7 p1 k/ O2 K1 c# f% }
#define uchar unsigned char) P, i; w4 ]& [- }% u% T& x! f
#define uint unsigned int
, q( o7 }' _4 Nsbit RED_A=P0^0; //東西向燈
: v5 x, ?& F" S" V7 n/ R: N. P$ ]0 v2 b" Hsbit YELLOW_A=P0^1;/ N$ s' @1 R: |! `2 l1 p* r
sbit GREEN_A=P0^2;
! k( R1 _! x: C* } Ssbit RED_B=P0^3; //南北向燈
: e8 V9 Y5 ?; `, p0 Wsbit YELLOW_B=P0^4;: P4 n) L1 y# C2 Q0 Z2 @$ E) ] c
sbit GREEN_B=P0^5;
, G% Z) g) D* E4 B4 ~ L; Kuchar Flash_Count=0,Operation_Type=1; //閃爍次數(shù),操作類型變量
: I1 Y) i& t6 s( C+ e+ `8 U; y: [
//延時(shí)
8 I; F E+ U; d+ a& ]void DelayMS(uint x)
$ f9 C n. ~; i" ?* L7 _2 j4 p/ g{
) j* C/ K+ ]& | f$ nuchar i;
4 G8 v$ w0 n) ^5 v7 j/ C- m; [while(x--) for(i=0;i<120;i++);9 L5 b6 j- O" D8 M" q8 o
}, n" I J. f4 s* Q" L0 ^3 g/ @( h, I
//交通燈切換& H! j6 F5 C9 A$ a6 }2 A
void Traffic_Light()
* d7 D5 E- @7 S2 J: ~. L{, C3 L8 w. a$ g! V; x x* K( V
switch(Operation_Type)
4 s3 V' s" [! O{! X* j3 V+ @- b1 _3 h6 q
case 1: //東西向綠燈與南北向紅燈亮6 i( \: _: e$ a" f
RED_A=1;YELLOW_A=1;GREEN_A=0;
0 `' `! Q0 F$ _1 C5 n; R& M4 URED_B=0;YELLOW_B=1;GREEN_B=1;
; K z. s/ Q0 j9 p6 SDelayMS(2000);
/ i5 V% z2 z2 w) e: s$ mOperation_Type=2;+ w( b5 d% ]' h T& Y* l4 J$ Y
break;
9 {5 g) |8 ?( n( T% Q/ z/ Mcase 2: //東西向黃燈閃爍,綠燈關(guān)閉5 b8 V1 L* w6 B& a
DelayMS(300);' }6 ~! c ]3 G, v
YELLOW_A=~YELLOW_A;GREEN_A=1;1 j+ y8 C" J1 o2 V d: r/ K+ w
if(++Flash_Count!=10) return; //閃爍 5 次" |( p. H, `( v; u
Flash_Count=0;) m2 v3 I4 o- j+ J
Operation_Type=3;$ P& ] _7 ^1 U$ f
break;$ `. y. \7 d9 Z$ z( [+ y# P1 o
case 3: //東西向紅燈,南北向綠燈亮1 {8 X& j2 X3 D7 B4 u
RED_A=0;YELLOW_A=1;GREEN_A=1;
: b N) _+ I) O+ _RED_B=1;YELLOW_B=1;GREEN_B=0;
% H2 W" h, S& k5 kDelayMS(2000);
6 ] Z8 `* T% E7 ^* _) k: KOperation_Type=4;
$ {' T& W& u4 n7 Ebreak;6 }1 c7 G8 y/ i" [
case 4: //南北向黃燈閃爍 5 次
( l$ P% X# J7 @7 d3 uDelayMS(300);. P5 {+ y, N) B; D5 q
YELLOW_B=~YELLOW_B;GREEN_B=1;
* u1 b8 f* f6 j; S! @. d9 Uif(++Flash_Count!=10) return;
" p" Y, E* P6 Z1 vFlash_Count=0;! t: N6 h+ _! P
Operation_Type=1;7 d5 y! j/ N* M
}
# u4 u! r2 k9 y6 M, g7 E8 B}; K0 Y8 O# R$ s- w) a; u j9 [! E
//主程序
9 u, v% K4 S _9 f* Uvoid main()
/ D' {, Q5 c5 d{8 f2 u; U) c" j
while(1) Traffic_Light();
* A3 S8 A8 @1 S' C0 K} 0 S* j* f$ v! L* y* s8 M
1 @$ |: v0 w; V
1 y/ ~ a+ F* F! v0 ? W8 K
) T3 e7 {- G+ c+ K9 q
|
|