单片机交通灯灯c语言程序,关于LED模拟交通灯单片机C语言程序设计 - 全文

本文为大家带来三个关于LED模拟交通灯单片机C语言程序设计。

关于LED模拟交通灯单片机C语言程序设计一

功能说明

东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

c语言程序

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitRED_A=P0^0;//东西向灯

sbitYELLOW_A=P0^1;

sbitGREEN_A=P0^2;

sbitRED_B=P0^3;//南北向灯

sbitYELLOW_B=P0^4;

sbitGREEN_B=P0^5;

ucharFlash_Count=0,OperaTIon_Type=1;//闪烁次数,操作类型变量

//延时

voidDelayMS(uintx)

{

uchari;

}

while(x--)for(i=0;i《120;i++);

//交通灯切换

voidTraffic_Light()

{

switch(OperaTIon_Type)

{

case1://东西向绿灯与南北向红灯亮

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

OperaTIon_Type=2;

break;

case2://东西向黄灯闪烁,绿灯关闭

DelayMS(300);

YELLOW_A=~YELLOW_A;GREEN_A=1;

if(++Flash_Count!=10)return;//闪烁5次

Flash_Count=0;

OperaTIon_Type=3;

break;

case3://东西向红灯,南北向绿灯亮

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type=4;

break;

case4://南北向黄灯闪烁5次

DelayMS(300);

YELLOW_B=~YELLOW_B;GREEN_B=1;

if(++Flash_Count!=10)return;

Flash_Count=0;

Operation_Type=1;

}

电路图

10b7f7c6b80a139831a6e7194ded4ce9.png

关于LED模拟交通灯单片机C语言程序设计二

功能说明

利用51单片机控制LED灯来模拟交通灯,通过控制时钟来控制LED

c语言程序

#include《reg51.h》

#defineucharunsignedchar

#defineuintunsignedint

sbitledns_re=P1^0;

sbitledns_ge=P1^1;

sbitledns_ye=P1^2;

sbitledwe_re=P1^3;

sbitledwe_ge=P1^4;

sbitledwe_ye=P1^5;

voiddelay(ucharz)

{

ucharx,y;

for(x=z;x》0;x--)

for(y=110;y》0;y--);

}

voidmain()

{

uinti;

while(1)

{

ledns_re=0;

ledwe_ge=0;

ledns_ye=1;

ledwe_ye=1;

for(i=0;i《50;i++)

{

delay(1000);

}

ledns_ye=0;

ledwe_ye=0;

ledns_re=1;

ledwe_ge=1;

for(i=0;i《10;i++)

{

delay(1000);

}

ledns_ge=0;

ledwe_re=0;

ledns_ye=1;

ledwe_ye=1;

for(i=0;i《30;i++)

{

delay(1000);

}

ledns_ye=0;

ledwe_ye=0;

ledns_ge=1;

ledwe_re=1;

for(i=0;i《10;i++)

{

delay(1000);

}

}

}

}

//主程序

voidmain()

{

while(1)Traffic_Light();

}

电路图

cd44d57295e6dbf363eb0792d573d128.png

关于LED模拟交通灯单片机C语言程序设计三

功能说明

上电或按键复位后能自动显示系统提示符“d.1004-16”,进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。

c语言程序

cc2e50afd41620337789bf93f4d3c9c8.png

318a7ec4b6482fae33d9c278c31ce077.png

e257362ffa061a9b0738067fb10d7947.png

8e8bacafa3c4a8e1931610a89b1eac43.png

1d8721f70ab6490bdcce977a26d1823d.png

2ef683052936454493face0b327c3a70.png

电路图

efd4c5cf87a53990dce18a211bbb63c9.png

pcb顶层图

4db4ec7be91d62a0b55b125a9c35852b.png

pcb底层图

ef4dd8a1314154ef0a425b7044f58e9b.png

元件分布图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值