智能交通信号灯控制系统设计.docx
- 文档编号:30296485
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:15
- 大小:65.34KB
智能交通信号灯控制系统设计.docx
《智能交通信号灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《智能交通信号灯控制系统设计.docx(15页珍藏版)》请在冰豆网上搜索。
智能交通信号灯控制系统设计
《智能交通信号灯控制系统设计》
摘要:
这次课程设计我选择的是课题一《智能交通信号灯控制系统设计》。
通过单片机课程设计,熟练掌握编程方法,培养我们程序设计的技巧,文中会讲述智能交通系统的设计思路及最终设计结果,并能够进行仿真运行。
同时还会解说各个子程序的作用及运行模式,最终达到了解和比较好地掌握单片机的应用,提高我们的动脑、动手和逻辑抽象能力。
关键词:
单片机、设计、智能交通系统、提高
单片机的应用
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
而这次课程设计就是将单片机应用在智能交通这一领域当中,让我们从基本的编程设计简易的交通系统开始学起,动手实践,由浅入深地慢慢去学习。
软件的使用
这次课程设计我们使用Keil和Proteus这两个软件进行编程和仿真。
任务要求
(1)东至西、西至东双向通行状态(EW_WE):
东至西、西至东通道绿灯亮,南至北、北至南通道红灯亮;
(2)东转南、东转北通行状态(ES_EN):
东至西通道绿灯亮,西至东通道绿灯、黄灯亮,南至北、北至南通道红灯、黄灯亮;
(3)西转南、西转北通行状态(WS_WN):
西至东通道绿灯亮,东至西通道绿灯、黄灯亮,南至北、北至南通道红灯、黄灯亮;
(4)东西南北通行禁行过渡状态(EW_SN):
东至西、西至东、南至北、北至南通道黄灯亮;
(5)南至北、北至南双向通行状态(SN_NS):
东至西、西至东通道红灯亮,南至北、北至南通道绿灯亮;
(6)南转东、南转西通行状态(SE_SW):
南至北通道绿灯亮,北至南通道绿灯、黄灯亮,东至西、西至东通道红灯、黄灯亮;
(7)北转东、北转西通行状态(NE_NW):
北至南通道绿灯亮,南至北通道绿灯、黄灯亮,东至西、西至东通道红灯、黄灯亮。
每个交通控制周期状态转换及定时如图所示:
图1正常情况下交通灯简易流程
实现两位LED数码显示秒表。
出现紧急状态按下按键K1,东至西、西至东、南至北、北至南通道全亮红灯;再按下按键K1,消除紧急状态返回正常状态。
附加功能:
出现特殊状态按第一下按键K2,东至西、西至东通道亮绿灯,南至北、北至南通道亮红灯;按第二下按键K2,东至西、西至东通道亮红灯,南至北、北至南通道亮绿灯;再按下按键K2,消除特殊状态返回正常状态。
设计思路
由任务要求可以看出,东西南北四个方向总共要接12盏灯,所以使用P1口来控制南北方向的6盏灯,使用P2口来控制剩余的东西方向的6盏。
数码管使用P0口来控制,同时要接上上拉电阻,因为P0口是双向口,必须外接上拉电阻才能有高电平输出;而数码管的位控制总线接在引脚P3.0和P3.1上。
P1和P2具体的端口线如表中所示。
表1交通灯控制端口线分配及控制状况
P1.0
绿
P1.1
黄
P1.2
红
P1.4
绿
P1.5
黄
P1.6
红
P1端
P2.0
绿
P2.1
黄
P2.2
红
P2.4
绿
P2.5
黄
P2.6
红
P2端
北至南
南至北
西至东
东至西
正常情况
0
0
1
0
0
1
44F
1
0
0
1
0
0
11F
0
1
1
0
1
1
66F
1
0
0
1
1
0
31F
0
1
1
0
1
1
66F
1
1
0
1
0
0
13F
0
1
0
0
1
0
22F
0
1
0
0
1
0
22F
1
0
0
1
0
0
11
0
0
1
0
0
1
44F
1
0
0
1
1
0
31F
0
1
1
0
1
1
66F
1
1
0
1
0
0
13F
0
1
1
0
1
1
66F
紧急
0
0
1
0
0
1
44F
0
0
1
0
0
1
44F
特殊
0
0
1
0
0
1
44F
1
0
0
1
0
0
11F
1
0
0
1
0
0
11F
0
0
1
0
0
1
44F
按键K1、K2模拟紧急情况和特殊情况的发生,当K1、K2为高电平(不按按键)时,表示正常情况。
当K1为低电平(按下按键)时,表示紧急情况,将K1信号接至P3.2引脚即可实现外部中断0中断请求,按一下东西南北方向的红灯亮,再按一下恢复正常情况。
当K2为低电平(按下按键)时,表示特殊情况,将K2信号接至P3.3即可实现外部中断1中断请求,按第一下为东西绿灯、南北红灯亮,按第二下为南北绿灯、东西红灯亮,按第三下恢复正常情况。
程序的设计还使用到定时器T0,运用软件启动的方式,采用工作方式1给T0赋50ms的初值。
数码管显示倒数时间需要用到这个计时方式。
延时5s
东西南北黄灯
延时15s
南绿灯,北绿黄灯,东西红黄灯
东西绿灯,南北红灯
南北绿灯,东西红灯
东西南北红灯
按键次数对3求余为1
延时15s
延时25s
东西红灯,南北绿灯
延时5s
东西南北黄灯亮
延时15s
西绿灯,东绿黄灯,南北红黄灯
延时15s
东绿灯,西绿黄灯,南北红黄灯
延时25s
东西绿灯,南北红灯
按K1键奇数次
按K2键次数为3的倍数
开始
北绿灯,南绿黄灯,东西红黄灯
图3在正常情况下交通灯控制程序流程
图4定时器T0计数流程
中断响应
中断响应
K2按键次数加1
返回
返回
K1按键次数加1
(a)紧急情况(b)特殊情况
图5中断情况下交通灯状态流程
设计源程序:
#include
voidperform();//函数声明
voiddelay(unsignedchari);
voiddisplay();
voidinit();
unsignedcharcodeled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共阳0~9,关字型码
unsignedcharsec=0;//定义全局变量,数码管秒表时间
unsignedcharf=0,k=0;//定义全局变量,按键次数
unsignedcharcnt=0;//定义全局变量,50ms累加次数
unsignedcharc;//定义全局变量,显示时间值
voidmain()
{
init();//初始化
while
(1)
{
perform();//交通灯模式
}
}
voidinit()//初始化子程序
{
TMOD=0x01;//定时器T0工作方式1
TH0=(65536-50000)/256;//50ms初值
TL0=(65536-50000)/256;
EA=1;//打开中断总允许
EX0=1;//打开外部中断0允许位
IT0=1;//外部中断0为下降沿触发
ET0=1;//打开定时器T0允许位
EX1=1;//打开外部中断0允许位
IT1=1;//外部中断1为下降沿触发
}
voidperform()//交通灯模式子程序
{
if(k%3==0)//K2按键模式选择
{
if(f%2==0)//K1按键模式选择
{
TR0=1;//打开定时器T0
display();
if(sec>=0&sec<49)//东至西、西至东通道绿灯亮,南至北、北至南通道红灯亮
{
P1=0x44;
P2=0x11;
c=(50-sec)/2;//25秒时间显示
}
if(sec>=49&sec<79)//东至西通道绿灯亮,西至东通道绿灯、黄灯亮,南至北、北至南通道红灯、黄灯亮
{
P1=0x66;
P2=0x31;
c=(80-sec)/2;//15秒时间显示
}
if(sec>=79&sec<109)//西至东通道绿灯亮,东至西通道绿灯、黄灯亮,南至北、北至南通道红灯、黄灯亮
{
P1=0x66;
P2=0x13;
c=(110-sec)/2;//15秒时间显示
}
if(sec>=109&sec<119)//东至西、西至东、南至北、北至南通道黄灯亮
{
P1=0x22;
P2=0x22;
c=(120-sec)/2;//5秒时间显示
}
if(sec>=119&sec<169)//东至西、西至东通道红灯亮,南至北、北至南通道绿灯亮
{
P1=0x11;
P2=0x44;
c=(170-sec)/2;//25秒时间显示
}
if(sec>=169&sec<199)//南至北通道绿灯亮,北至南通道绿灯、黄灯亮,东至西、西至东通道红灯、黄灯亮
{
P1=0x31;
P2=0x66;
c=(200-sec)/2;//15秒时间显示
}
if(sec>=199&sec<229)//北至南通道绿灯亮,南至北通道绿灯、黄灯亮,东至西、西至东通道红灯、黄灯亮
{
P1=0x13;
P2=0x66;
c=(230-sec)/2;//15秒时间显示
}
if(sec>=229&sec<240)//东至西、西至东、南至北、北至南通道黄灯亮
{
P1=0x22;
P2=0x22;
c=(240-sec)/2;//5秒时间显示
}
}
if(f%2!
=0)
{
TR0=0;//关闭定时器T0
P1=0x44;//东西南北红灯亮
P2=0x44;
P0=0xc0;//数码管显示0
}
}
if(k%3==1)
{
TR0=0;//关闭定时器T0
P2=0x11;//东西绿灯,南北红灯亮
P1=0x44;
P0=0xc0;//数码管显示0
}
if(k%3==2)
{
TR0=0;//关闭定时器T0
P2=0x44;//南北绿灯,东西红灯亮
P1=0x11;
P0=0xc0;//数码管显示0
}
}
voiddelay(unsignedchari)//延时程序
{
unsignedcharj,k;
for(k=0;k
for(j=0;j<255;j++);
}
voiddisplay()//2位共阳数码管秒表显示
{
P3=0xfd;//选择P3.0控制的数码管
P0=led[c/10];//显示秒个位
delay(10);
P3=0xfe;//选择P2.1控制的数码管
P0=led[c%10];//显示秒十位
delay(10);
}
voidtime0_int()interrupt1//定时器T0子程序
{
TH0=(65536-50000)/256;//50ms初值
TL0=(65536-50000)%256;
cnt++;//50ms次数加1
if(cnt==10)//50ms*10=0.5s
{
cnt=0;
sec++;//0.5s次数加1
if(sec==240)//120s循环
{
sec=0;
}
}
}
voidint_0()interrupt0//紧急情况外部中断0
{
f++;
}
voidint_1()interrupt2//特殊情况外部中断1
{
k++;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 交通 信号灯 控制系统 设计