交通灯控制系统.docx
- 文档编号:23172692
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:16
- 大小:85.79KB
交通灯控制系统.docx
《交通灯控制系统.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统.docx(16页珍藏版)》请在冰豆网上搜索。
交通灯控制系统
广东工业大学第五届电子设计大赛
《交通灯控制系统》
信息工程学院
04应用电子2班
参赛队员:
陈金玉吴振铨
作品编号:
A104
摘要
随着社会的发展,人们的消费水平不断的提高,私人车辆不断的增加。
人多、车多道路少的道路交通状况已经很明显了。
我国是13亿多人口的大国,到2007年,全国的机动车保有量超过了6000万,而全国公路通车总里程只有14.3万公里。
静态比例为:
人均车辆越0.5辆,而人均道路只有0.00011公里;每辆车均道路占有量约为0.002公里;且其中90%的道路属于机动车与非机动车和行人混杂。
车辆的增加反映出了国家的整体进步,但是也给人民带来了其他的一些负面的影响。
今后几年机动车辆数字还在急剧增加,道路超负荷承载,致使交通事故逐年增加。
在一个交通十字路口,如果还是像以前一样由单纯的一种信号灯和交通警察的协调来维持交通是不够的。
根据统计每年因交通事故死亡的人数占所有事故死亡总人数的80%,而且这个比例还在不断的增加。
如果将每个交通十字路口的多余交通警察撤回,安排在最不利于管理和事故高发的地方,不但可以大大的降低交通事故的发生率,而且可以节省大量的人力财力。
基于新型规则的可编程交通控制系统(以下简称交通控制系统)可以实现对车辆、行人的控制,使的交通便于管理。
我们设计的交通控制系统具有自动化程度高、可靠性好、功能完备、可扩展、可编程、便于升级、独立性强的优点。
改进了以前的交通指示灯的那种信号单一,处理应急事故的能力差的缺点。
方案论证和比较
方案一:
由PC机来实现系统的全部功能
个人电脑(PC机)对一些控制问题上的解决是非常容易的,可以通过各种数据采集装置和与其配套的计算机软件,来动态的对整个交通控制系统进行调整。
但是PC机的价格高,体积大,比较笨重,运行的环境要求甚高,适应能力较弱,从实际应用的角度考虑不宜采用,所以不选择这种方案。
方案二:
设计PLC路实现整套系统
虽然可编程逻辑控制器(PLC)的速度快,控制功能强大、结构灵活,集成度高,易扩展各种功能的特点。
完成此交通控制系统只需很少的器件和时间。
但是举办电子大赛的目的是为了锻炼我们的动手能力,因此我们没有选择使用PLC。
方案三:
利用单片机实现整套系统
由于MCS系列单片机集成了几乎完善的中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理机及各种逻辑运算和转移指令,这给我们利用单片机提供了极大的便利。
单片机把微型计算机的主要部件都集成在一块心片上,使得数据传送距离大大缩短,运行速度更快,可靠性更高,抗干扰能力更强。
由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,工作亦相对稳定。
因此,测控系统中,使用单片机是最理想的选择。
单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。
单片机的开发环境要求较低,软件资源十分丰富,开发工具的和语言也大大简化。
对于本交通控制系统使用AT89S系列的单片机,不需要外扩展存储器,就能实现显示、预制状态、动态调节的功能,因而整体结构简单。
单片机系统用LED显示倒计数时间和方向箭头,由键盘输入设定值或者通过串口由计算机远程控制。
综合比较以上三种方案,我们选择最后一种。
理论分析与系统设计
硬件选择:
为了方便制作和调试,我们选择AT89S51的PDIP封装形式。
P0口作为LED七段数码管的驱动,P1、P3口作为各种信号灯的驱动。
P2口作键盘输入,并且留出RXD、TXD作以后系统升级通过323或485与PC通信,实现远程控制。
电源由220V市电经变压器变压,整流,滤波,再由7805稳压输出,供给AT89S51和整个系统。
软件选择:
软件采用C语言设计。
C语言对数据进行了许多专业性的处理,避免了运行间非异步的破坏;它提供复杂的数据类型,大大增强了程序的处理能力和灵活性;自动为变量分配合理的地址;提供丰富的库函数,宏定义等;基于以上的优点,采用C语言来开发可以大大提高效率,缩短开发周期。
开发环境:
KeilC51。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
软件下载:
Easy51pro串行编程器(自制)。
(Easy51Prov2[1].0宇宙版下载网址:
http:
//www.xiao-
主芯片功能特性:
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
程序流程图:
电路原理图:
附:
源程序代码
/**********************************/
/*交通灯控制系统*/
/*设计:
陈金玉吴振铨*/
/*广东工业大学信息工程学院*/
/*04应用电子2班*/
/*2006年4月25日*/
/**********************************/
#include"reg51.h"
unsignedcharcodetable[]={//sevensegmentsLEDcode
0xC0,/*0*/
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/};
sbitA_R=P1^0;//AroadRedlight
sbitA_G=P1^1;//AroadGreenlight
sbitA_Y=P1^2;//AroadYellowlight
sbitA_A=P1^3;//AroadArrowlight
sbitC_R=P1^4;//CroadRedlight
sbitC_G=P1^5;//CroadGreenlight
sbitC_Y=P1^6;//CroadYellowlight
sbitC_A=P1^7;//CroadArrowlight
sbitB_R=P1^0;//CroadRedlight
sbitB_G=P1^1;//BroadGreenlight
sbitB_Y=P1^2;//BroadYellowlight
sbitB_A=P1^3;//BroadArrowlight
sbitD_R=P1^4;//DroadRedlight
sbitD_G=P1^5;//DroadGreenlight
sbitD_Y=P1^6;//DroadYellowlight
sbitD_A=P1^7;//DroadArrowlight
sbitPB1=P2^7;//primaryroadledbit1
sbitPB2=P2^6;//primaryroadledbit2
sbitSB1=P2^5;//secondaryroadledbit1
sbitSB2=P2^4;//secondaryroadledbit2
sbitPSW_G=P2^3;//primaryroadsidewalkGreenlighi
sbitPSW_R=P2^2;//primaryroadsidewalkRedlighi
sbitSSW_G=P2^1;//secondaryroadsidewalkGreenlighi
sbitSSW_R=P2^0;//secondaryroadsidewalkRedlighi
sbitPR_G=P3^0;//primaryroadturnrightRedlight
sbitPR_R=P3^1;//primaryroadturnrightGreenlight
sbitSR_G=P3^2;//secondaryroadturnrightRedlight
sbitSR_R=P3^3;//secondaryroadturnrightGreenlight
unsignedcharCASE;//roadsituation
unsignedcharPT;//primaryroadtime
unsignedcharST;//secondaryroadtime
voiddisplay(unsignedcharPT,unsignedcharST);//roadtimedisplay
voidinit(void);//initialisesystem
voiddelay(void);//ledscandelay
time0()interrupt1using1//T0interruptserve(delay50ms)
{
unsignedchari;
i++;
TH0=-50000/256;
TL0=-50000%256;
if(i>20)
{i=0;
PT--;
ST--;}
}
voidinit(void)//initialisesystem
{
P0=0x00;//initialiseI\Oports
P1=0xFF;
P2=0xFF;
P3=0xFF;
CASE=1;//theinitialroadsituation
TMOD=0x61;//initialisetimer
TH0=-50000/256;
TL0=-50000%256;
EA=1;
ET0=1;
TR0=1;
}
voiddisplay(unsignedcharPT,unsignedcharST)//roadtimedisplayfunction
{
unsignedcharn;
n=PT%10;
PB1=0;
P0=table[n];
delay();
delay();
PB1=1;
delay();
n=PT/10;
PB2=0;
P0=table[n];
delay();
delay();
PB2=1;
delay();
n=ST%10;
SB1=0;
P0=table[n];
delay();
delay();
SB1=1;
delay();
n=ST/10;
SB2=0;
P0=table[n];
delay();
delay();
SB2=1;
delay();
}
voiddelay(void)//ledscandelay
{intk;
for(k=0;k<300;k++)
;
}
voidmain(void)
{
init();
while
(1)
{
switch(CASE)
{
case1:
PT=15;
ST=75;
C_R=0;//Cgoaheadforbit
D_R=0;//Dgoaheadforbit
A_A=0;//Aroadturnleftallow
A_R=0;
B_A=0;//Broadturnleftallow
B_R=0;
PR_G=0;//primaryroadturnrightallow
PR_R=1;
SR_R=0;//secondaryroadturnrightforbit
SR_G=1;
PSW_G=1;//primaryroadsidewalkforbit
PSW_R=0;
SSW_G=1;//secondaryroadsidewalkforbit
SSW_R=0;
while(!
(PT==0&&ST==0))
{
if(PT<6&&ST<66&&ST>PT)
{
if(PT%2==1)
{
A_A=1;//Aroadturnleftflash
B_A=1;//Broadturnleftflash
}
else
{
A_A=0;
B_A=0;
}
}
if(PT==0&&ST==60)
{
PT=60;
A_A=1;//Aroadturnleftforbid
B_A=1;//Broadturnleftforbid
PR_G=1;//primaryroadturnrightforbid
PR_R=0;
A_G=0;//Aroadgoaheadallow
A_R=1;
B_G=0;//Broadgoaheadallow
B_R=1;
SSW_G=0;//secondaryroadsidewalkallow
SSW_R=1;
}
if(PT<6&&ST<6)
{
A_G=1;
B_G=1;
if(PT%2==1)
{
A_Y=1;//Aroadyellowlightflash
B_Y=1;//Broadyellowlightflash
SSW_G=1;//secondaryroadsidewalkGreenlightflash
}
else
{
A_Y=0;
B_Y=0;
SSW_G=0;
}
}
display(PT,ST);
}
A_G=1;//Aroadgoaheadforbit
B_G=1;//Broadgoaheadforbit
SSW_G=1;//secondaryroadsidewalkforbit
SSW_R=0;
CASE=2;
Break;
case2:
PT=55;
ST=10;
A_R=0;//Aroadgoaheadforbit
B_R=0;//Broadgoaheadforbit
C_A=0;//Croadturnleftallow
C_R=0;
D_A=0;//Droadturnleftallow
C_R=0;
SR_R=1;//secondaryroadturnrightallow
SR_G=0;
PSW_G=1;//primaryroadsidewalkforbit
PSW_R=0;
SSW_G=1;//secondaryroadsidewalkforbit
SSW_R=0;
while(!
(PT==0&&ST==0))
{
if(PT<51&&ST<6&&PT>ST)
{
if(PT%2==1)
{
C_A=1;//Croadturnleftflash
C_A=1;//Croadturnleftflash
}
else
{
C_A=0;
C_A=0;
}
}
if(PT==45&&ST==0)
{
ST=45;
C_A=1;//Croadturnleftforbid
D_A=1;//Droadturnleftforbid
SR_R=0;//secondaryroadturnrightforbit
SR_G=1;
C_G=0;//Croadgoaheadallow
C_R=1;
D_G=0;//Droadgoaheadallow
D_R=1;
PSW_G=0;//primaryroadsidewalkallow
PSW_R=1;
}
if(PT<6&&ST<6)
{
C_G=1;
D_G=1;
if(PT%2==1)
{
C_Y=1;//Croadyellowlightflash
D_Y=1;//Droadyellowlightflash
PSW_G=1;//primaryroadsidewalkGreenlightflash
}
else
{
C_Y=0;
D_Y=0;
PSW_G=0;
}
}
display(PT,ST);
}
C_G=1;//Croadgoaheadforbit
D_G=1;//Croadgoaheadforbit
CASE=1;
break;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制系统