设计功能
(1)采用四方向数码管显示时间的设计,符合实际的交通信号灯设计。
(2)7个按键,分别为:复位、夜间模式、紧急模式、设定时间、时间加、时间减、调试确定键;
(3)夜间模式:按下“夜间模式”按键后,四个方向的黄灯闪烁;
(4)紧急模式:当救护车、救火车等通过时,按下“紧急模式”按键,四个方向的红灯全部亮起;
(5)东西方向和南北方向的通行时间可以分开设置。就是模拟实际交通中的主干道和支干道。原理图:
原理图绘制软件采用AD2013。主要由51单片机+最小系统+数码管显示模块+LED指示灯模块+按键模块等构成;
其总体硬件原理图如图所。四路双位数码管的采用了动态扫描的驱动方式,共用段位显示引脚,8个数字每个时刻只显示一个数字,依次往复循环。
仿真设计
仿真软件采用Protues7.8。
程序设计
程序采用C作为编程语言,使用Keil5作为编程软件,仅展示一部分;
//函数的声明部分
void delay(int ms); //延时子程序
void key(); //按键扫描子程序
void key_to1(); //键处理子程序
void key_to2();
void key_to3();
void display(); //显示子程序
void logo(); //开机LOGO
void Buzzer();
//主程序
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
logo(); //开机初始化
P2=0Xc3; // 开始默认状态,东西绿灯,南北黄灯
sec_nb=sec_dx+5; //默认南北通行时间比东西多5秒
while(1) //主循环
{
key(); //调用按键扫描程序
display(); //调用显示程序
}
}
关注公众号-单片机实例设计,发送“交通灯”获取资料;