机械必威体育网址

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

作者: 2369353531    时间: 2018-6-21 09:06
标题: 5-LED模拟交通灯单片机C语言程序设计实训100例
(, 下载次数: 35) (, 下载次数: 30) % 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 int4 @3 _: @) n' N; m0 ]  A3 D2 R
sbit RED_A=P0^0; //东西向灯
" l/ u$ w9 d9 J: u% dsbit YELLOW_A=P0^1;
9 l% x! G/ x* F, i  g7 q% I# r( z' qsbit 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 zvoid 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 Nswitch(Operation_Type)6 y6 B& ~$ W( X' K3 K! z
{
$ W& p  E) X0 p  ecase 1: //东西向绿灯与南北向红灯亮
# T$ B) X* a# u4 X- q! wRED_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 JOperation_Type=2;
0 P* N# F" C7 q) Q1 [) i# X6 Rbreak;
; p1 l; l3 D3 Rcase 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# Oif(++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 cRED_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" XDelayMS(300);" _- Q+ B4 x9 r  H6 |9 \" D+ Z- {! ]& S
YELLOW_B=~YELLOW_B;GREEN_B=1;
2 ]3 t( F: _7 n  mif(++Flash_Count!=10) return;
3 v" Q( V' M. AFlash_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 xwhile(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