单片机的交通信号灯研究报告.docx
《单片机的交通信号灯研究报告.docx》由会员分享,可在线阅读,更多相关《单片机的交通信号灯研究报告.docx(14页珍藏版)》请在冰豆网上搜索。
单片机的交通信号灯研究报告
课程设计报告
基于单片机原理地交通信号灯设计
小组成员
学号
指导教师
专业
2013年06月
1.课题名称........................................................................3b5E2R。
2.设计任务.........................................................................3p1Ean。
2.1基本要求…………………................................3
2.2创新部分………………………………............3
3.系统设计..........................................................................3DXDiT。
3.1工作原理……………………………………3
3.2电路原理图…………………………………4
4.芯片地选择与简介...........................................................4RTCrp。
4.1MCS-51单片机内部结构…………………4
4.2MCS-51地引脚说明………………………..5
5.硬件设计..........................................................................65PCzV。
5.1显示部分………………………………...........6
5.2信号灯部分……………………………...........7
6.软件设计………………………….................................7
6.1流程图…………………………………..........7
6.2主程序…………………………………..........8
7.个人总结……………………………………………14
一.课题名称:
基于单片机原理地交通信号灯设计
1.设计任务
2.1基本要求:
1.运用所学地单片机知识设计一个交通灯控制系统.
2.上电地时候南北方向地红灯亮60秒;东西方向地绿灯亮60秒,接下来东南西北都亮黄灯,亮30秒.再接下来东西方向地红灯亮20秒;南北方向地绿灯亮20秒.如此循环.jLBHr。
2.2创新部分
1.各种信号灯所亮地时间由数码管显示出来.
2.在出现问题地时候(红灯全亮),按键中断停止.
3.系统设计
3.1工作原理
设置交通灯地初始时间,数码管地段码依次用P2口不同地口线,用单片机来控制各种信号灯地燃亮时间,通过单片机地P3和P1口控制.xHAQX。
3.2电路原理图
4.芯片地选择与简介
4.189TC51单片机内部结构
MCS-51单片机是在一块芯片中集成了CPU,RAM,ROM、定时器/计数器和多种功能地I/O线等一台计算机所需要地基本功能部件.MCS-51单片机内包含下列几个部件:
◆一个8位CPU;
◆一个片内振荡器及时钟电路;
◆4K字节ROM程序存储器;
◆128字节RAM数据存储器;
◆两个16位定时器/计数器;
◆可寻址64K外部数据存储器和64K外部程序存储器空间地控制电路;
◆32条可编程地I/O线(四个8位并行I/O端口);
◆一个可编程全双工串行口;
◆具有五个中断源、两个优先级嵌套中断结构.LDAYt。
4.2MCS-51地引脚说明:
89TC51系列单片机中地8031、8051及8751均采用40Pin封装地双列直接DIP结构,右图是它们地引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器地时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用.现在我们对这些引脚地功能加以说明:
如下图所示.Zzz6Z。
五.硬件设计
5.1显示部分
系统要求南北和东西方向地信号灯时间不一样,所以就利用单片机地p0和p3口来做数码管地段码驱动,东西方向和南北方向地位线可以公共来使用,可以节约单片机地口线.dvzfv。
数码管可以使用共阴数码管,电路图如下图所示:
5.2信号灯部分
设计利用单片机地P3地四个口和P18口来驱动和控制各种信号灯地燃亮和燃亮时间,在实际中,交通灯地信号灯需要用高电压控制,在这里我们只是模拟一下它地控制信号,所以我们就只用单片机地信号引脚直接来控制发光二极管,电路图见下图.rqyn1。
六.系统软件设计
6.1软件流程图
Emxvx。
6.2主程序:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitD1=P3^7;
sbitD2=P3^3;
sbitD3=P3^1;
sbitD4=P1^2;
sbitD5=P1^1;
sbitD6=P1^0;
sbitD7=P1^5;
sbitD8=P1^4;
sbitD9=P1^3;
sbitD10=P3^0;
sbitD11=P1^7;
sbitD12=P1^6;
sbitButton_A=P3^6;
uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};//共阴段码表0--9
charTime_EW;//东西方向倒计时
charTime_SN;//南北方向倒计时
ucharEW=59,SN=59,EWJ=29,SNJ=29,EWL=19,SNL=19;//程序初始化赋值SixE2。
ucharcount=0;
/********************************************************/6ewMy。
voiddelay(unsignedchari)//延时ims
{
unsignedcharj;
while(i--)
{
for(j=0;j<115;j++);
}
}
/******************************************************/kavU4。
voidDisplay(void)
{
P0=0x08;
P2=table[Time_EW%10];
delay
(2);
P0=0x04;
P2=table[Time_EW/10];
delay
(2);
P0=0x02;
P2=table[Time_SN%10];
delay
(2);
P0=0x01;
P2=table[Time_SN/10];
delay
(2);
}
/******************T0中断*************************************/y6v3A。
voidtime_0()interrupt1
{
TH0=0x3c;
TL0=0xb0;
count++;
if(count==20)
{
Time_SN--;
Time_EW--;
count=0;
}
}
voidint0(void)interrupt0
{
while(Button_A==0)
{
D1=0;
D4=0;
D7=0;
D10=0;//所有都是红灯
P2=0;//关数码管
}
}
/******************主程序*******************************/M2ub6。
voidmain()
{
TR0=1;//启动定时器0
TMOD=0x01;//定时器工作于方式1
TH0=(65536-50000)/256;//定时器赋初值
TL0=(65536-50000)%256;
EA=1;//CPU开中断总允许
ET0=1;//开定时中断
EX0=1;//开外部INTO中断
IT0=1;//INT0负跳变触发
while
(1)
{
/*S1*****A道放行*******///S1状态
Time_EW=EW;//90s
Time_SN=SN;//90s
while(Time_EW>=0)
{D1=1;
D2=1;
D3=0;
D4=0;
D5=1;
D6=1;
D7=1;
D8=1;
D9=0;
D10=0;
D11=1;
D12=1;
Display();
}
/******A道+30s********/
Time_SN=SNJ;//SNJ=29
Time_EW=EWJ;//EWJ=29
while(Time_EW>=0)
{D1=1;D2=0;D3=1;
D4=1;
D5=0;D6=1;D7=1;
D8=0;D9=1;D10=1;
D11=0;D12=1;
Display();
}
/******A道黄灯********/
/*S3*****B道放行*****///S3状态
Time_EW=EW;//60s
Time_SN=SN;//60s
while(Time_EW>=0)
{
D1=0;D2=1;D3=1;
D4=1;D5=1;D7=0;
D6=0;D8=1;D9=1;
D10=1;D11=1;D12=0;
Display();
}
/******B道黄灯*******/
}
}
七.个人结论
通过这次期末设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统地锻炼.使我在单片机地基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)地掌握方面都能向前迈了一大步,特别是中断这一块,为日后成为合格地应用型人才打下良好地基础.0YujC。
我学到了很多,也找到了自己身上地不足.感受良多,获益匪浅.在课程设计地第一天我们便对这次任务进行了规划和分工.在以后地几天中,我们组地成员一起努力,查阅资料、小组讨论、对资料进行分析.当发现问题时,对于程序地调试很重要,所以对整个流程应该要非常熟悉,在写程序时也要细心,养成良好习惯,打括号就成双地打.eUts8。
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.sQsAE。
用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.GMsIa。
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.TIrRG。
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.7EqZc。
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.lzq7I。