|
5-交通燈.png (13.05 KB, 下載次數: 45)
下載附件
保存到相冊
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數: 38)
下載附件
保存到相冊
2018-6-21 09:03 上傳
$ i" Z( p( N1 B/ E#include<reg51.h>( j s) b. x! u, l+ y6 K0 A
#define uchar unsigned char
7 w+ [( |( E6 \4 B$ i#define uint unsigned int) H: r) E% p Q8 D$ O- @ I; [/ i2 U
sbit RED_A=P0^0; //東西向燈7 O8 c% Q4 o" U7 }% d, y
sbit YELLOW_A=P0^1;/ a* E: N% X2 A: `7 ` O" n
sbit GREEN_A=P0^2;
9 z4 N/ Y: r4 D/ g& o' z, `sbit RED_B=P0^3; //南北向燈; u/ F% N0 z. g1 R! Y2 p
sbit YELLOW_B=P0^4;
& p0 o+ h% G* c& X+ l! `sbit GREEN_B=P0^5;
: |, C* X! X; t6 t2 b: Wuchar Flash_Count=0,Operation_Type=1; //閃爍次數,操作類型變量
$ t' w! g% V) o' k2 }5 b
0 h6 D8 b/ }& U0 f//延時
- Q6 I3 x( b& m4 Y# m* qvoid DelayMS(uint x)
/ C( s2 k7 M& g( ^ {" l: R+ c{/ e. |: Q8 X( r; u! J
uchar i;
5 t) w/ B! [( D( xwhile(x--) for(i=0;i<120;i++);+ Q/ ?0 `( `. z" E$ `
}' k3 F3 O2 V/ z! @
//交通燈切換
; b8 l8 q7 G, o) Z! g% Lvoid Traffic_Light()7 j9 g6 [, V6 Q0 @: n0 o3 ~
{
2 ]1 @2 s2 n1 V; t! Y) l6 Mswitch(Operation_Type): _6 m+ g i" d, I
{
. k- `- V: n" u" M3 i. ucase 1: //東西向綠燈與南北向紅燈亮
3 J3 E: ]8 T* W# ORED_A=1;YELLOW_A=1;GREEN_A=0;- a3 g* n9 h* I. d
RED_B=0;YELLOW_B=1;GREEN_B=1;/ P. H( I) ^, M$ n
DelayMS(2000);: v1 Z1 S& Q4 Z: k; X( {
Operation_Type=2;! I1 D0 m( R+ p: ?1 P: ~) B O
break;% g1 r+ O: q- q9 i
case 2: //東西向黃燈閃爍,綠燈關閉9 ^4 {# n* V" S y8 T; ~. C
DelayMS(300);7 |8 N5 U; ?- k- r. x( Q
YELLOW_A=~YELLOW_A;GREEN_A=1;
2 z, K* a3 l( g# N0 hif(++Flash_Count!=10) return; //閃爍 5 次0 L, L. P! M% n; ^
Flash_Count=0;, |' ]: _( A! Q% M( r! u4 q5 W! T8 b
Operation_Type=3;; w5 _, L2 s( q, r4 P
break;
) s: p- I4 M# t2 J1 ], ]case 3: //東西向紅燈,南北向綠燈亮4 e' A0 c+ ? ^1 |/ ]! e8 Z
RED_A=0;YELLOW_A=1;GREEN_A=1;
& B6 N" V/ r. v# VRED_B=1;YELLOW_B=1;GREEN_B=0;
+ H6 F4 x" s& e5 q& _DelayMS(2000);
& _5 ?' ]& e9 ~ R- DOperation_Type=4;
! K& M( i" H( d9 m; Zbreak;* m5 N+ G9 A. p% h
case 4: //南北向黃燈閃爍 5 次
$ ~, `8 B5 L. Y( N+ gDelayMS(300);4 }8 {( Q6 r% W$ l$ L
YELLOW_B=~YELLOW_B;GREEN_B=1; s! J* R8 {# Q4 H8 g8 D! g: N6 X
if(++Flash_Count!=10) return;
' s% h$ G7 N) D9 mFlash_Count=0;
/ H- f1 y1 S, j0 ~! z6 _0 |0 FOperation_Type=1;
0 k( \- A/ ~; D( t) L/ `: T}
- Z. H; c; j* d& x9 g+ n2 [}: Q* X9 i6 C* e2 D7 E! x" F0 ?
//主程序
+ K7 M3 j; q) p( ^7 `1 fvoid main()
+ U; i; e, `" X$ e& ?1 ?- { z, @* X{
/ f! S" s& X) v2 m5 Q3 `+ `while(1) Traffic_Light();
. j2 r) f( g3 |9 E5 x4 ?3 E} $ c- d3 F* |2 @$ E! v$ Z7 P
4 {9 @( G4 K0 Z7 [0 U$ K" Z9 r2 B1 b, k( p
% v9 O* N: @, r# @
|
|