|
5-交通燈.png (13.05 KB, 下載次數: 42)
下載附件
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數: 35)
下載附件
2018-6-21 09:03 上傳
& X A' e& |' K% L
#include<reg51.h>% c6 m" a' A/ U! x* S- _/ v
#define uchar unsigned char
% R6 O/ `" k3 e- Y0 B#define uint unsigned int6 `3 o. @5 M0 L4 ~, ?; E7 m$ U6 W
sbit RED_A=P0^0; //東西向燈
: l* g/ ?$ |1 k( E( N) S, {1 Csbit YELLOW_A=P0^1;
b3 B( d' z! a Y+ _$ Qsbit GREEN_A=P0^2;
% T8 j8 x( f( q. U5 \# l9 z0 b3 ssbit RED_B=P0^3; //南北向燈5 P' G3 U5 w" c0 A
sbit YELLOW_B=P0^4;
% z) d/ e7 e* ]; c* |! |+ R' Zsbit GREEN_B=P0^5;
. E( |. Q1 S- J- P3 u7 nuchar Flash_Count=0,Operation_Type=1; //閃爍次數,操作類型變量 1 Z' \3 Y! m2 S# b! t
" c1 \3 ~, u/ } x7 _//延時
7 D+ |8 R. s0 H# c( G' l, b/ nvoid DelayMS(uint x)
' k4 H a$ @+ G1 Z{
: c% z! `! c) H; C. m" g/ M- Fuchar i;
! H; v% n2 \/ J1 S( p. Dwhile(x--) for(i=0;i<120;i++);
# O# Z$ b8 U0 ]$ Z}
' R, y: G' I4 B, ^) `4 B" N//交通燈切換
" M) o9 q! V, r1 o& Vvoid Traffic_Light()
# x4 ^1 P. i' L" L+ A{$ S$ _% ?6 |% S8 G! u0 N6 d3 c
switch(Operation_Type)
' x, Z# h- A1 w' e' b5 [{* c' W9 z2 f+ [% o. Y2 q
case 1: //東西向綠燈與南北向紅燈亮
( d2 M; k9 r* x; ]& J' Z8 ^. tRED_A=1;YELLOW_A=1;GREEN_A=0;# h+ @: Z& `" D
RED_B=0;YELLOW_B=1;GREEN_B=1;* \, d6 ]% J. K: L. ~ ~
DelayMS(2000);
# S$ L* T. f; P9 O2 E! [Operation_Type=2;
5 P1 D N: n9 C; H9 Bbreak;$ W7 n. D0 }' N I/ `, _
case 2: //東西向黃燈閃爍,綠燈關閉1 j( ^( S+ K, ^! `+ m3 z+ ^
DelayMS(300);
! H( x6 W' q1 W" x, E8 q' DYELLOW_A=~YELLOW_A;GREEN_A=1;
) J" C0 `. q7 m7 L* F. |$ }if(++Flash_Count!=10) return; //閃爍 5 次
# c0 f8 v" p" q; s0 AFlash_Count=0;3 V; N5 F! S( ~8 s& _8 \2 C* v
Operation_Type=3;0 j1 q/ r5 W- q0 ~% [- \" b n
break;
: s0 s( {2 l' d$ h% n9 ccase 3: //東西向紅燈,南北向綠燈亮2 C4 j2 @% I [3 H2 M, B8 y
RED_A=0;YELLOW_A=1;GREEN_A=1;
4 h9 j1 D- G% ]4 _. y3 ~: aRED_B=1;YELLOW_B=1;GREEN_B=0;
/ d" J0 N) }6 ?; |* g3 p! C" qDelayMS(2000);
* J, V2 J; e+ O3 D0 }- |Operation_Type=4;/ k& Q7 S6 n' Y7 o( B
break;
5 n/ T4 m6 q a$ c. l. Y" ]case 4: //南北向黃燈閃爍 5 次
. U' W0 z5 X6 R. {* f) UDelayMS(300);- L$ C- B9 ~" Z5 ~1 U+ d+ p
YELLOW_B=~YELLOW_B;GREEN_B=1;. e+ q) [4 l! g s! R! I
if(++Flash_Count!=10) return;
/ h5 k. H6 s% U7 k) C# pFlash_Count=0;
# _' @. U- q" X' y( |2 ROperation_Type=1;
5 }: [$ t& s" D5 K' h: v}
' h1 h2 d3 R9 y8 U/ g6 }; z6 A6 t}
`% q6 N5 U3 _$ d( x/ V//主程序* y7 ?. L4 i1 h$ j1 B
void main(): ~. }& |$ x; {
{
9 U; O4 g7 V4 D3 r- h: f# ]9 {while(1) Traffic_Light();
0 P9 m/ o6 n1 g' x- R E3 G} ; m' ~. H8 S. n! w6 X
0 B2 J) @; E! X- S3 X. u! P$ v. l# W
# U! Q- j& i+ z! ]0 r% I5 R1 A z
3 h5 R6 C4 A' _2 _7 _3 f
|
|