图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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的多种路口交通灯控制器的设计与实现 - 图文(5)在线全文阅读。
相关推荐: