标题:
LED模拟交通灯(带左转向)proteus仿真与单片机源码
[打印本页]
作者:
jiasen2018
时间:
2018-5-2 21:43
标题:
LED模拟交通灯(带左转向)proteus仿真与单片机源码
交通灯运行一周耗时40秒,运行情况是东西方向绿灯亮10秒后灭,黄灯闪烁3秒后灭,左转向灯亮4秒后灭,黄灯闪烁3秒后灭,红灯亮20秒
南北方向交通灯运行情况是红灯亮20秒后灭,绿灯亮10秒后灭,黄灯闪烁3秒后灭
左转向灯亮4秒后灭,黄灯闪烁3秒
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(21.18 KB, 下载次数: 44)
下载附件
2018-5-3 02:14 上传
0.jpg
(37.75 KB, 下载次数: 52)
下载附件
2018-5-3 02:13 上传
单片机源程序如下:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0;
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit LEFT_A=P2^0;
sbit RED_B=P0^3;
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;
sbit LEFT_B=P2^1;
uchar Flash_Count = 0;
Operation_Type = 1;
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void Traffic_lignt()
{
switch(Operation_Type)
{
case 1:
RED_A=1;YELLOW_A=1;GREEN_A=0;LEFT_A=1;
RED_B=0;YELLOW_B=1;GREEN_B=1;LEFT_B=1;
DelayMS(10000);
Operation_Type = 2;
break;
case 2:
GREEN_A=1;
DelayMS(300);
YELLOW_A=~YELLOW_A;
if(++Flash_Count !=10)
return;
Flash_Count=0;
Operation_Type = 3;
break;
case 3:
RED_A=1;YELLOW_A=1;GREEN_A=1;LEFT_A=0;
// RED_B=0;YELLOW_B=1;GREEN_B=1;LEFT_B=1;
DelayMS(4000);
Operation_Type = 4;
break;
case 4:
LEFT_A=1;
DelayMS(300);
YELLOW_A=~YELLOW_A;
if(++Flash_Count !=10)
return;
Flash_Count=0;
Operation_Type = 5;
break;
case 5:
RED_A=0;YELLOW_A=1;GREEN_A=1;LEFT_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;LEFT_B=1;
DelayMS(10000);
Operation_Type = 6;
break;
case 6:
GREEN_B=1;
DelayMS(300);
YELLOW_B=~YELLOW_B;
if(++Flash_Count !=10)
return;
Flash_Count=0;
Operation_Type = 7;
break;
case 7:
// RED_A=0;YELLOW_A=1;GREEN_A=1;LEFT_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=1;LEFT_B=0;
DelayMS(4000);
Operation_Type = 8;
break;
case 8:
LEFT_B=1;
// RED_A=0;YELLOW_A=1;GREEN_A=1;LEFT_A=1;
DelayMS(300);
YELLOW_B=~YELLOW_B;
if(++Flash_Count !=10)
return;
Flash_Count=0;
Operation_Type = 1;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
LED模拟交通灯(带左转向).zip
(70.12 KB, 下载次数: 46)
2018-5-2 21:43 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
vinwens
时间:
2019-1-4 11:59
都是错误还发什么
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1