机械必威体育网址
标题:
5-LED模拟交通灯单片机C语言程序设计实训100例
[打印本页]
作者:
2369353531
时间:
2018-6-21 09:06
标题:
5-LED模拟交通灯单片机C语言程序设计实训100例
(, 下载次数: 35)
上传
点击文件名下载附件
下载积分: 威望 -10 点
(, 下载次数: 30)
上传
点击文件名下载附件
下载积分: 威望 -10 点
% T3 X. G/ I. @: S7 ?. u* u
#include<reg51.h>
* y7 O; j5 a' E! z9 E
#define uchar unsigned char
/ G+ Z2 y9 l+ B) D' |/ b( l
#define uint unsigned int
4 @3 _: @) n' N; m0 ] A3 D2 R
sbit RED_A=P0^0; //东西向灯
" l/ u$ w9 d9 J: u% d
sbit YELLOW_A=P0^1;
9 l% x! G/ x* F, i g7 q% I# r( z' q
sbit GREEN_A=P0^2;
8 o2 N/ e% Y6 J* }% L$ }
sbit RED_B=P0^3; //南北向灯
' i: m1 \2 a. \& n
sbit YELLOW_B=P0^4;
& ]0 X" c/ ]5 n1 Q$ g# ]2 _
sbit GREEN_B=P0^5;
- p) I' I- t# }% S8 @7 O6 R
uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量
0 X/ V& _+ d3 K3 `
( F3 h$ K( ~1 Y
//延时
3 v7 z- T9 z) y9 d8 G1 z
void DelayMS(uint x)
8 ] _2 H9 A5 l5 S/ ?& F
{
) h# }/ {9 b* A) g9 Z3 W
uchar i;
. Z" g' I' D# w9 z% @/ q' u9 ]
while(x--) for(i=0;i<120;i++);
1 I7 x. q+ t9 |5 ?5 e5 f$ R+ g# u
}
6 ~4 i9 J I& A. |$ u
//交通灯切换
, ~$ K T4 x4 {! X# o/ @' N
void Traffic_Light()
: B B7 I* Q$ e, {) H3 g
{
) O3 y( T. O0 I) x& W" a9 N
switch(Operation_Type)
6 y6 B& ~$ W( X' K3 K! z
{
$ W& p E) X0 p e
case 1: //东西向绿灯与南北向红灯亮
# T$ B) X* a# u4 X- q! w
RED_A=1;YELLOW_A=1;GREEN_A=0;
; b* c) |6 W: n$ O' Q4 {
RED_B=0;YELLOW_B=1;GREEN_B=1;
+ z* \* h8 F6 o0 V3 {3 `$ J
DelayMS(2000);
9 L4 {0 j3 G( |. v4 J
Operation_Type=2;
0 P* N# F" C7 q) Q1 [) i# X6 R
break;
; p1 l; l3 D3 R
case 2: //东西向黄灯闪烁,绿灯关闭
9 n6 p' x% J2 _; B& m/ a7 d
DelayMS(300);
7 G- A. @7 C* j- f" o
YELLOW_A=~YELLOW_A;GREEN_A=1;
2 ?5 ~5 W* b! P# O
if(++Flash_Count!=10) return; //闪烁 5 次
) Q7 t5 H& J! L! X0 H
Flash_Count=0;
% ~5 L( j9 d. D J; ^
Operation_Type=3;
9 {6 j4 U1 ], |3 m6 q0 \1 G' |! c* e
break;
( N4 ~6 O) }. W x1 [1 F- Z! F, {
case 3: //东西向红灯,南北向绿灯亮
6 ?( P6 S( P3 c
RED_A=0;YELLOW_A=1;GREEN_A=1;
/ n( Y$ u ^- ? S6 b
RED_B=1;YELLOW_B=1;GREEN_B=0;
9 Z8 v7 E# c; I9 e. c; c
DelayMS(2000);
' [ Z2 o6 ]& _( o& @
Operation_Type=4;
6 f% D% S$ z) c* L* t+ `
break;
8 [' X1 w% D' U) k2 T& j
case 4: //南北向黄灯闪烁 5 次
% Q4 X" ^* O V# f; l2 u, W" X
DelayMS(300);
" _- Q+ B4 x9 r H6 |9 \" D+ Z- {! ]& S
YELLOW_B=~YELLOW_B;GREEN_B=1;
2 ]3 t( F: _7 n m
if(++Flash_Count!=10) return;
3 v" Q( V' M. A
Flash_Count=0;
& }1 Z( g5 J* m- Y( `3 h( }
Operation_Type=1;
, g6 ~: O$ O# B& B, `, S5 h
}
; x, I( |& {9 v; e! k- K+ k
}
, e8 E4 F( b( a, t' s
//主程序
' D, D1 M7 |( d n1 ^
void main()
' d: s' [7 V0 s
{
, g2 m" j9 z3 J1 x
while(1) Traffic_Light();
1 j( k4 M0 p2 c# I, m/ u- |( u( e
}
2 x5 [1 i! ]% c% v* [0 W2 u
" `2 \9 e" z5 ]4 N5 d2 N8 b
0 I* o+ W1 M2 x* H' ?( x
h+ W, I9 e& l) i" ]% }$ L
欢迎光临 机械必威体育网址 (//www.szfco.com/)
Powered by Discuz! X3.4