基于单片机的多种路口交通灯控制器的设计与实现 - 图文(5)

2019-03-15 16:39

图2-17 人行道绿灯亮时的图

5)以下是人行道状态指示灯,红灯亮时禁止行人通过。

图2-18 人行道红灯灯亮时的图

2.4.3复位模块的实现

复位模块中,无论交通灯状态处于哪一种状态,如图2-19所示,都会返回初始状态,如图2-20所示:

S1 t=40秒 S2 t=20秒 S1 t=40秒 S4 t=20秒 S3 t=40秒 S3 t=20秒 S2 t=20秒

图2-19 正常模式下 (禁止通行10秒)

初始状态 S1 任何状态

图2- 20 复位图

19

2.4.4紧急处理模块的实现

设计中,按下“繁忙”、“特殊”按钮时直行显示分别为45和75。由按钮来改变时间,以此处理繁忙等紧急情况。繁忙情况处理电路图如图2-21所示:

图2-21 繁忙情况处理电路

繁忙模式:

繁忙指示灯亮,直行段的通行时间改为45s,其中左拐的时间改为15s,其它与正常模式类似。 特殊模式:

特殊模式灯亮,直行段的通行时间改为75s,其中左拐的时间改为20s,其它与正常模式类似。 程序设计流程图:

N

N

Y

N

Y

N

Y

N

N

Y

N

Y

N

Y

图 2-22 程序流程图(十字路口)

20

本设计中主程序如下:

void main(void) {

Busy_LED=0; Special_LED=0;

IT0=1; //INT0负跳变触发 TMOD=0x01;//定时器工作于方式1 TH0=(65536-50000)/256; //定时器赋初值 TL0=(65536-50000)%6; EA=1; //CPU开中断总允许 ET0=1;//开定时中断 EX0=1;//开外部INTO中断 TR0=1;//启动定时 while(1)

{/*******S0状态**********/ CA_ManGreen=0; //CA人行道禁止 DB_ManGreen=1; //DB人行道通行

Flag_CA_Yellow=0; //CA关黄灯显示信号 Time_CA=CA; Time_DB=DB; while(Time_DB>=5) {P1=S[0]; //DB通行,CA红灯 Display();}

/*******S1状态**********/ P1=0x00;

while(Time_DB>=0) {Flag_DB_Yellow=1; //DB开黄灯信号位 CA_Red=1;

//DB黄灯亮,等待左拐信号,CA红灯 Display(); }

/*******S2状态**********/ Flag_DB_Yellow=0; //DB关黄灯显示信号 Time_DB=DBL; while(Time_DB>=5)

{P1=S[2];//DB左拐绿灯亮,CA红灯 Display();}

/*******S3状态**********/ P1=0x00;

while(Time_DB>=0) {Flag_DB_Yellow=1; //DB开黄灯信号位 CA_Red=1;

//DB黄灯亮,等待停止信号,CA红灯 Display();}

/**********赋值**********/ CA=CA1; DB=DB1; CAL=CAL1; DBL=DBL1;

/*******S4状态**********/ CA_ManGreen=~CA_ManGreen; //CA人行道通行

DB_ManGreen=~DB_ManGreen; //DB人行道禁止 Flag_DB_Yellow=0; //DB关黄灯显示信号 Time_CA=DB; Time_DB=CA; while(Time_CA>=5)

21

{P1=S[4]; //CA通行,DB红灯 Display();}

/*******S5状态**********/ P1=0X00; Display();}

/*******S6状态**********/ Flag_CA_Yellow=0; //CA关黄灯显示信号 Time_CA=CAL; while(Time_CA>=5) {P1=S[6];

//CA左拐绿灯亮,DB红灯 Display();}

/*******S7状态**********/ P1=0X00;

while(Time_CA>=0) {Flag_CA_Yellow=1; //EN开黄灯信号位 DB_Red=1;

//CA黄灯亮,等待停止信号,DB红灯 Display();}

/***********赋值**********/ CA=CA1; DB=DB1; CAL=CAL1; DBL=DBL1; }

while(Time_CA>=0) {Flag_CA_Yellow=1; //CA开黄灯信号位 DB_Red=1;

//CA黄灯亮,等待左拐信号,DB红灯 }

2.5遇到的主要难点

由于自己以前很多东西学得不太透彻,电路基础也不太好,再加上学的东西很死板,也很僵硬,根本不能够运与实践之中,因此,在设计过程中我也遇到了困难。

22

2.5.1编程中遇到的难点和解决方法

因为自己对编程不熟练,在编程着方面遇到了困难,在请教老师与同学,还有就是在课余实间上网收集资料等等不断的积累,在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后的历程打下了良好的基础。

2.5.2不同道路的关系(数据)分析和解决方法

因为实际的红绿灯控制中行人道的红绿灯和主干道的红绿灯是有一定的对应关系的,起初在分析这些关系中我遇到了困难,所以在设计前一定要理清它们,理清它们需要花一定时间来分析,这样有利于在编程时简化程序、减少不必要的麻烦。

23


基于单片机的多种路口交通灯控制器的设计与实现 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(办规计﹝2014﹞269号)关于进一步做好小型病险水库除险加固有关

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: