机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2905|回复: 0
打印 上一主题 下一主题

5-LED模拟交通灯单片机C语言程序设计实训100例

[复制链接]
跳转到指定楼层
1#
发表于 2018-6-21 09:06:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
$ ]$ m, L6 [9 H+ _& s! G+ W
#include<reg51.h># z% O% y1 D- a) M2 Q
#define uchar unsigned char  Q6 }4 D% {  Q8 w1 ?! W
#define uint unsigned int
5 m5 D9 p8 V9 Q7 P! _. Zsbit RED_A=P0^0; //东西向灯: Q  }' e. B- A* {$ M! v, r1 S
sbit YELLOW_A=P0^1;
1 v' ]. ~" p& R0 \% P/ }! [" msbit GREEN_A=P0^2;$ |7 f7 ?2 W4 X: c" U
sbit RED_B=P0^3; //南北向灯
$ `, e, a' p& q+ asbit YELLOW_B=P0^4;; i5 d9 h, M1 z. N& K/ d
sbit GREEN_B=P0^5;  `( t: B8 }$ y7 j: L
uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量  
# c* t/ \8 Z" g3 i  R1 {+ p4 x. ^( u: c5 R
//延时/ C4 T) x  m& h8 U2 b4 i/ _' d$ s
void DelayMS(uint x)" ]! s- I# ?( Z+ A; j7 {8 Q
{
$ @8 ^5 q( P( P, V+ g+ s( {/ o( D% ouchar i;4 B6 C0 X% I# J2 m. i& j) g3 s
while(x--) for(i=0;i<120;i++);2 e# z& K7 s' x1 S9 d# h; `
}
  m7 X8 z# {6 C, M! Q//交通灯切换; C9 g4 f7 A2 u' a4 i
void Traffic_Light()8 M# ?5 l* U$ w& e) q7 X6 x! v# y
{
9 Z' ]# ]9 d7 i) g& S5 E9 aswitch(Operation_Type)
% M' Y' R, X% ^3 }& G( ?{
2 X3 v0 I2 o' Y4 J: Jcase 1: //东西向绿灯与南北向红灯亮$ x) {' V3 g, ~7 g  U
RED_A=1;YELLOW_A=1;GREEN_A=0;
7 U6 F! E+ g7 t* w& h# nRED_B=0;YELLOW_B=1;GREEN_B=1;
3 H4 e! B3 E2 L' vDelayMS(2000);. L# ^2 X( r6 A- i7 D) \
Operation_Type=2;
) E8 d! s. o& n- }" J) _; Z" P* P; ~break;
7 L# @, S  E, N% Ncase 2: //东西向黄灯闪烁,绿灯关闭
0 M5 ~! H( R( X  ?7 v% S1 PDelayMS(300);
% o+ G& ?  v& M9 F" k. a6 n. \4 dYELLOW_A=~YELLOW_A;GREEN_A=1;
8 e5 e" g: q* }0 Q- l/ c. s3 s/ }if(++Flash_Count!=10) return; //闪烁 5 次
& g9 S5 A/ W% h  m% |Flash_Count=0;
0 ~7 Q7 O9 P( `/ x$ {2 }& ]% d( JOperation_Type=3;7 {# R" g# e" F% X
break;2 V0 ^( |- \2 _4 d( K& l6 V4 E
case 3: //东西向红灯,南北向绿灯亮
* c) n# c2 C; R( S, R& R7 |RED_A=0;YELLOW_A=1;GREEN_A=1;
" A$ s" Z( Z  Y; p+ m7 ORED_B=1;YELLOW_B=1;GREEN_B=0;" v( Q7 J! ?% C- P3 d% Z
DelayMS(2000);
( n. P9 E8 S. \- w. S) VOperation_Type=4;
/ m! k& M" |7 W9 t* ]6 Vbreak;/ T, k9 N3 i! F0 @% d4 @$ A% E
case 4: //南北向黄灯闪烁 5 次
6 ?2 ]$ |0 G7 b) H7 RDelayMS(300);' S2 z' k4 H$ d/ _) d, h+ f8 v
YELLOW_B=~YELLOW_B;GREEN_B=1;
) q; X* E  v* [if(++Flash_Count!=10) return;* w0 n- W7 U2 x! ?
Flash_Count=0;
, m2 d. G& b+ K% I, g0 gOperation_Type=1;8 {$ ~6 ?7 @4 b' f+ p: [
}& V9 _2 M8 `6 d) X3 S1 \$ r7 r
}
% i. U; |7 F9 G$ I( G! M& D6 S//主程序. y/ A& [& I) Z& |4 x! d- @* E; R
void main()
! E5 z. d* r$ s' x! k1 R{; I/ T5 q- S4 k; L& s
while(1) Traffic_Light();
: b9 Y6 U! Q1 Z3 p; v}    @, s; `) Y" p+ |3 n

% J; P5 h5 y/ G7 u9 j  z
$ E9 D. i) L/ O+ p& c) K0 O+ v* G
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-2-19 07:19 , Processed in 0.054181 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表