基于51单片机的交通信号灯系统设计

发布时间:2023-02-09  

功能:

十字路口交通灯控制程序: 正常时,EW方向计时60s,SN方向计时40s 若按时间加按键(Add_Button)按钮,EW、SN方向各加5s,不可大于99s,79s 若按时间减按键(Reduces_Button)按键,EW、SN方向各减5s,不可小于40s,20s 若按EW方向强制通行(QZ_EW_Btton)按钮,EW方向强制通行,SN方向禁止通行 若按SN方向强制通行(QZ_SN_Btton)按钮,SN方向强制通行,EW方向禁止通行。


程序运行图:

仿真原理图:


部分程序:

/ #define TRAFFIC_GLOBAL 1

#include "TRAFFIC.H"

/********************************************************************************************

* 函数名称:延时子程序

* 功 能:延时,给LED显示的延时时间

* 入口参数:时间参数

* 出口参数:无

*********************************************************************************************/

void Delay(uchar a)

{

uchar i;

i=a;

while(i--){;}

}



/********************************************************************************************

* 函数名称:显示子函数

* 功 能:EW方向,SN方向主干道数码管显示驱动

* 入口参数:无

* 出口参数:无

*********************************************************************************************/

void Display(void)

{

char h,l;

h=Time_EW/10; //EW方向计时的十位数

l=Time_EW%10; //EW方向计时的个位数

P0=table[l]; //显示EW计时时间的低位

EW_LED2=1;

Delay(2);

EW_LED2=0;

P0=table[h]; //显示EW计时时间的高位

EW_LED1=1;

Delay(2);

EW_LED1=0;


h=Time_SN/10; //SN方向计时的十位数

l=Time_SN%10; //SN方向计时的个位数

P0=table[l]; //显示SN计时时间的低位

SN_LED2=1;

Delay(2);

SN_LED2=0;

P0=table[h]; //显示SN计时时间的高位

SN_LED1=1;

Delay(2);

SN_LED1=0;


h= EW1/10; //直行时间的十位

l= EW1%10; //直行时间的个位

P0=table[l]; //时间的个位显示

Time_Show_LED1=1;

Delay(2);

Time_Show_LED1=0;

P0=table[h]; //时间的十位显示

Time_Show_LED2=1;

Delay(2);

Time_Show_LED2=0;

}



/********************************************************************************************

* 函数名称:外部0中断服务程序

* 功 能:中断,检测按钮的类别,执行相应的操作;

若Add_Button==0,通行时间加5s ;

若Reduces_Button==0,通行时间减5s ;

若Busy_Btton==0,开繁忙信号灯,关特殊信号灯,通行时间45s,30s;

若Add_Button==0,关繁忙信号灯,开特殊信号灯,通行时间75s,55s;

* 入口参数:无

* 出口参数:无

*********************************************************************************************/

void EXINT0(void) interrupt 0 using 0

{

EA = 0; //关中断

if(Add_Button==0) //时间加

{

EW1+=5; //通行时间加5s

SN1+=5;

if(EW1>=100) //通行时间不得大于100s,80s

{

EW1=99;

SN1=79;

}

}

if(Reduces_Button==0) //时间减

{

EW1-=5; //通行时间减5s

SN1-=5;

if(EW1<=40) //通行时间不得小于40s,20s

{

EW1=40;

SN1=20;

}

}

EA = 1; //开中断

}


/******************************************************************************

* 函数名称:外部中断1

* 功 能:中断,当遇到紧急情况,需要人工控制时,强制直行的函数处理

若QZ_EW_Btton按下时,EW方向绿灯亮,SN方向红灯亮 ,并点亮QZ_EW_LED指示灯

若QZ_SN_Btton按下时,EW方向红灯亮,SN方向绿灯亮 ,并点亮QZ_SN_LED指示灯

* 入口参数:无

* 出口参数:无

********************************************************************************/

void EXINT1(void) interrupt 2 using 2

{

EA = 0;


if(QZ_EW_Btton==0) //EW方向强制通行按键是否按下

{

QZ_EW = ~QZ_EW; //

QZ_SN = 0;

if(QZ_EW)

{QZ_EW_LED = 1;

QZ_SN_LED = 0;}

else QZ_EW_LED = 0;

}

if(QZ_SN_Btton==0) //测试按键是否按下,按下为特殊状态

{

QZ_SN = ~QZ_SN;

QZ_EW = 0;

if(QZ_SN)

{QZ_SN_LED = 1;

QZ_EW_LED = 0;}

else

QZ_SN_LED = 0;

}

/******************************************************************************

* 函数名称:main()

* 功 能:主函数

* 入口参数:无

* 出口参数:无

********************************************************************************/

void main(void)


{

QZ_EW_LED = 0;

QZ_SN_LED = 0;

QZ_EW = 0;

QZ_SN = 0;


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    都很经典!通俗易懂!学会公司横着走! •PLC实例 - 交通信号灯• 1、交通信号灯控制PLC配置示意图     2、交通信号灯系统正常工作时序图     3、实现主干道信号灯......
    小编就给大家分享6个经典的PLC案例,学会不求人! 一、PLC实例-交通信号灯 1、交通信号灯控制PLC配置示意图 2、交通信号灯系统正常工作时序图 3、实现主干道信号灯控制的梯形图 二、PLC实例......
    无线手持智能交通灯控制系统;城市道路交错分布,车辆穿梳,行人熙攘。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统交通灯是城市交通的重要指挥系统交通信号灯作为管制交通流量、提高......
    PLC程序:十字路口的交通指挥信号灯布置;十字路口的交通指挥信号灯布置 一、控制要求 (1)信号灯系统由一个启动开关控制,当启动开关接通时,该信号灯系 统开始工作,当启动开关关断时,所有信号灯......
    PLC入门的6个编程技能分享;01 十字路口的交通指挥信号灯布置 十字路口的交通指挥信号灯布置如下图: 1、控制要求 (1)信号灯系统由一个启动开关控制,当启动开关接通时,该信号灯系统......
    基于51单片机的交通信号灯系统设计;功能: 十字路口交通灯控制程序: 正常时,EW方向计时60s,SN方向计时40s 若按时间加按键(Add_Button)按钮,EW、SN方向各加5s,不可......
    参考哦! 一、PLC实例-交通信号灯 1、交通信号灯控制PLC配置示意图     2、交通信号灯系统正常工作时序图     3、实现主干道信号灯控制的梯形图             二......
    交通信号灯系统51单片机设计;要求 (1)利用51单片机设计一个交通灯控制系统,来实现行人与车流的分流的目的。该系统主要应用在十字路口,纵向为主干道,横向为支干道; (2)主、支干道交替通行,两个干道上的交通......
    让车辆停等红绿灯的时间减少20%。凌华科技智能视觉事业中心资深产品经理许凯翔表示:“AI智能交通信号灯控制技术是灵敏的智能交通系统之一,这项技术可以大幅降低行人交通堵塞之苦。”现在城市的交通灯号,背后都有一套运作多年的系统......
    求一种STM32单片机交通灯控制系统设计方案;一、功能简介 本项目使用Proteus8.12仿真STM32单片机控制器,使用数码管、按键、交通信号灯模块等。 系统运行后,交通灯系统开始运行,数码......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>