机械必威体育网址
标题:
5-LED模拟交通灯单片机C语言程序设计实训100例
[打印本页]
作者:
2369353531
时间:
2018-6-21 09:06
标题:
5-LED模拟交通灯单片机C语言程序设计实训100例
(, 下载次数: 31)
上传
点击文件名下载附件
下载积分: 威望 -10 点
(, 下载次数: 26)
上传
点击文件名下载附件
下载积分: 威望 -10 点
& j* {. |. c+ n# S7 u4 f8 E
#include<reg51.h>
7 |3 R9 L+ R/ p% T
#define uchar unsigned char
[" R- S5 u9 Q# m. d
#define uint unsigned int
5 a0 u5 N% L2 k; E( R. S5 p
sbit RED_A=P0^0; //东西向灯
& [3 J4 P- l( I0 b4 A( r
sbit YELLOW_A=P0^1;
/ n4 _# x! G2 f9 S3 T! l$ V6 `5 ?
sbit GREEN_A=P0^2;
8 d/ Z, L) R3 T0 c9 n+ v- x
sbit RED_B=P0^3; //南北向灯
# m( T6 j; ?/ y' ^
sbit YELLOW_B=P0^4;
6 l. w3 o7 b" {* E0 c- @
sbit GREEN_B=P0^5;
5 A& i* t1 J/ B6 p" a
uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量
+ @; ^% X! \) l1 j
( j C. j9 S& e w, e
//延时
" R h0 e( t }# v( C
void DelayMS(uint x)
! o# n7 c! r# m" L1 O Z
{
3 q* [# h) t- u5 C5 @- n
uchar i;
6 ^ m# K t5 U v$ d
while(x--) for(i=0;i<120;i++);
; x t+ K j$ l6 q. V; c5 i k) w
}
3 b; f+ ^3 D$ G, m! K
//交通灯切换
, M% e1 y% Q! F; W, I
void Traffic_Light()
6 I9 r) t& Y& I
{
* w% O# I9 |+ i, _
switch(Operation_Type)
+ h' j3 T/ t, Q) W
{
- Q+ t, o3 l2 B6 b" T* k
case 1: //东西向绿灯与南北向红灯亮
- l6 N6 w/ i2 u, ~* t* a
RED_A=1;YELLOW_A=1;GREEN_A=0;
$ ~& Z4 X- Q3 J4 s( X
RED_B=0;YELLOW_B=1;GREEN_B=1;
) Y1 q7 }! B5 k) z
DelayMS(2000);
$ X/ J# s* k3 L, {3 J+ ]# w
Operation_Type=2;
, [! p) Q! O0 t
break;
: Y5 v3 X/ g' y, N, {
case 2: //东西向黄灯闪烁,绿灯关闭
6 d* I) Y0 M" G5 X# E
DelayMS(300);
1 v- j4 V. @& q! s U
YELLOW_A=~YELLOW_A;GREEN_A=1;
9 V" b, t3 A0 u2 D+ t
if(++Flash_Count!=10) return; //闪烁 5 次
- j O) @1 _1 c: T4 t J
Flash_Count=0;
; E1 r/ p- x+ w
Operation_Type=3;
! B! \' N* S* r% o+ I+ x" |$ n
break;
* D5 n4 N. M9 u* ^1 y4 V
case 3: //东西向红灯,南北向绿灯亮
- y& F6 }$ q6 b, x
RED_A=0;YELLOW_A=1;GREEN_A=1;
1 |4 c. C2 B5 H2 S0 g# P
RED_B=1;YELLOW_B=1;GREEN_B=0;
$ @; j# t/ w; H. [7 M# ^6 X' y3 E
DelayMS(2000);
8 j% s0 \( S( E+ T) g2 j0 Z& o
Operation_Type=4;
- `% e0 k/ S8 Y, N% O
break;
1 [2 g; g v& H4 R8 B! C. s
case 4: //南北向黄灯闪烁 5 次
1 }/ \* J# J7 W! l) r8 b
DelayMS(300);
& A) I' m+ m3 p y" E2 D0 f
YELLOW_B=~YELLOW_B;GREEN_B=1;
, B; H, [$ R& E
if(++Flash_Count!=10) return;
. P0 K# S# |1 q' ?' B
Flash_Count=0;
) E. s& l. b& q( I4 k; Y
Operation_Type=1;
a4 x8 m1 N* P, e) ^4 P
}
' o" n9 W) N* d; T
}
+ \0 h0 o/ p6 \1 J; j( L% O6 C
//主程序
m$ t& _$ i. N- T& q
void main()
: a5 p* v3 c+ `0 e. y
{
. d& C) g$ A7 }& M) p
while(1) Traffic_Light();
$ I0 S- R1 q8 \1 q
}
& {; R) A& D$ L8 R; a/ O! G
- K, i7 k" h1 n- X# J/ ~! n
1 V: ^: g% ^7 K! b1 E& @
* O( c) u: n) b
欢迎光临 机械必威体育网址 (//www.szfco.com/)
Powered by Discuz! X3.4