机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2018-6-21 09:06:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

( U' E8 l5 v; s* ^#include<reg51.h>% o$ d! q+ G+ a* O
#define uchar unsigned char
$ I. F: H; t( |7 a#define uint unsigned int
5 D% n" `' R4 `. V5 v+ s7 \sbit RED_A=P0^0; //东西向灯
. C* e  Q* s0 I2 u3 Y) Tsbit YELLOW_A=P0^1;
% `" Z1 o, n1 ~9 lsbit GREEN_A=P0^2;
* i- T2 I( R8 ?/ e$ W2 x7 Nsbit RED_B=P0^3; //南北向灯" r2 E2 p" o& G- x3 b2 w; e
sbit YELLOW_B=P0^4;- _  P2 R$ O2 [  D9 K+ x. j
sbit GREEN_B=P0^5;
! s7 k  r/ T3 ?) V1 Xuchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量  2 o+ n1 V" H# Z. _9 _7 ~3 [3 Z

% u# ^4 Z! T6 W//延时7 V% V/ s7 F( x' B0 y
void DelayMS(uint x)& S( N. Y! H6 b. S( f% @2 F
{
0 v! d9 l6 T4 E% S  l( ]* _; |uchar i;
: @# F( r- D, k2 c7 o7 [: O/ Z& N& kwhile(x--) for(i=0;i<120;i++);
5 X* {1 D" W9 a1 j}% w3 M6 h; P, ]
//交通灯切换
+ g, ~8 \  e. f  P- G4 vvoid Traffic_Light()
: `+ i  }+ c3 M  P{
4 x" [5 [! |+ _. wswitch(Operation_Type)/ i. C- M- t1 w- u. f
{
  ^1 Q! V' ?( Z* B( I! Q7 Ycase 1: //东西向绿灯与南北向红灯亮
" l7 ]3 @5 H# aRED_A=1;YELLOW_A=1;GREEN_A=0;
& t8 J* ]: _/ z. k0 ?" O, V  T. n0 TRED_B=0;YELLOW_B=1;GREEN_B=1;
6 f& x* n3 k1 x$ ^/ RDelayMS(2000);
# K! r0 b' A. c3 V) |  D. K" UOperation_Type=2;4 W' f) N9 Q5 F8 X% z6 S
break;" u$ }5 w( [" }! A  v' v2 r5 _
case 2: //东西向黄灯闪烁,绿灯关闭
. X/ Y# M/ O9 h9 FDelayMS(300);
' k+ K* K% i3 l, h6 ?0 Z% G/ g5 [. |YELLOW_A=~YELLOW_A;GREEN_A=1;
( ]9 U! q8 j& Gif(++Flash_Count!=10) return; //闪烁 5 次
3 T/ ^% `2 k; V1 r( z9 Z: j7 UFlash_Count=0;
( T9 C" ?( K, X$ W: [, E! Z% bOperation_Type=3;
8 a5 Q' s2 v2 G. ]1 F0 vbreak;
* u& I4 Y: o2 icase 3: //东西向红灯,南北向绿灯亮/ G' p) e. I. @* `  U9 E. N8 Y
RED_A=0;YELLOW_A=1;GREEN_A=1;
" P/ _, M9 W- C! F5 j% G5 @9 d) f. E' pRED_B=1;YELLOW_B=1;GREEN_B=0;3 A$ q' j3 E  f% v% E
DelayMS(2000);. @: |$ p1 t! J6 d6 U8 y+ ^3 a
Operation_Type=4;
; }+ ~% z) Z+ Bbreak;1 a1 j+ x, r1 F* O2 b' E" S3 ]" N, Z
case 4: //南北向黄灯闪烁 5 次
: A4 W: P" O6 ^8 _6 ^DelayMS(300);# t8 K" Z& D% t$ ?9 R
YELLOW_B=~YELLOW_B;GREEN_B=1;
. B7 D0 M# w% l: `6 M$ Cif(++Flash_Count!=10) return;$ {8 U: T, o) W# z5 X
Flash_Count=0;
. _  @) \% a* O$ EOperation_Type=1;
( ~6 a7 v- {. K) K' t; K3 Y6 G}8 g2 S8 M5 Q( }* _' }, T) m
}) l) p* J9 x' X% E3 r
//主程序1 w) T) J2 J, g7 ^( t0 b" j0 I( [
void main()/ S4 W* T% @6 z4 v1 g- d" a
{
6 j. [2 n# L6 {1 y& T9 r4 W& Gwhile(1) Traffic_Light();; y; u. D) V. l  P$ U9 P
}  
4 M' {) H- Y8 ~: }8 \' ~. _# C8 M, p( w" Q1 l( i# ?- ~( W, E

; p6 ~2 u+ W' U0 ?2 {& R' w5 A
% S( y; Y% C, n$ E" V
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-10 04:27 , Processed in 0.051072 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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