单片机模拟交通灯系统带多功能加蜂鸣器含源代码仿真图.docx
- 文档编号:15282533
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:29
- 大小:432.42KB
单片机模拟交通灯系统带多功能加蜂鸣器含源代码仿真图.docx
《单片机模拟交通灯系统带多功能加蜂鸣器含源代码仿真图.docx》由会员分享,可在线阅读,更多相关《单片机模拟交通灯系统带多功能加蜂鸣器含源代码仿真图.docx(29页珍藏版)》请在冰点文库上搜索。
单片机模拟交通灯系统带多功能加蜂鸣器含源代码仿真图
单片机课程设计论文
摘要
本系统由单片机系统、键盘、LED显示、蜂鸣器、交通灯演示系统组成。
系统包括人行道、左转、右转、以及基本的交通灯的功能。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。
本设计是单片机控制的交通灯控制系统。
单片机即单片微型计算机。
由RAM,ROM,CPU构成,其集定时、计数和多种接口与一体的微控制器。
它体积小、成本低、功能强,广泛的应用于只能产业和工业自动化上。
而51系列单片机是各类单片机中最为典型和富有代表性的一种。
本设计的意义在于通过具体控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。
使大家能在实践教学环节中,积累设计经验,开拓思维空间,全面提高个人的综合能力。
红绿灯控制是智能交通系统的一个重要部分,本文给出了一个用单片机控制的简易交通红绿灯自动控制系统。
该系统适用于十字路口,并对放行和禁行时间进行倒计时显示(秒)。
在车辆通行繁忙的十字交叉路口设置的交通灯控制系统,其特点是:
道路较窄而车流量较大,主干道,支干道的车辆通行时间不等,,同时设有道路应急控制。
具体的情况是:
在正常的情况下,东西支干道通行时间为20秒,南北主干道通行时间为30秒,每个方向在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。
并且能够在人工监控状态下,如果一道有车而另一道无车,交通灯控制系统能立即让有车道放行。
而且有紧急车辆要求通过时,系统要能禁止普通车辆通行。
关键字:
单片机红绿灯AT89C51Proteus仿真
1概述
1.1课题名称……………………………………………………………………3
1.2设计要求……………………………………………………………………3
1.3设计意义……………………………………………………………………3
2系统总体方案及硬件设计
2.1芯片的选择与简单介绍……………………………………………………4
2.2工作原理……………………………………………………………………6
2.3电路原理图…………………………………………………………………7
2.4单片机最小系统……………………………………………………………7
2.5时间显示电路………………………………………………………………8
2.6交通灯电路…………………………………………………………………9
3软件设计
3.1整体系统分析………………………………………………………………9
3.2相关参数计算………………………………………………………………10
3.3程序流程图…………………………………………………………………10
4Proteus软件仿真
4.1系统仿真电路图……………………………………………………………11
4.2仿真结果分析………………………………………………………………12
5课程设计体会……………………………………………………………………12
6参考文献…………………………………………………………………………14
附1:
元器件清单…………………………………………………………………15
附2:
系统原理图…………………………………………………………………15
附3:
程序清单……………………………………………………………………16
1概述
1.1课题名称
单片机控制的交通灯控制系统设计
1.2设计要求
1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改;
2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;
3)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法);
4)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行;
5)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟;
6)有盲人禁行模式,东西南北红灯亮时蜂鸣器响。
1.3设计意义
国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:
1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。
2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。
3.没有考虑盲人过马路问题,可以加上蜂鸣器使盲人听到“红灯”。
基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。
利用单片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率。
2系统总体方案及硬件设计
2.1芯片的选择与简单介绍
主控芯片采用AT89C51单片机(其管脚图如图1所示)。
单片机,亦称单片微型计算机。
它是把中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
于是,微型计算机(即单片机)在这种情况下诞生了。
纵观生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。
如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。
MCS-51单片机是指由美国INTEL公司(大名鼎鼎的INTEL)生产的一系列单片机的总称,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。
8051单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
1.中央处理器(CPU)
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2.数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
3.程序存储器(内部ROM):
程序存储器用于存放程序和固定不变的常数等。
通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。
AT89C51内部配置了4KB闪存。
3.1.定时/计数器(ROM):
定时/计数器用于实现定时和计数功能。
AT89C51共有2个16位定时/计数器。
3.2.并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
每个口都由1个锁存器和一个驱动器组成。
它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。
4.全双工串行口:
A89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
5.时钟电路:
时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。
6.中断系统:
中断系统的作用主要是对外部或内部的终端请求进行管理与处理。
AT89C51共有5个中断源,其中又2个外部中断源和3个内部中断源。
7.定时/计数器
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
2.2工作原理
由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。
采用中断方式实现按键的功能。
2.3电路原理图
图3
2.4单片机最小系统
图4
单片机最小系统以80SC51为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。
89C51单片机系列是MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺,CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点。
时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C2,C3为30pF。
复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效.上电自动复位通过电容C1和电阻R4来实现,按键手动复位是图中复位键来实现的。
2.5时间显示电路
图5
因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间(如图5所示)。
数码管使用共阴数码管,需要在片选端加三极管放大电流和段选端加驱动以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。
2.6交通灯电路
本设计利用单片机的p1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管(如图6所示),实际电路中在东西、南北红灯处还各并联了一个蜂鸣器,蜂鸣器也需要加三极管放大电流,才能正常工作。
图6
3软件设计
3.1整体系统分析
总体流程图(实现各种状态间的转换):
图7
图8
3.2相关参数计算
T0的计数初值:
X=216-12*50*1000/12=15536=3CB0H
3.3程序流程图
图9
4Proteus软件仿真
4.1系统仿真电路图
1.交通灯控制系统正常运行时仿真图(见图10)。
图10
2.交通灯南北方向绿灯向红灯转变,黄灯闪烁时仿真图(见图11)。
4.2仿真结果分析
仿真实验实现南北方向车道和东西方向车道两条交叉道路的车辆交替运行,南北方向(主干道)每次通行时间设为30秒、东西方向通行时间设为20秒,时间可以在程序中修改。
同时能够实现红灯、黄灯、绿灯状态转换,红绿灯转换时间为5秒,转黄期间黄灯亮。
可以准确显示每个状态所剩余的时间,按下禁行普通车辆键,东西南北方向都亮红灯;按下南北放行键,南北绿灯亮,东西红灯亮;按下东西放行键,东西绿灯亮,南北红灯亮;任何时候按下返回键,此系统都将回到初始状态,当紧急状况出现时,按下紧急开关,可实现主干道和支干道全部禁止通行,允许紧急车辆安全通行,实现了课程设计的要求。
5课程设计心得体会
这次单片机课程设计,我们选的模拟交通灯系统这个题目,在这两个星期的时间里我们三个人合作成功的完成了我们的作品我是我们组的组长,因为之前有过一定的实践经验,所以在完成作品过程中负责查找资料、指导协助两位组员完我们的作品。
我觉得做单片机课程设计是十分有意义的,在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
这次单片机课程设计我们历时两个星期,两个星期里我们最开始选题、然后做仿真、焊电路板、再改正我们焊接和程序里的错误之处,最后作品成功完成,最后成功的那一刻使我们最开心的时候,我们的辛苦没有白费,作品也得到了老师的肯定。
这次课设中遇到的主要问题是共阴极数码管太暗,我们一开始给数码管加上三极管后觉得应该可以了,可是最后还是不够亮,最后请教了同学和老师才知道要想变亮应该再给数码管段选加驱动芯片,加了驱动后数码管果然亮了,这让我们非常开心!
这次课程设计查阅了大量的资料,我更加全面的掌握了单片机知识,也学会了仿真,熟悉了用protle画图,掌握了kile软件的用法,掌握了调试程序的方法,我想这些能力都是我们作为一名自动化专业学生必须掌握的。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,难免会遇到各种各样的问题。
在最后我们也得到了老师的建议,谢谢老师对我们的指点!
(王海妮)
两周的时间匆匆而过,由于各种考试、试验,我们的单片机课程设计集中在了这最后的两周,总的来说时间有点仓促,不过经过两周的努力工作,终于完成了这次的单片机课程设计。
我们的这次课题是基于51单片机设计交通灯,我们这组三个人,明确了自己的分工,我负责程序这块,其他两个负责焊接和实验报告的部分。
在试验过程中,我们遇到了一些难题,比如在仿真环节上,焊接电路上,我们都遇到了不小的问题,最严重的一个就是数码管的亮度问题,我们向其他同学请教,向老师请教,在这个问题上花费了两天多的时间,当我们最后一次接上电路时,当我们看到数码管亮起的时候,我们都兴奋的跳了起来,因为我们两天多时间上都花在这上面,线路都焊接了n次,焊接好电路,把我们设计好的程序加载上去的时候,所有功能都按我们预期的实现了,看到我们的劳动成果时,那种喜悦,那种成就感,是无法言语的。
当今天拿着我们的成果让老师验收时,老师给我们这组提了一些更智能化的建议,还夸奖了我们这组做的真的挺不错,还建议我们去参加比赛,顿时,我们的努力没有得到白费,自豪之情油然而生。
不过,我们不会骄傲,会向更远处走去。
通过这次实习,我学会了很多知识,学会了一些画图软件和仿真软件,对单片机原理、各条指令、各个端口功能有了更进一步的了解和巩固。
在试验过程中,我学会了克制、冷静。
这次的课程设计让我受益匪浅。
(叶骏)
经过这次课程设计实践,我收获颇多。
在这次实践中我负责焊接的任务,其他两个组员则分别负责程序和报告的任务,但我们不是单独工作,而是相互协作相互帮助,达到了共同完成此次课程设计实践的目的,并且我们完成得很出色。
这是我们每个组员都感到骄傲和自豪的地方。
在此次课程设计实践中,我主要负责焊接部分。
经历过焊接实践的我一开始也认为它只是单纯的焊接,不需要任何知识和经验的积累,但实际我显然错了。
这就使得我开始的焊接进程有些困难。
但经过不断的实践和经验积累,我主动去了解和掌握相关焊接线路的结构、程序和知识,渐渐地焊接进程不断加速和熟练,随后的焊接过程也变的游刃有余。
很快我的焊接任务变得畅通无阻,一口气完成了。
在焊接过程中会出现一些细小的问题,但就是这些细小纷繁的问题就有可能导致最终的结果与理想的相偏差很大。
比如导线的虚焊,触点的短接等等。
这些我在焊接过程中都必须注意。
一旦焊成成品,检查错误是很难的一件事,与其一一检查错误还不如在焊接过程中多注意,仔细焊接。
在焊接过程中,排版电子器件、元件也是一步很重要的过程,排版的清晰程度反映着焊接思路的清晰程度,如果排版纷乱就会导致焊接思路的混乱,最终使得焊接线路错误多出影响焊接进程,最终拖延整体项目的进程。
所以在焊接之初,我花费了较多时间在排版上,但这反而使得我焊接的效率更大的提高了,和其他小组相比,这一点我感到很自信。
经过这次课程设计实践,我感觉收获匪浅,不仅在焊接这部分,而且在程序的编排和试验的部分也有很大受益。
同时也十分感谢老师的指导和监督,才使得我们的项目得以顺利完成。
(岳超)
参考文献
[1]柴钰单片机原理及应用[M].西安:
西安电子科技大学出版社2009
[2]余发山王福忠单片机原理及应用技术[M].徐州:
中国矿业大学出版社2008.
[3]吴黎明单片机原理及应用技术[M].北京:
科学出版社2003.
[4]刘乐善微型计算机接口技术及应用[M].北京:
华中科技大学出版社2004.
[5]李伯成.基于MCS-51单片机的嵌入式系统的设计[M].北京:
电子工业出版社,2004.
[6]吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术[M].北京:
科学出版社,2005.
附录一元件清单
STC89C52单片机
1个
按键
5个
红黄绿发光二级管
各4个
排针
若干
蜂鸣器
2个
驱动芯片74HC245
1个
共阴极数码管
2个
三极管8550
6个
电阻
若干
32.768KHZ晶振
1个
附录二系统原理图
·
附录三程序清单
/*#include
#include
#defineucharunsignedchar/*定义字符串类型为无符号型*/
ucharcodea[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
ucharcodeb[4]={0x0D,0x0E,0x07,0x0B};/****P2口,低有效*/
ucharcodec[4]={0xDE,0xDD,0xF3,0xEB};/****P1口,低有效*/
charSN=25,WE=30;
charSN_G=25,WE_G=15,Y=5;
uchari,k=0,count=0;
voiddelay(uchart);/*定义函数*/
voidlight();/*定义函数*/
voidled();/*定义函数*/
sbitK0=P3^7;/*开关K0接P3^7管脚*/
sbitK1=P3^6;/*开关K1接P3^6管脚*/
sbitK2=P3^3;/*开关K2接P3^3管脚*/
sbitK3=P3^5;/*开关K3接P3^5管脚*/
sbitK4=P3^2;/*开关K4接P3^2管脚*/
/*程序初始化*/
voidinit(void)
{
/*12MHz*/
TMOD=0x01;/**计数器用模式1,为16位计数器*****/
TH1=(65536-50000)/256;/*0x3C*/
TL1=(65536-50000)%256;/*0xB0*//*计50000个数,用时50ms*/
IT0=1;/*外部中断0为边沿触发方式*/
ET0=1;/*允许T0中断*/
TR0=1;/*启动计数器*/
EA=1;/*CPU开放总中断*/
EX0=1;/*允许外部中断0中断,即允许响应端口P3^2(K4)中断*/
EX1=1;/*允许外部中断1中断,即允许响应端口P3^3(K2)中断*/
}
/*中断0处理程序*/
voidint0(void)interrupt0
{
EA=0;/*CPU禁止响应一切中断*/
P1=0xDB,P0=a[0];/*东西南北方向均红灯亮,P0口输出0*/
for(;;)/*无条件循环*/
{
P2=b[0],P0=a[(SN_G+Y)%10];/*南北方向数码管显示可通行时间的个位*/
delay(5);/*延时*/
P2=b[1],P0=a[(SN_G+Y)/10];/*南北方向数码管显示可通行时间的十位*/
delay(5);/*延时*/
P2=b[2],P0=a[(WE_G+Y)%10];/*东西方向数码管显示可通行时间的个位*/
delay(5);/*延时*/
P2=b[3],P0=a[(WE_G+Y)/10];/*东西方向数码管显示可通行时间的十位*/
delay(5);/*延时*/
/*设置南北方向通行时间*/
if(K0==0)/*P3^7=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K0==0)
{
while(!
K0)/*当松开K0开关时,跳出空循环,执行后面的程序*/
{
}
SN_G++;/*南北方向绿灯时间+1*/
if(SN_G==100)
SN_G=0;/*由于使用的是两位数码管,当南北方向绿灯时间加到100后清零*/
}
}
/*设置东西方向通行时间*/
if(K1==0)/*P3^6=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K1==0)
{
while(!
K1)/*当松开K1开关时,跳出空循环,执行后面的程序*/
{
}
WE_G++;/*东西方向绿灯时间+1*/
if(WE_G==100)
WE_G=0;/*由于使用的是两位数码管,当东西方向绿灯时间加到100后清零*/
}
}
/*返回*/
if(K3==0)/*P3^5=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K3==0)
{
while(!
K3)/*当松开K3开关时,跳出空循环,执行后面的程序*/
{
}
count=0;/*清零*/
k=0;/*南北方向通车,东西方向不通车*/
SN=SN_G,WE=SN_G+Y;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/
light();/*调用交通灯函数*/
led();/*调用数码管函数*/
EA=1;/*CPU开放总中断*/
break;/*跳出*/
}
}
}
}
/*中断1处理程序*/
voidint1(void)interrupt2
{
P1=0xDB,P0=a[0];/*东西南北方向均红灯亮,P0口输出0*/
EA=0;/*CPU禁止响应一切中断*/
TR0=!
TR0;/*计数器停止工作*/
for(;;)/*无条件循环*/
{
/*数码管扫描程序,*/
P2=b[0];/*显示南北方向个位*/
delay(5);/*延时*/
P2=b[1];/*显示南北方向十位*/
delay(5);/*延时*/
P2=b[2];/*显示东西方向个位*/
delay(5);/*延时*/
P2=b[3];/*显示东西方向十位*/
delay(5);/*延时*/
/*返回*/
if(K3==0)/*P3^5=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K3==0)
{
while(!
K3)/*当松开K
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 模拟 交通灯 系统 多功能 蜂鸣器 源代码 仿真
![提示](https://static.bingdoc.com/images/bang_tan.gif)