基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)
基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)
仿真:proteus 7.8
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:J013
目录标题
- 基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)
- 功能说明
- 仿真图
- 正常运行模式
- 模拟绿灯同时亮
- 程序设计
- 倒计时的产生
- 红黄绿灯状态处理
- 倒计时显示处理
- 绿灯同时亮的处理
- 资料清单
功能说明
- 南北红灯25s,同时东西绿灯20s,到20s后东西绿灯闪烁3s,再转黄灯闪烁2s;东西红灯30s,同时南北绿灯25s,到25s后南北绿灯闪烁3s,再转黄灯闪烁2s。
- 启动按键:按下按键是,信号系统开始工作,且先南北绿灯亮,东西红灯亮,当启动开关断开时,所有信号灯都熄灭;
- 南北绿灯和东西绿灯不能同时亮,如果同时亮时关闭信号灯系统,并报警;
- 具体秒数可在程序改数字实现。
仿真图
正常运行模式
模拟绿灯同时亮
通过拨码开关模拟绿灯同时亮,这是一个绝对的错误情况,实际交通灯一旦发生四边绿灯同时变绿,交通规则无效,会诱发严重的交通事故。所以一旦四边绿灯亮,交通灯系统蜂鸣器报警,同时交通灯变成四边红灯。
程序设计
倒计时时间可以修改下面三个变量的初始化值。
main_green_straight_cnt
yellow_cnt
sec_green_straight_cnt
程序讲解
主要的核心点是倒计时,和LED灯亮灭控制
倒计时的产生
记住这个点就可以设计软件了。首先要有时间基础,倒计时从哪来呢?
一般两个来源:
1,延时
delay(1000ms);
通过死循环卡主软件的运行来达到延时效果,程序执行效率极低,不可取。
2,定时
通过定时器产生时基。软件设置50ms产生一次定时中断,在中断执行函数中做计数。
EA=1; //开总中断TMOD=0X01;//T0的工作模式为模式1TH0=0X4C;TL0=0X00;//11.0592M晶振 50ms定时初值ET0=1; //允许定时器1中断TR0=1;//启动定时器0
20ms执行一次中断函数,通过one_sec_flag累加到50判断时间过去了一秒。设置一秒标志位flag1s置一。
void Timer0() interrupt 1
{TH0=0XBB;TL0=0X00;if(++half_sec_flag>25){half_sec_flag=0;half_flag1s=1;}if(++one_sec_flag<50){return;//提前结束函数}one_sec_flag=0;if(run_mode==0){flag1s=1; }
}
在主函数while循环里判断标志位,如果是1,则倒计时计数值减一,即完成了倒计时的软件设计思路
if(flag1s)//正常倒计时模式一秒执行一次
{flag1s=0;main_road_time--; //红绿灯倒计时时间减secondary_road_time--;
}
红黄绿灯状态处理
正常红绿灯运行分有四个模式
1.东西方向绿灯通行,南北方向红灯
2.东西方向黄灯通行,南北方向红灯
3.南北方向绿灯通行,东西方向红灯
4.南北方向黄灯通行,东西方向红灯
5.执行第一步
if(run_mode==0) //0 正常运行{if(main_road_time==0 || secondary_road_time==0)//当主干道或者次干道倒数到0,切换状态。//这一段程序只有倒计时为0才执行一次,执行完一次等下一次倒计时为0才再执行一次{switch(state)//改变红绿灯的状态{case 0:{state=1;//下次切换到下一个模式main_road_time=main_green_straight_cnt;//主干道直行绿灯通行时间secondary_road_time=main_green_straight_cnt+yellow_cnt;//次干道红灯方向通行时间 == 主干道直行绿灯 +主干道时间黄灯时间 P2=0X09; //P2是主干道的灯显。需要亮的灯转换为二进制位0000 1001}break;case 1:{state=2;main_road_time = yellow_cnt;//主干道直行黄灯时间P2=0X0A;//主干道直行黄灯 对应仿真图p22和p25高电平,其他低电平。此时P2口的电平 0010 0010 }break;case 2:{state=3;main_road_time=sec_green_straight_cnt+yellow_cnt;secondary_road_time =sec_green_straight_cnt;P2=0X24; //主干道左转绿灯 对应仿真图p21和p24高电平,其他低电平。此时P2口的电平 0001 0001}break;case 3:{state=0;secondary_road_time=yellow_cnt;//黄灯时间P2=0X14;//主干道左转黄灯灯 对应仿真图p22和p25高电平,其他低电平。此时P2口的电平 0010 0010 }break;default:break;}}seg_disp(main_road_time/10,0);//显示W0控制的数码管 时刻刷新seg_disp(main_road_time%10,1);//显示W1控制的数码管seg_disp(secondary_road_time/10,2);//显示W2控制的数码管seg_disp(secondary_road_time%10,3);//显示W3控制的数码管}
倒计时显示处理
实际上倒计时显示就是显示main_road_time–; secondary_road_time–;设计函数通过数码管分别显示A方向的main_road_time和B方向的secondary_road_time即可
seg_disp(main_road_time/10,0);
//显示W0控制的数码管 时刻刷新
seg_disp(main_road_time%10,1);
//显示W1控制的数码管
seg_disp(secondary_road_time/10,2);
//显示W2控制的数码管
seg_disp(secondary_road_time%10,3);
//显示W3控制的数码管
绿灯同时亮的处理
通过检测Wdt引脚的低电平来判断是否触发了绿灯同时亮条件,一旦触发,蜂鸣器报警。
if(Emergent){ //已经启动运行run_mode = 0;if(Wdt){//恢复正常Beep = 0;run_mode = 0;}else{//如果两个绿灯同时亮Beep = 1;main_road_time = 0;run_mode = 1;state = 0; }
}else{ //关闭显示if(run_mode == 0){main_road_time = 0;run_mode = 2;state = 0;}}
资料清单
资料下载
基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)相关推荐
- 基于51单片机十字路口交通灯_5s黄灯闪烁
基于51单片机十字路口交通灯_5s黄灯闪烁 目录标题 基于51单片机十字路口交通灯_5s黄灯闪烁 功能要求 仿真图 程序 主要程序代码 程序讲解 倒计时的产生 红黄绿灯状态处理 倒计时显示处理 资料清 ...
- 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s
基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s (程序+仿真+参考报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J011 目录标题 基于5 ...
- 单片机c语言交通信号灯设计,基于51单片机的交通信号灯设计毕业设计.pdf
摘 要 在现代城市中,随着人口和汽车的急剧增长,市区交通日益拥挤,要是没有红绿灯 作为指挥工具,恐怕川流不息的汽车就会由于混乱而造成严重阻塞.因此,交通灯是交 管部门管理城市交通的重要工具之一.随着电 ...
- 基于51单片机十字路口红绿灯交通灯+紧急模式
基于51单片机十字路口红绿灯交通灯 +无黄灯+紧急 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J010 目录标题 基于51单片机十字路口红绿灯交 ...
- 【019】基于51单片机的交通灯Proteus仿真设计
一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...
- 51单片机模拟交通信号灯控制系统设计
51单片机模拟交通信号灯控制系统设计 设计要求: 1.用LED灯模拟十字路口交通灯控制 2.正常情况下双方向轮流通行 3.特殊情况时,A方向通行 4.紧急情况时,A和B方向都不通行 本任务涉及定时控制 ...
- 51单片机实现交通信号灯
51单片机实现交通信号灯 文章目录 51单片机实现交通信号灯 实验环境 仿真图 实验原理 代码实现 成果图 资源下载 实验环境 软件: Keil5+Proteus7 元件(主要): AT89C51 * ...
- c语言控制51单片机完成交通信号灯(红绿灯)
完成目标: 模拟十字路口(东南西北走向)交通灯:通过单片机的P1口控制实验箱上6个LED灯(两红两绿两黄),按照自定义规则控制交通灯. 要求有如下过程:某种颜色灯转另一种颜色的灯之前,要闪烁六次. 我 ...
- 基于51单片机的交通灯控制系统课程设计(含proteus仿真图及代码)
一.设计要求: 1,十字路口的交通控制系统指挥着人和各种车辆的安全运行,对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市 ...
最新文章
- Python基础02-Python基础
- Android应用程序线程消息循环模型分析(4)
- 技巧:Excel用得好,天天没烦恼
- 数据结构—链表-单链表基本操作实现
- Twemproxy调研总结
- cocoscreator3d 模型透明_用 Cocos Creator 3D 实现小姐姐的发丝高光
- Exp6 信息收集与漏洞扫描
- SRA 案例:关于华为开发者联盟基础服务文档内容的改进建议(华为开发者联盟文档深度体验官)
- python获取gps_Python GPS模块:读取最新的GPS D
- 微信扫码支付、聚合支付
- 基于verliog的异步模10计数器(含模块代码以及测试代码)
- 怎么把pdf文件压缩到最小?
- OJ一元二次方程的根*易错点
- 将不同数据来源的ggplot图绘制到同一张图中,并添加统一的图例
- 如何处理多重共线性问题
- 依赖注入和反转控制的区别
- sdkd2019.3.20训练题目
- MySQL集群:主从模式
- jquery数字动画插件jquery.animateNumber.js
- PS 不能使用移动工具 因为目标图层被隐藏怎么办
热门文章
- 暖风机家用最好的牌子 适合家用大面积的暖风机哪种好
- 国仁网络资讯:抖音都有哪些运营技巧;抖音算法机制是什么?
- http://www.cnblogs.com/xinxin-csharp/p/6146770.html
- 产业分析:线上线下融合会展
- Android7.08.0 电池图标分析
- w10计算机运行特别卡,win10很卡?教你4大技巧,降低CPU占用,旧电脑运行如飞
- mysql 重做日志 镜像_mysql重做日志 - osc_vr7hvjd2的个人空间 - OSCHINA - 中文开源技术交流社区...
- kali 配置静态ip的坑
- 计算机因特尔网络论文,电子商务课Intel未来教育理念论文
- 计算机网络原理【第四章 网络层】课后习题答案