|
5-交通燈.png (13.05 KB, 下載次數: 42)
下載附件
保存到相冊
2018-6-21 09:03 上傳
5-1交通燈.png (11.54 KB, 下載次數: 35)
下載附件
保存到相冊
2018-6-21 09:03 上傳
# Q. t, n0 q& T& z1 z4 ?8 Z#include<reg51.h>9 j+ u$ I& Y l
#define uchar unsigned char
7 \# [1 N) A! q0 R" w#define uint unsigned int/ _( h2 i& _+ J0 g% e
sbit RED_A=P0^0; //東西向燈
% V" _% O/ W2 e! d) J% m7 }+ w+ ?sbit YELLOW_A=P0^1;
t9 y- M: L" r- ?7 M8 G2 Ssbit GREEN_A=P0^2;
7 E# { [ [4 B6 Ksbit RED_B=P0^3; //南北向燈
`( a/ p) I& B2 U* B. Isbit YELLOW_B=P0^4;
' | A/ l& j( O6 a& R& }sbit GREEN_B=P0^5;
: [4 G2 H5 B/ e# Iuchar Flash_Count=0,Operation_Type=1; //閃爍次數,操作類型變量 - ~6 o5 V$ C; c' a
: c) z" e6 Z" w6 m1 _2 c% @) s//延時
% J w, z1 T1 R mvoid DelayMS(uint x)
1 L! u7 U/ Y: i0 {# w{
+ ^' P7 U [& m' S) tuchar i;# o1 H5 b# Z/ R8 T2 M
while(x--) for(i=0;i<120;i++);
( c0 k6 s; }. I; p% `- w% l4 d}% G5 R& S$ L2 k9 O6 G+ x
//交通燈切換
' k+ l' V; T6 D) {/ K- z8 T+ i8 Jvoid Traffic_Light()7 e0 u& s: u4 O6 z
{
8 D2 j9 c: `- Bswitch(Operation_Type)
: y& s7 I8 Z7 y# }& \+ t" s+ R! f{# s8 D& M1 Q" m" E$ H4 V3 c; h: A, H
case 1: //東西向綠燈與南北向紅燈亮
?% K# z9 _" B! V) i! p, j4 hRED_A=1;YELLOW_A=1;GREEN_A=0;3 D; p0 o `. [' n. f. j0 Y4 w
RED_B=0;YELLOW_B=1;GREEN_B=1;' p. v9 x5 J7 P5 e* f$ V
DelayMS(2000);6 p/ x1 f. T( ~! H( y: ?, p
Operation_Type=2;
" k, v. |/ S; o& E# Sbreak;
: a! n" N' W2 [. u/ L! t" a( xcase 2: //東西向黃燈閃爍,綠燈關閉
' |6 ^: i4 d' ^5 v% q7 ^DelayMS(300);# T# K5 o! c) S( I; V) @
YELLOW_A=~YELLOW_A;GREEN_A=1;
* X* [) ^7 _: A* D' `# h- tif(++Flash_Count!=10) return; //閃爍 5 次$ H i& T7 f& d# L8 [8 k8 h
Flash_Count=0;0 Y: M" K) n0 p$ n# f- j, ]6 a
Operation_Type=3;8 d: V5 U# @1 t- |
break;
3 `" W' b) o, Mcase 3: //東西向紅燈,南北向綠燈亮# m3 ~( m0 d5 K: r
RED_A=0;YELLOW_A=1;GREEN_A=1;
$ m- w7 _9 j7 jRED_B=1;YELLOW_B=1;GREEN_B=0;$ t) @- J9 _* I% E3 o9 r
DelayMS(2000);$ E* v8 X: ^% f8 J2 l& |, g
Operation_Type=4;4 O' d% D7 m' V
break;8 d; f3 P: y# G5 s, H
case 4: //南北向黃燈閃爍 5 次
" f- ]3 X3 P" e( q" ZDelayMS(300);. f7 l8 F) A2 l% q6 n, W8 o
YELLOW_B=~YELLOW_B;GREEN_B=1;
; x9 M U2 l7 f7 |7 C( d; Xif(++Flash_Count!=10) return;8 h' n8 X6 W/ j1 t4 m; R+ f
Flash_Count=0;7 V0 L7 \+ o2 A9 U# W
Operation_Type=1;
2 Z, u9 R7 V* a& D* E) |1 U}
6 l8 Y6 B- y$ e4 v+ \" {}# I* R! b, M+ S; Q# T: y
//主程序 m2 K; t5 |5 G: Y C+ d
void main()
$ c1 k3 e; g9 B" R9 G0 i" `{
. t! {, e) _- ywhile(1) Traffic_Light();: B% G% K3 r: @- G* v! T
}
* h* k$ h$ b( E1 P; S' o$ I& g
5 o$ ^- O1 G% O: G6 }+ ^2 H* ]7 P2 }' H5 K8 Q$ a
2 X8 F. l, G" t
|
|