大家好,又见面了,我是你们的朋友全栈君。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。
功能描述
1、采用51单片机作为主控单元;
2、采用74HC245芯片驱动数码管;
3、采用数码管显示倒计时时间;
4、东西和南北方向各有两个数码管,分别显示时间,东西和南北的时间是不一样的,相差黄灯的时间才是正确的;
5、可分别设置主干道和支干道通行时间;
6、具有紧急模式,特种车辆优先通行或交通事故应急处理。
按键说明
K1:黄灯长亮(深夜模式);K2:红灯长亮(禁行);
K3:东西通行;K4:南北通行;
K5:确定调时时间;K6:时间加;K7:时间减;
K8:切换调时方向(东西和南北可分别设置);
K9:复位按键;
整体方案
电路设计
采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
仿真设计
采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计
主程序设计
代码语言:javascript复制void main()
{
TMOD=0X11; //定时器设置
TH1=0X3C;
TL1=0XB0;
TH0=0X3C; //定时器0置初值 0.05S
TL0=0XB0;
EA=1; //开总中断
ET0=1; //定时器0中断开启
ET1=1; //定时器1中断开启
TR0=1; //启动定时0
TR1=0; //关闭定时1
EX0=1; //开外部中断0
EX1=1; //开外部中断1
logo(); //开机初始化
P2=0Xc3; // 开始默认状态,东西绿灯,南北黄灯
sec_nb=sec_dx 5; //默认南北通行时间比东西多5秒
while(1) //主循环
{
key(); //调用按键扫描程序
display(); //调用显示程序
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193155.html原文链接:https://javaforall.cn