交通灯方案单片机及系统方案课程方案.docx
- 文档编号:28206411
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:14
- 大小:250.16KB
交通灯方案单片机及系统方案课程方案.docx
《交通灯方案单片机及系统方案课程方案.docx》由会员分享,可在线阅读,更多相关《交通灯方案单片机及系统方案课程方案.docx(14页珍藏版)》请在冰豆网上搜索。
交通灯方案单片机及系统方案课程方案
单片机原理及系统课程设计
评语:
考勤<10)
守纪<10)
过程<40)
设计报告<30)
答辩<10)
总成绩<100)
专业:
电气项目及其自动化
班级:
电气1002班
姓名:
张军
学号:
201809111
指导教师:
张廷荣
兰州交通大学自动化与电气项目学院
2018年3月15日
基于AT89C51单片机的交通灯设计
摘要:
交通灯控制的方式很多,本系统采用MCS-51系列单片机AT8951为中心器件来设计交通控制器,实现了通过8051芯片设置红,绿,黄灯点亮时间的功能;倒计时剩4秒黄灯闪烁警示。
本系统设计周期短,可靠性高,实用性强,操作简单,维护方便,扩展功能强,设计过程及程序通俗易懂。
ABSTRACT:
TrafficlightstocontrolthewayalotoftheMCS-51seriesmicrocontrollerAT8951-centricdevicestodesigntrafficcontroller,the8051setofred,green,yellowkindleafunctionoftime。
countdown4secondsleftflashingyellowlightalerts.Thesystemdesigncycleisshort,highreliability,practicality,simpleoperation,easymaintenance,extendedfunctionality,designprocessandprocedureseasytounderstand.
1引言
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊靠的是交通信号灯的自动指挥系统。
交通灯必须稳定有规律的连续运作,不能出现突然停机或是无规律的运作。
用51单片机设计的交通灯可以稳定连续运作而不出现突发情况,保证了交通控制系统的正常运作。
2设计方案及原理
采用AT89C51单片机作为核心控制器,其片内程序存储器4K、数据存储器256B,不需扩展存储器。
用8155芯片扩展I/O接口,使得编程容易,系统的控制更简单可靠。
整体设计框图如图1所示。
图1原理框图
系统开始运行先南北段通行、东西段禁止30秒,然后东西段通行、南北段禁止30秒,依此循环。
开机后数码管显示“30”。
此时南北段通行<绿灯)、东西段禁止<红灯),同时数码管从30秒开始倒计时,至最后5秒南北段黄灯开始闪烁;计时结束,东西段通行,南北段禁止,如此循环。
3硬件设计
控制系统整体电路设计如图2所示。
图2控制系统电路图
采用8155芯片作为I/O口的扩展,其口地址为COM(0X7FF8>,PA(0X7FF9>,PB(
0X7FFA>,PC(0X7FFB>,其接口电路如图3所示。
图3采用8155芯片作为接口电路图
因为AT89C51内部没有时钟发生器,需外接晶振。
外部时钟与复位电路如图4所示。
图4时钟与复位电路
十字路口交通信号灯和时间显示的电路图如图5所示。
图5十字路口交通信号灯和时间显示的电路图
信号灯与51单片机接线关系如表1所示。
表1信号灯接线说明
单片机接口
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
信号灯编号
dxred
dxyellow
dxgreen
nbred
nbyellow
nbgreen
4软件设计
采用C语言编程实现,具体的系统软件设计流程图如图6所示,其中Direction为初始条件,Count为计时时间。
图6程序设计流程图
程序代码见附录B。
5系统仿真与调试
通过proteus和keilc的联调仿真验证了该设计的目的,下面为不同状态下的实时仿真显示图形。
当南北方向允许机动车辆通行,东西方向禁止机动车辆通行时的仿真显示图形如附录A图1所示。
当南北方向允许通行由30秒倒计时到5秒时,南北方向黄灯亮,绿灯闪烁,这样可以使已经进入十字路口的机动车辆继续由南北方向通行。
实时仿真图如附录A图2所示。
当30秒倒计时结束时进入下一个30秒倒计时,即当南北方向禁止机动车辆通行,东西方向允许机动车辆通行时的仿真显示图形如附录A图3所示。
当东西方向允许通行由30秒倒计时到5秒时,东西方向黄灯亮,绿灯闪烁,这样可以使已经进入十字路口的机动车辆继续由东西方向通行。
实时仿真图如附录A图4所示。
6总结
本设计能够实现对十字路口人车通行的指示,提高通行质量,主要适用于通流量较小的十字路口,适合普通通行方式的十字路口。
对于一些复杂的通流量大的十字路口效果就差了,它对于转弯没有指示,需要改进的是,在各个方向加上一个指示转弯的指示灯。
再通过程序实现对定时的改变,便可使此交通灯系统实现全方位的指示。
因为时间有限,在此就不做此项扩展。
参考文献
[1]王思明,李华.单片机原理及应用.兰州:
兰州大学出版社[M],2001
[2]杜树春.基于Proteus和KeilC51的单片机设计与仿真.北京:
电子工业出版社[M],2018
附录A系统仿真
图1南北方向允许通行,东西方向禁止通行的仿真图
图2南北方向允许通行进入5秒倒计时的实时仿真图
图3南北方向禁止通行,东西方向允许通行的仿真图
图4东西方向允许通行进入5秒倒计时的实时仿真图
附录B软件设计源程序
/***********************89c51、8155交通灯设计************************/
#include
#include
/***************************定义系统变量*****************************/
#defineuintunsignedint
#defineucharunsignedchar
#defineCOMXBYTE[0X7FF8]//8155的命令口
#definePAXBYTE[0X7FF9]//8155的PA
#definePBXBYTE[0X7FFA]//8155的PB
#definePCXBYTE[0X7FFB]//8155的PC
sbitdxred=P1^0。
sbitdxyellow=P1^1。
sbitdxgreen=P1^2。
sbitnbred=P1^3。
sbitnbyellow=P1^4。
sbitnbgreen=P1^5。
ucharcodedu_code[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}。
//8段共阴极数码管显示码值
uchardis_buf[]={0x3F,0x06}。
//xx
ucharcodebit_code[]={0xfe,0xfd}。
//数码管显示的位值
bitdirection=0,hl=0。
ucharnum=0,den=0,count=0,count1=0。
/****************************初始化程序******************************/
voidinitial(>
{
TMOD=0x11。
//定义定时器的工作方式
TH0=(65536-50000>/256。
TL0=(65536-50000>%256。
//给T0装初值
TH1=(65536-100>/256。
TL1=(65536-100>%256。
//给T1装初值
ET0=1。
//开T0的中断
ET1=1。
//开T1的中断
EA=1。
//开总中断
TR0=1。
//关闭T0
TR1=1。
//开T0
COM=0x03。
//定义8155的工作方式,PA和PB为输出
}
/*******************************主程序*******************************/
voidmain(>
{
uchardisplay=0。
initial(>。
while(1>
{
display=30-count。
dis_buf[0]=du_code[(display>/10]。
dis_buf[1]=du_code[(display>%10]。
if(direction==1>
{
dxred=0。
nbred=1。
if(count<=25>
{
dxgreen=1。
nbgreen=0。
dxyellow=0。
nbyellow=0。
}
elseif(count<=28>
{
nbgreen=0。
dxyellow=1。
nbyellow=0。
if(hl==1>
dxgreen=1。
else
dxgreen=0。
}
elseif(count<=30>
{
dxyellow=1。
nbyellow=0。
dxgreen=0。
nbgreen=0。
}
}
else
{
nbred=0。
dxred=1。
if(count<=25>
{
nbgreen=1。
dxgreen=0。
nbyellow=0。
dxyellow=0。
}
elseif(count<=28>
{
dxgreen=0。
nbyellow=1。
dxyellow=0。
if(hl==1>
nbgreen=1。
else
nbgreen=0。
}
elseif(count<=30>
{
nbyellow=1。
dxyellow=0。
nbgreen=0。
dxgreen=0。
}
}
}
}
/****************************T0中断程序***************************/
voidtimer0(>interrupt1
{
TH0=(65536-50000>/256。
TL0=(65536-50000>%256。
//给T1装初值
num++。
den++。
if(num==20>//判断1s时间是否到
{
num=0。
count++。
}
if(den==10>//0.5s的闪动
{
den=0。
hl=~hl。
。
}
if(count>=31>
{
direction=~direction。
//东西切换
count=0。
}
}
/****************************T1中断程序*****************************/
/***********************将要显示数据发至8155************************/
voidtimer1(>interrupt3
{
TH1=(65536-300>/256。
TL1=(65536-300>%256。
PB=bit_code[count1]。
PA=dis_buf[count1]。
count1++。
if(count1==2>
count1=0。
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 方案 单片机 系统 课程
![提示](https://static.bdocx.com/images/bang_tan.gif)