仿真版本:Proteus8.6及以上版本
程序编译:Keil5 C51
编程语言:C语言
设计编号:【M05】
1.? 简介
? 本文提出了一种基于51单片机的智能控制交通灯设计。该设计在硬件方面主要采用AT89C51单片机作为主控核心,结合独立按键、数码管、LED灯,实现不同的红绿灯切换时间,并且具有倒计时的功能。
2.? 主要功能
a.当主干道通行亮绿灯时,支干道亮红灯,而支干道亮绿灯时,主干道亮红灯。
b.主支干道交替通行,每次放行30s,设置亮5s的黄灯作为过渡。
d.有紧急车辆要求通过时,系统要能禁止东西或南北两条路上所有的车辆通行。
e.夜间模式:东西南北方向黄灯闪烁。
f.禁止模式:东西南北方向红灯亮起,禁止通行。
g.支持对东西南北方向的倒计时时间调整。
3.? 源程序(Keil5)
本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar data buf[4]; //秒显示的变量
uchar data sec_dx=30; //东西数默认
uchar data sec_nb=30; //南北默认值
uchar data set_timedx=30; //设真东西方向的时间
//uchar data set_timenb=30; //设置南北方向的时间
int n;
uchar data countt0,countt1; //定时器中断次数
//定义6组开关
sbit k4=P3^7; //切换方向
sbit k1=P3^5; //时间加
sbit k2=P3^6; //时间减
sbit k3=P3^4; //确认
sbit k5=P3^1; //禁止
sbit k6=P3^0; //夜间模式
sbit Red_nb=P2^6; //南北红灯标志
sbit Yellow_nb=P2^5; //南北黄灯标志
sbit Green_nb=P2^4; //南北绿灯标志.
sbit Red_dx=P2^3; //东西红灯标志
sbit Yellow_dx=P2^2; //东西黄灯标志
sbit Green_dx=P2^1; //东西绿灯标志
bit set=0; //调时方向切换键标志=1时,南北;=0时,东西
bit dx_nb=0; //东西南北控制位
bit shanruo=0; //闪烁标志位,
bit yejian=0; //夜间黄灯闪烁标志位
uchar code table[11]={ //共阴极字型码
0x3f, //--0
0x06, //--1
0x5b, //--2
0x4f, //--3
0x66, //--4
0x6d, //--5
0x7d, //--6
0x07, //--7
0x7f, //--8
0x6f, //--9
0x00 //--NULL
};
//函数的声明部分
void delay(int ms);
void key_to2();
void key_to3();
void display();
void key();
void logo();
//主程序
void main()
{
TMOD=0X11;
TH1=0X3C;
TL1=0XB0;
TH0=0X3C;
TL0=0XB0;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=0;
EX0=1;
EX1=1;
logo();
P2=0Xc3;
sec_nb=sec_dx;
while(1)
{
key();
display();
}
}
4.? 仿真proteus8.6
? 本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
初始界面:
东西通行:
南北通行:
夜间模式:
禁止模式:
5.? 设计报告
设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。
6.? 资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。
7.? 资料获取链接
百度网盘下载链接:【M05】百度网盘下载链接
更多单片机仿真设计合集:单片机仿真设计合集
764