600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 0010基于单片机交通灯控制系统设计

0010基于单片机交通灯控制系统设计

时间:2020-07-16 21:58:13

相关推荐

0010基于单片机交通灯控制系统设计

资料下载地址!!!!!!!

交通灯,十字路口

/****************************************************** 王瑾毕设-交通灯********************************************************/#include<include.h>sbit NS_GRE = P2^5;sbit NS_YEL = P2^4; sbit NS_RED = P2^3; sbit EW_GRE = P2^2; sbit EW_YEL = P2^1; sbit EW_RED = P2^0; uint8 EW_Timer = unused8; //东西方向红灯定时器uint8 NS_Timer = unused8; //南北方向红灯定时器uint8 YEL_Timer = unused8; //黄灯 5s定时器int main(void){Timer_Init(); //定时器初始化INT0_Init();//外部中断初始化 EA=1; //打开全局中断NS_GRE = OFF; //所有的灯都灭 NS_YEL = OFF; NS_RED = OFF; EW_GRE = OFF; EW_YEL = OFF; EW_RED = OFF; P3 = 0xFF;//所有显示灭//先让东西方向红灯亮 南北方向通行EW_Timer = EWTime_Count;//东西方向开始计时while(1){if((EW_Timer != unused8) && (EW_Timer != 0)){ //东西方向做红灯倒计时display1(EW_Timer/10, EW_Timer%10);//东西方向显示时间 南北方向不显示EW_RED_ON(); //东西方向保持红灯NS_GRE_ON(); //南北方向保持绿灯}else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//东西方向红灯计时到 东西方向保持红灯 南北方向变黄灯 开始黄灯5s计时EW_RED_ON(); //东西方向红灯NS_YEL_ON(); //南北方向黄灯YEL_Timer = YELTime_Count;//5s计时}if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){display1(YEL_Timer/10, YEL_Timer%10); //东西方向显示时间 南北方向不显示}if((EW_Timer != unused8) && (YEL_Timer == 0)){ //东西方向红-南北方向黄灯5s计时到 东西红灯定时器关 黄灯定时器关 南北红灯 东西绿灯 南北计时器开EW_Timer = unused8; //东西红灯定时器关YEL_Timer = unused8; //黄灯定时器关NS_RED_ON(); //南北变红灯EW_GRE_ON(); //东西变绿灯NS_Timer = NSTime_Count; //南北红灯定时器开}if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北红灯定时器正在计时display2(NS_Timer/10, NS_Timer%10);//南北方向显示时间 东西方向不显示EW_GRE_ON(); //东西保持绿灯NS_RED_ON(); //南北保持红灯}else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向红灯计时到 南北方向保持红灯 东西方向变黄灯 开始黄灯5s计时NS_RED_ON(); //南北方向保持红灯EW_YEL_ON(); //东西方向变黄灯YEL_Timer = YELTime_Count;//5s计时}if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){ display2(YEL_Timer/10, YEL_Timer%10); //南北方向显示时间 东西方向不显示}if((NS_Timer != unused8) && (YEL_Timer == 0)){ //南北方向红-东西方向黄灯5s计时到 南北方向定时器关 黄灯定时器关 东西方向变红灯 南北方向变绿灯 东西方向红灯计时器开始计时NS_Timer = unused8;YEL_Timer = unused8;EW_RED_ON(); //东西方向变红灯NS_GRE_ON(); //南北方向变绿灯EW_Timer = EWTime_Count;//东西方向开始计时}if(Flag_Key == 1){ //如果急停按键按下 则全红灯 显示灭P3 = 0xFF; //所有显示灭EW_RED_ON(); //东西方向红灯NS_RED_ON(); //南北方向红灯EW_Timer = unused8; //关闭所有定时器NS_Timer = unused8;YEL_Timer = unused8;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。