交通灯控制器.docx
- 文档编号:26047491
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:94.90KB
交通灯控制器.docx
《交通灯控制器.docx》由会员分享,可在线阅读,更多相关《交通灯控制器.docx(15页珍藏版)》请在冰豆网上搜索。
交通灯控制器
安康学院
单片机课程设计报告书
课题名称:
交通灯控制器设计
姓名:
学号:
院系:
电子与信息工程系
专业:
电子信息工程专业
指导教师:
时间:
一、设计任务及要求:
1、设计任务:
交通灯控制器设计
2、要求:
1、系统包括人行道、左转、右转以及基本的交通灯的功能。
交叉道路上的车辆交替通行的时间为25s,黄灯亮5s且每秒闪亮1次。
2、系统除具备基本交通灯功能外,还适当增加倒计时、时间设置、紧迫环境处置惩罚、分时段调整交通信号灯的点亮时间等功能。
指导教师签名:
年月日
二、指导教师评语:
该生在本次课程设计过程中,态度认真,通过多次调试,细心改正实训过程中发现的问题,最终能够很好的实现交通灯控制器的功能。
指导教师签名:
年月日
三、成绩评定:
指导教师签名:
年月日
四、系部意见:
系部盖章:
年月日
设计项目成绩评定表
设计报告书目录
一、设计目的1
二、设计思路1
三、设计过程1
3.1、系统方案论证1
3.2、模块电路设计2
3.3、实验源代码3
四、系统调试与结果3
五、主要元器件与设5
六、课程设计体会与建议5
6.1、设计体会5
6.2、设计建议5
七、参考文献6
附页:
7
一、设计目的
1、熟悉AT89C51芯片的功能和引脚安排。
2、掌握AT89C51芯片的逻辑功能及使用方法。
3、了解交通灯控制器的组成及工作原理。
4、熟悉交通灯控制器的设计与制作。
5、熟悉keil4、Proteus等软件的应用。
二、设计思路
1、分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
2、确定系统交通控制的总体设计,包括十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加倒计时显示提示,基于实际情况,又增加了紧急状况处理和通行时间可调这两项特殊功能。
3、进行显示电路,交通灯状态显示电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。
4、进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
三、设计过程
3.1、系统方案论证
交通灯控制器总体方框图如图1所示。
图1交通灯控制器总体方框图
其工作原理为:
单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。
本系统在此基础上,加入了紧急情况处理与时间调整功能。
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块接受输出。
系统的总体框图如上所示。
单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
3.2、模块电路设计
交通灯控制器电路如图2所示。
图2交通控制器电路
该电路完成的功能:
该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。
智能交通灯控制系统在正常工作的情况下,交叉道路上的车辆交替通行的时间为25s,每20s循环变化一次,每个循环周期在还剩5s时,在此过程中随时调用急停按键和时间调节中断,正在通行路口的黄灯同时点亮并开始闪烁(亮0.5秒,灭0.5秒),以提醒路人上的行人及车辆,交通灯即将发生变化。
在此期间若中断按键按下则转入中断服务子程序进行相关操作。
图3程序流程图
3.3、实验源代码
见附页。
四、系统调试与结果
1、组装调试交通灯控制器电路。
2、交通灯控制系统正常运行时仿真图(见图4)。
图4正常运行时仿真图
3、交通灯南北方向绿灯向红灯转变,黄灯闪烁时仿真图(见图5)。
图5黄灯闪烁时仿真图
4、交通灯东西方向南北方向转变,黄灯亮(见图6)。
图6黄灯亮仿真图
五、主要元器件与设
单片机实验箱和keil4、Proteus等软件。
六、课程设计体会与建议
6.1、设计体会
通过这次课程设计,我得到了一次用所学知识与技能分析和解决问题的可贵的锻炼机会,使我深刻体会了单片机的基本原理和单片机应用系统开发的过程。
在常用编程设计思路技巧的掌握方面都向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
6.2、设计建议
我希望老师在我们动手制作之前应先告诉我们一些关于所做电路的资料、原理,以及如何检测电路的方法,还有关于检测芯片的方法。
这样会有助于我们进一步的进入状态,完成设计。
七、参考文献
[1]余发山王福忠单片机原理及应用技术[M].徐州:
中国矿业大学出版社2008.
[2]吴黎明单片机原理及应用技术[M].北京:
科学出版社2003.
[3]刘乐善微型计算机接口技术及应用[M].北京:
华中科技大学出版社2004.
[4]李伯成.基于MCS-51单片机的嵌入式系统的设计[M].北京:
电子工业出版社,2004.
[5]吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术[M].北京:
科学出版社,2005.
[6]韩克,柳秀山,等.电子技能与EDA技术[M].广州:
暨南大学出版社,2004.
附页:
程序源代码:
#defineucharunsignedchar
#include
/**************************变量、控制位定义**************************/
ucharcodetable[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//0~~9段选码
ucharcodetable1[28]={0xF7,0xFE,0xF7,0xFE,0xBF,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF,0xFE,
0xFE,0xF7,0xFE,0xF7,0xFE,0xBF,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF,
0xFE,0xFE,0xFE,0xFE};
/*各种状态下红绿灯段选码,
状态(0-3):
EW绿灯,SN红灯;
状态(4-7):
EW黄灯亮,SN红灯;
状态(8-11):
EW黄灯灭,SN红灯;
状态(12-15):
EW红灯,SN绿灯;
状态(16-19):
EW红灯,SN黄灯亮;
状态(20-23):
EW红灯,SN黄灯灭;
状态(24-27):
EWSN全红灯*/
ucharcodetab[4]={0x1E,0x2D,0x4E,0x8D};//数码管显示位选码
ucharEW=30,SN=30,EW1=30,SN1=30;//初始化交通灯时间
ucharcount;//计时中断次数
uchari,j;//循环控制变量
sbitBusy_Button=P2^0;//交通意外控制位
sbitSN_Add=P2^1;//SN通行时间加按钮
sbitSN_Red=P2^2;//SN通行时间减按钮
sbitEW_Add=P2^3;//EW通行时间加按钮
sbitEW_Red=P2^4;//EW通行时间减按钮
charTime_EW;//EW方向计时
charTime_SN;//SN方向计时
/**************************延时子程序**************************/
voidDelay(uchara)//循环a次
{
ucharx;
x=a;
while(x--){;}
}
/*************************数码管显示子程序*************************/
voidDisplay(ucharj)//j控制显示table中连续位的起始点
{
charh,l;
if(j<11)//根据状态判定时间
{
h=Time_EW/10;//EW通行时间十位
l=Time_EW%10;//EW通行时间个位
}
elseif(j<23)
{
h=Time_SN/10;//SN通行时间十位
l=Time_SN%10;//SN通行时间个位
}
for(i=0;i<4;)//按位显示通行状况及时间
{
P0=table1[j];//通行状况显示
P3=tab[i];//位选显示
i++;
j++;
if(i%2)//两位计时显示
{
P1=table[l];
Delay(400);
}
else
{
P1=table[h];
Delay(400);
}
}
Delay(5);
}
/***********************INT0外部中断服务程序***********************/
voidEXINT0(void)interrupt0//INT0外部中断
{
EX0=0;//关中断
if(Busy_Button==0)
{
P0=0xFE;//意外按钮按下全显示红灯
for(;Busy_Button!
=1;)//意外按钮弹起时恢复之前状态
Display(24);
}
/*四个时间控制按钮分别控制SN、EW方向初始通行时间加减,
最长不超过s,最少不低于s*/
if(SN_Add==0)//SN+1
{
SN1+=1;
if(SN1>99)
SN1=99;
}
if(SN_Red==0)//SN-1
{
SN1-=1;
if(SN1<20)
SN1=20;
}
if(EW_Add==0)//EW+1
{
EW1+=1;
if(EW1>99)
EW1=99;
}
if(EW_Red==0)//EW-1
{
EW1-=1;
if(EW1<20)
EW1=20;
}
EX0=1;//开中断
}
/************************TO计时中断服务程序************************/
voidtimer0(void)interrupt1using1//T0中断
{
TH0=0x3C;
TL0=0xB0;//定时计数初值
count++;//中断溢出一次count+1
if(count==20)
{
Time_EW--;
Time_SN--;
count=0;//中断次计数s,count回,倒计时时间-1
}
}
/**************************亮灯控制**************************/
voidProcess()
{
Time_EW=EW;//初始化东西方向通行时间
while(Time_EW>3)//状态:
EW绿灯,SN红灯
{
j=0;
Display(j);//调用显示函数
}
while(Time_EW>0)//状态-3:
EW黄灯闪烁
{
if(count<10)//状态:
EW黄灯亮
{
j=4;
Display(j);
}
else//状态:
EW黄灯灭
{
j=8;
Display(j);
}
}
SN=SN1;//重置SN方向时间
Time_SN=SN;//初始化南北方向通行时间
while(Time_SN>3)//状态:
EW红灯,SN绿灯
{
j=12;
Display(j);
}
while(Time_SN>0)//状态-6:
SN黄灯闪烁
{
j=16;
if(count<10)//状态:
SN黄灯亮
{
Display(j);
}
else//状态:
SN黄灯灭
{
j=20;
Display(j);
}
}
EW=EW1;//重置EW初始时间
}
/**************************主程序**************************/
main()
{
TMOD=0x01;//定时器工作方式
TH0=0x3C;//定时器初始化
TL0=0xB0;
IT0=1;//中断触发方式为下降沿触发
EA=1;//CPU开中断
ET0=1;//开定时中断
TR0=1;//启动定时
EX0=1;//开外部INT0中断
while
(1)
{
Process();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制器