机械必威体育网址

标题: 5-LED模拟交通灯单片机C语言程序设计实训100例 [打印本页]

作者: 2369353531    时间: 2018-6-21 09:06
标题: 5-LED模拟交通灯单片机C语言程序设计实训100例
(, 下载次数: 31) (, 下载次数: 26)
& 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 psbit RED_A=P0^0; //东西向灯
& [3 J4 P- l( I0 b4 A( rsbit 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" auchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量  
+ @; ^% X! \) l1 j( j  C. j9 S& e  w, e
//延时
" R  h0 e( t  }# v( Cvoid 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$ dwhile(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) zDelayMS(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  JFlash_Count=0;
; E1 r/ p- x+ wOperation_Type=3;
! B! \' N* S* r% o+ I+ x" |$ nbreak;
* D5 n4 N. M9 u* ^1 y4 Vcase 3: //东西向红灯,南北向绿灯亮
- y& F6 }$ q6 b, xRED_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 EDelayMS(2000);
8 j% s0 \( S( E+ T) g2 j0 Z& oOperation_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 fYELLOW_B=~YELLOW_B;GREEN_B=1;, B; H, [$ R& E
if(++Flash_Count!=10) return;
. P0 K# S# |1 q' ?' BFlash_Count=0;
) E. s& l. b& q( I4 k; YOperation_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/ ~! n1 V: ^: g% ^7 K! b1 E& @

* O( c) u: n) b




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4