摘要
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软件结合,加以完善。十字路口车辆,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过801芯片的P1口设置红、绿灯燃亮时间的功能交通灯信号通过P口输出显示时间直接通过8255的P输出;实用性强操作简单第1章设计内容及要求 1
1.1引言 1
1.2课程设计目的 1
1.3设计内容 1
1.4设计要求 1
第2章系统总体方案设计 2
2.1智能交通灯设计方案论证 2
2.1.1方案分析说明 2
2.1.2方案对比 2
2.2系统组成 3
第3章交通灯系统硬件设计 5
3.1单片机的概述及硬件特性 5
3.2电路设计 5
3.3显示电路设计 5
3.4中断系统设计 6
3.5时钟电路设计 6
3.6功能控制电路设计 7
第4章交通灯系统软件设计 8
4.1主程序 8
4.2中断0程序 8
4.3中断1程序 10
第5章系统调试 11
5.1软件模拟调试 11
5.2硬件接线及调试 11
5.3调试结果 11
设计总结 12
致谢 13
参考文献 14
附录A:硬件电路图及仿真结果 15
附录B交通灯程序 16
第1章设计内容及要求
1.1引言
随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。
1.2课程设计目的
1.通过交通灯的设计,使我们能熟悉MSC-51单片机的工作原理,以方便交通灯的设计。
2.用P2口作为输出口,控制数码管的显示,实现计时和倒数,显示,调节的基本功能。
1.3设计内容
1、设计一款带左转、直行、右转三种通行绿灯;
2、带紧急按钮功能,当紧急按钮按下时,所有方向均亮红灯;
3、夜间运行模式按钮,按下时,所有方向黄灯闪烁;
1.4设计要求
1、方案合理、正确,系统稳定、可靠。
2、软件设计要求尽可能精练、简短和运行可靠。
3、硬件电路要求简单明了,以节约成本。
第2章系统总体方案设计
2.1智能交通灯设计方案论证
2.1.1方案分析说明
通过分析可以知道,所要设计的交通信号控制电路要能够适应于有一条干道和一条支干道的汇合点形成的十字路口。能够做到主、支的红绿闪亮的时间不完全相同。在路灯变红灯的过程能够用黄等进行过渡。使得行驶过程中的车辆有足够的时间停下来。还要求主、支干道各设一组计时显示器,能够显示相应的红、绿、黄的倒计时。还要求设计一个开关来控制在紧急情况下让个路口的信号灯都亮红灯。设计另一个开关来控制晚上各路口的信号灯都变为黄灯闪烁。
2.1.2方案对比
实现路口交通灯系统的控制方法很多,可以用标准逻辑电路器件,可用编程程序控制器和单片机等方案来实现。
用单片机方案来实现的话,模型可以由电源电路,单片机主控电路,无线收发控制电路和显示电路四部分组成。在电源电路中,需要用到+5V的直流稳压电源,主控电路的元件为MSC-51。硬件实际完成后还要利用计算机软件进行软件部分的设计才能实现相应的功能。
利用单片机系统设计的交通灯控制相对来说较稳定,能够完成较多功能的实现,故而在这次课题中,我们选择了基于MSC-51单片机交通灯设计方案来实现所需功能。
以单片机为核心,配以一定的外围电路和软件,以实现交通灯的功能。它由硬件部分和软件部分组成。系统设计方案的硬件电路设计框图如图2.1所示。
图2.1硬件电路设计框图
2.2系统组成
硬件电路由复位按钮、控制按钮AT89C51单片机、两个8位共阴极LED显示器、两个74LS48及五个显示灯等组成。
软件部分主程序主要由系统初始化段、交通灯的变化、调整时间子程序紧急停止程序、显示灯闪烁组成。单片机的选择
根据初步设计的分析,设计这样一个简单的应用系统,可以选择带有EPROMDE简单单片机,应用程序直接存储在芯片内,不用在外部扩展程序存储器,电路可以简化。Intel公司的8051和8751芯片均可以选用。此次设计我们选用的是8051单片机。管脚配置如下图所示。
图2-280C51单片机管脚配置图
第3章交通灯系统硬件设计
3.1单片机的概述及硬件特性
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
具有以下特性:
1、单片机集成度高。单片机包括CPU、4KB容量的ROM(8031无)、128B容量的RAM、2个16位定时/计数器、4个8位并行口、全双工串口行口。
2、系统结构简单,使用方便,实现模块化;
3、单片机可靠性高,可工作到10^6~10^7小时无故障;
4、处理功能强,速度快。
3.2电路设计
设计GO-BACK按钮实现复位和启动功能;设计CHANGTIME、LIGHTTIME、ADDTIME、CLEAR按钮实现时间调整;设计YELLOW按钮实现黄灯闪烁;设计RED按钮实现紧急停车。
3.3显示电路设计
设计五个显示灯。一个红灯用来表示停止通行;一个黄灯用来表示停车到通行的过渡;三个绿灯实现分别表示左转、直行、右转;设计一个LED显示器用来表示允许停车或通行的时间。LED数码显示灯电路
图3-1LED数码显示管
左边为东西方向倒计时数码显示,右边为南北方向倒计时数码显示
东西南北交通灯电路设计
图3-2各方向显示灯
3.4中断系统设计
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
图4-1主程序框图
4.2中断0程序
按下紧急按钮,红灯亮,其他灯熄灭。此时按下返回按钮,可以返回到正常工作状态。如按下调节时间按钮,开始调节左直右行的时间。按加时间按钮,增加左行灯的时间,按清零按钮,左转灯时间为零。按换灯按钮,可以换到调节直行灯,如此调节好三个灯的时间,然后返回到正常状态。
图5-1中断0程序框图
4.3中断1程序
当按下夜间模式按钮时,黄灯闪烁,其它灯熄灭,按返回按钮返回到正常状态。
图5-2中断1程序框图
第5章系统调试
5.1软件模拟调试
单片的程序用KEIL编写的。在KEIL内建立工程后建立汇编文件,编写MCS-51程序。
1.编译成功后,分模块调试,分别采用“白盒”和“黑盒”测试法验证程序的正确性。
2.将调试成功的各模块,合并到总程序中,进行总体性能测试。
3.联调PROTEUS进行硬件仿真,单步,断点调试,观察运行结果,并修改源程序。
4.打开PROTEUS软件,选择器件,连接电路图。
5.添加已经编译的HEX文件到单片机内。
6.单步运行,观察结果,比较预定结果,修改源程序。
7.总体调试运行。
8.分组测试,看是否达到任务要求。
5.2硬件接线及调试
单片机系统进行软件盒硬件调试成功后最后一步是进行硬件的连接和制作,我们的硬件是在试验台上进行的,虽然与设计的电路不太相同,不过可以适当修改源程序,以适应实验台的要求:
1.根据实验台情况和设计要求连接电路图。
2.在连接的电路上,进行模块测试,就是用简单的程序进行调试以确定电路连接正确。
3.将修改后的程序下载到单片机里,可以用伟福仿真系统,进行单步和断点调试,将运行结果和实验现象与预定值进行比较,再适当修改程序以达到要求。
5.3调试结果
调试结果记录,启动按钮出现了一款带左转、直行、右转三种通行绿灯。当紧急按钮按下时,所有方向均亮红灯。夜间运行模式按钮,按下时,所有方向红灯闪烁。可在现修改红绿灯等待间隔时间。能实现显示倒计时功能。重复进行上面操作,结果均符合设计要求。
设计总结
本系统就是充分利用了8051和8255芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了:1、带左转、直行、右转三种通行绿灯;2、带紧急按钮功能,当紧急按钮按下时,所有方向均亮红灯;3、夜间运行模式按钮,按下时,所有方向黄灯闪烁;4、可在现修改红绿灯等待间隔时间;5、显示倒计时等功能。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说是困难重重,毕竟是第一次做,难免会遇到过各种各样的问题,同时在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好。
在这次课程设计中,我在整个设计过程中懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习、工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
致谢
通过本次毕业设计,我们在申老师的精心指导和严格要求,在同学们无私的帮助下,获得了丰富的理论知识,它不仅是论文的基础知识,还有在论文查找过程中了解的其他方面的知识。丰富了头脑,懂得了更多。也极大地提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。
从开题选题到开题报告直至论文结束的这段时间里,我深深的意识到老师教给我们的不仅是书本理论知识,还有他们丰富的人生阅历,工作经验。此外,在我们的多个课程设计以及这次的毕业设计中,老师不厌其烦的教我们怎么看,怎么想,怎么做,如何发现并解决问题,如何将我们学到的理论知识与实际工程相结合,这对我们来说是全新的体验和无比宝贵的经验。因为有老师们三年来无私的奉献,我对未来充满了憧憬。
在这里深深的对三年来给了我们传授知识的老师们表示衷心的感谢,特别是我的论文指导申红军老师,谢谢你一遍又一遍的为我指导论文,指出我的不足,并且不厌其烦的帮助我修改,使我顺利完成我的毕业论文,真的谢谢各位老师的教导。并祝老师们在今后的教学生活中能够工作顺利,身体健康。
在此,忠心感谢申老师以及许多同学的指导和支持,在这里请接受我诚挚的谢意!
参考文献
1、《微型计算机原理及应用》许立梓编机械工业出版社2002
2、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000
3、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000
4、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000
5、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001
6、《微型计算机接口技术》邓亚平编清华大学出版社2001
7、《单片机原理及及应用》王迎旭编机械工业出版社2001
8、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002
9、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002
附录A:硬件电路图及仿真结果
A
附录B交通灯程序
#include"REG51.h"
voidDelay()
{
unsignedchari,j,k;
for(i=0;i<0xff;i++)
{
for(j=0;j<0xff;j++)
{
for(k=0;k<0x05;k++)
{
}
}
}
}
sbitRedLight=P1^0;
sbitYellowLight=P1^1;
sbitGreenLight=P1^2;
sbitRedLight2=P1^5;
sbitYellowLight2=P1^6;
sbitGreenLight2=P1^7;
sbitSW1=P2^0;
bitSW1_flag;
sbitSW2=P2^3;
main(){
unsignedchartype=0;
/type=0红灯亮,type=1黄灯亮,type=2绿灯亮,type=3黄灯亮/
while(1)
{
if(type==0)
{
RedLight=1;
YellowLight=0;
GreenLight=1;
RedLight2=0;
YellowLight2=0;
GreenLight2=1;
Delay();
Delay();
}
elseif(type==1)
{
RedLight=1;
YellowLight=1;
GreenLight=0;
RedLight2=0;
YellowLight2=0;
GreenLight2=1;
Delay();
}
else
{
RedLight=1;
YellowLight=0;
GreenLight=1;
RedLight2=1;
YellowLight2=0;
GreenLight2=1;
Delay();
Delay();
}
type++;
if(type>=3)
type=0;
}
}
voiddebouncer(void)
{inti;
for(i=0;i<2400;i++);
}
-现代交通灯设计
18
显示灯
功能按钮
AT89C5
LED显示器
74LS48
开始
打开外部0,外部中断
读取左转,直走,右转时间
点亮左转灯
保持左转灯亮,同时闪烁黄灯
同理,转到直走与右转灯
中断1是否按下
闪烁黄灯
返回是否被按下
继续主程序
返回主程序
是
是
否
否
是
是
否
否
是
否o
是
否
是
是
是
调节按钮是否按下
是
否
继续主程序
等待时间清零
调节另一灯的时间
返回主程序
是否按下返回到红灯
等待是否清零
按下加按钮增加等待时间
另一灯是否按下
返回是否被按下
点亮红灯
中断0是否被打开
|
|