毕业设计单片机交通灯课程设计课程设计报告.docx

上传人:b****5 文档编号:7181290 上传时间:2023-01-21 格式:DOCX 页数:19 大小:418.88KB
下载 相关 举报
毕业设计单片机交通灯课程设计课程设计报告.docx_第1页
第1页 / 共19页
毕业设计单片机交通灯课程设计课程设计报告.docx_第2页
第2页 / 共19页
毕业设计单片机交通灯课程设计课程设计报告.docx_第3页
第3页 / 共19页
毕业设计单片机交通灯课程设计课程设计报告.docx_第4页
第4页 / 共19页
毕业设计单片机交通灯课程设计课程设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

毕业设计单片机交通灯课程设计课程设计报告.docx

《毕业设计单片机交通灯课程设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《毕业设计单片机交通灯课程设计课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

毕业设计单片机交通灯课程设计课程设计报告.docx

毕业设计单片机交通灯课程设计课程设计报告

武夷学院

《单片机原理与应用》

课程设计报告

基于单片机的交通灯设计

 

院系:

机电工程学院

专业(级):

11电子信息工程

(1)班

姓名:

刀建平

学号:

20114081063

指导教师:

张淏

职称:

助教

完成日期:

2013年12月20日

 

目录

1引言1

2 设计任务与要求1

2.1设计任务1

2.2设计要求1

3方案总体设计2

3.1显示时间方案的选择2

3.2总体设计2

3.3总体设计2

4硬件设计4

4.1单片机最小系统4

4.1.1STC89C52单片机特性参数4

4.1.2STC89C52RC主要引脚功能4

4.1.3STC89C52RC的中断源5

4.1.4时钟电路5

4.1.5复位电路6

4.2数码换显示电路6

4.3红绿灯显示电路8

4.4整体电路9

5软件设计10

5.1KEILC简介10

5.2程序流程图10

5.3keil调试过程11

6系统仿真与实现13

6.1proteus仿真软件简介13

6.2仿真调试过程13

6.3实物制作15

6.4使用说明17

7设计总结17

谢辞18

参考文献19

基于单片机的交通灯设计

1引言

交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显作用。

本系统采用单片机89C52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用KEILC编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。

经过整机调试,实现了对十字路口交通灯的模拟。

中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。

智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。

使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。

2 设计任务与要求

2.1设计任务

通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力;通过交通信号灯控制系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼。

2.2设计要求

设计一个能够控制十二盏交通信号灯的模拟系统,:

利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。

3方案总体设计

本次课程设计的主要任务是设计复杂的十字路口交通信号灯控制系统,。

本模拟交通信号灯系统利用STC89C52单片机作为核心元件,实现信号灯对路面交通的智能控制。

从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理等问题。

系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。

3.1显示时间方案的选择

方案一:

采用数码管显示,半导体数码管不仅具有工作电压低、体积小、寿命长、可靠性高等优点,而且响应时间短(一般不超过0.1us),亮度也比较高。

方案二:

采用液晶显示,液晶显示器的最大优点是功耗极小。

但是,由于它本身不会发光,仅仅靠反射外界光线显示字形,所以亮度很差。

通过上述两种方案的对比,显然可以发现,对于交通灯时间的显示,数码管显示更加适合,可靠,所以选择方案一。

3.2总体设计

总体设计如图1所示。

图1总体设计图

3.3总体设计

首先了解实际交通灯的变化情况和规律。

假设一个十字路口如图

(2)所示东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。

红灯亮禁止通行,绿灯亮允许通行。

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。

初始状态1东西绿灯通车,南北红灯亮,禁止通车,人行道通行,行人可过。

过一段时间(10秒)后,转状态2,东西方向还是绿灯亮,南北方向还是红灯亮,黄灯开始闪烁,黄灯闪几下(5秒),即提示红绿灯状态将发生转换。

再转状态3,南北方向绿灯亮通车,东西方向红灯亮,即此方向禁止通车,人行道可通行。

黄灯熄灭后转状态4,南北方向还是绿灯,东西方向还是为红灯亮,闪几下黄灯(5秒),提示红绿灯显示状态将发生转换。

一段时间后,又循环至状态1。

列出交通信号灯的状态表如表1所示(1表示灯亮,0表示灯灭)。

图2十字路口示意图

表1红绿灯状态表

状态

西

红黄绿

红黄绿

红黄绿

红黄绿

1

001

001

100

100

2

011

011

110

110

3

100

100

001

001

4

110

110

011

011

对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,而且,东西方向与南北方向显示的状态相反,所以只要用一组就行了,因此,可采用单片机内部的I/O口上的P1口中的3个引脚即可来控制3个信号灯。

通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。

每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。

4硬件设计

4.1单片机最小系统

单片机最小系统由一块单片机、一个时钟电路和一个复位电路组成。

如图3所示。

图3最小系统结构图

4.1.1STC89C52单片机特性参数

STC89C52RC单片机8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;8K字节程序存储空间;256字节数据存储空间。

●增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.

●工作电压:

5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)

●工作频率范围:

0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz;

●用户应用程序空间为8K字节;

●片上集成512字节RAM;

●通用I/O口(32个),复位后为:

P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻,设计电路时需要注意这点。

●共3个16位定时/计数器,分别为T0,T1,T2.

4.1.2STC89C52RC主要引脚功能

STC89C51引脚图如图4所示,其主要芯片功能如下所示。

图4STC89C52引脚图

●VCC:

电源电压

●GND:

接地

●P0口:

P0口是一组8位双向I/O口。

P0口即可作地址/数据总线使用,又可以作为通用的I/O口使用。

●P1口:

P1是一个带内部上拉电阻的8准位双向I/O口,P1作为通用的I/O口使用。

●P2口:

P2是一个带有内部上拉电阻的8位准双向I/O口

●P3口:

P3口是一组带有内部上拉电阻的8位准双向I/0口

●RST:

复位输入

程序储存允许(

)输出是外部程序存储器的读选通信号

/VPP:

外部访问允许

●XTAL1:

振荡器反相放大器及内部时钟发生器的输入端

●XTAL2:

振荡器反相放大器及内部时钟发生器的输:

出端

4.1.3STC89C52RC的中断源

89C52有6个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、三个片内定时/计数器溢出中断TF0,TF1,TF2、一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制。

4.1.4时钟电路

此次设计的时钟电路由一个12MHz的晶振和两个22PF的陶瓷贴片电容组成。

89C52芯片内部有一个高增益反相放大器,用于构成振荡器。

引线XTAL1和XTAL2分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。

而电容器C1,C2起稳定振荡频率,并对振荡频率有微调作用,C1和C2可在20-100PF之间取值,这里取22PF。

电路如图5所示。

图5时钟电路

4.1.5复位电路

手动按钮复位需要人为在复位输入端RST上加入高电平。

一般采用的办法是在RST端和正电源Vcc之间接一个按钮。

当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。

手动按钮复位的电路如所示。

由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。

通常采用手动复位和上电自动复位结合,其电路如图6所示。

图6复位电路

4.2数码换显示电路

显示电路既可以选用液晶显示器,也可以选用数码管显示。

我采用的是数码管显示电路。

用1个二位共阴极数码管显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。

阴数码管的码表为如表2所示。

 

表2共阴数码管码表

0

1

2

3

4

5

6

7

8

9

0x3f

0x06

0x5b

0x4f

0x66

0x6d

0x7d

0x07

0x7f

0x6f

在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。

LED数码管的显示原理:

数码管有段选与位选两个使能端,由于采用共阴极数码管,要把数码管点亮,就必须给位选选通,至于显示什么数字,只需给段选输入数据即可。

通过给52单片机P1口送入初始值,并用P1口来控制段选位,P3.5、P3.6口来控制位显来实现动态显示,来显示各灯所在状态的显示时间。

8052单片机的P3口的三个端口接主干道的红、绿、黄灯,显示燃亮情况,通过两个八段显示器显示每个灯的燃亮时间,使灯和显示器时间同步。

在设计中,我们采用LED数码管动态显示,用P1口驱动显示。

由于P1口的输出级时,数码管显示的亮度不够,根据以前学习的知识及学长们的经验,只需给P1口强势上拉1K排阻,经实验验证,P1口上拉1K排阻后,数码管显示较亮。

电路图如图7所示。

图7数码管显示电路

其中单片机P口与数码管各引脚之间的连接关系分别为:

ØP1.0------a

ØP1.1------b

ØP1.2------c

ØP1.3------d

ØP1.4------e

ØP1.5------f

ØP1.6------g

ØP1.7------h

ØP3.5------2

ØP3.6------1

其中a,b,c,d,e,f,g,h在数码管上的位置如图8所示。

图8数码管

4.3红绿灯显示电路

在本次交通灯设计中,主干道上东西南北四个方向各三盏灯,分别是红灯、黄灯、绿灯。

由于东西方向与南北方向信号相反,红灯与绿灯信号相反,故只需3个端口即可控制这12盏灯的亮灭。

这些灯由三种颜色即红、黄、绿发光二极管代替,采用共阳极接法,故只需选择性的给这3个端口低电平,对应的二极管就被点亮。

显示电路如图9(当然,其中的数码管不包括在内)所示。

图9红绿灯显示电路

4.4整体电路

将各模块电路整合到一起就形成了系统工作电路,如图10所示。

在altiumdesigner中画出电路原理图,检查电路没有错误后,可在proteus环境下进行仿真,就可看到整个系统的工作状态,即可模拟出实际交通灯的工作状态。

图10整个电路工作原理图

5软件设计

5.1KEILC简介

KEILC51标准C编译器为8051微控制器的软件开发提供C语言环境,同时保留了汇编代码高效,快速的特点。

C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。

C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:

编译器,汇编  器,实时操作系统,项目管理器,调试器。

uVision2IDE可为它们提供单一而灵活的开发环境。

C51V7版本是目前最高效、灵活的8051开发平台。

它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。

5.2程序流程图

●主程序流程图

图11主程序图

如图11所示,当整个系统电路开始正常工作时,电路的运行状态将按照程序框图的顺序运行下去,最后进入循环状态,即可反映交通灯运行的状态。

●中断服务程序流程图

当系统电路上电后,系统初始化话后,程序从主程序开始进入中断程序,当计数溢出时,中断产生,红绿灯状态将发生转换,接着进入下一个状态,最后进入循环。

中断程序如图12所示。

图12中断服务程序流程图

5.3keil调试过程

在Keil中将程序代码编完后,点击rebuild键,编译看一开始,出现了好几个错误,经过好久的调试与更改后,编译时没报错,但是有些电路功能还是没弄出来,最后接近快三天的时候才将整个程序编出,终于将程序调试出来了。

编译成功后,先在keil中进行调试仿真。

先点击Start/StopDebugSession键后,显示界面如图13所示。

图13调试第一步

再点击Peripherals键,选择I/O-Ports->Port3,再点击几下Step键,显示如图14所示。

图14调试第二步

因为P3.5,P3.6分别控制共阴数码管的十位和个位,上图显示的是P3.6口的变化,说明数码管的个位在发生变化,最后再连续点击数下Step键,显示如图15,如上显示的是P3.5的变化,即数码管的十位数在变化。

图15调试第三步

在keil中调试完成后,接着进一步软件测试,即可进行电路仿真。

6系统仿真与实现

6.1proteus仿真软件简介

Proteus是世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等。

6.2仿真调试过程

在Keil中调试完成后,再到proteus中进行仿真。

首先在proteus中需要的元件依次找出来,根据电路所需要实现的功能画好电路原理图,当检查电路完全没有错误后,双击芯片,再将在keil中生成的hex文件导入芯片,接着点击play键开始进行电路仿真。

其中,此次的交通灯整个中循环共有四个工作状态。

状态一:

点击play键,电路开始进行仿真,此时红绿灯显示的情况为:

东西方向为绿灯亮,南北方向为红灯亮,即东西方向通行,南北方向禁止通行,交通灯显示状态如图16所示。

图16状态一

状态二:

在开始仿真经过10秒后,黄灯开始闪烁,红绿灯的状态将发生变化,即东西方向、南北方向的通行状态即将发生变化,显示情况如图17。

图17状态二

状态三:

在状态二即黄灯开始闪烁5秒后,东西方向与南北方向的红绿灯的状态发生变化,即通行状态发生变化,显示情况如图18。

图18状态三

状态四:

在状态三进行10秒种的过程中,东西方向、南北方向红绿灯显示的状态不变,10秒钟之后,黄灯开始闪烁,即东西方向,南北方向的显示状态将发生变化,也就是说通车状态将发生转换。

状态四某一时刻的状态如图19所示。

图19状态四

黄灯闪烁5秒后,现行状态即将发生变化,将进入状态一,即开始进入循环。

6.3实物制作

在proteus中仿真成功后,说明电路原理图及程序代码没有错误,根据电路原理图就可以开始动手做板子,在刚刚开始动手时,总感觉时间不够,而且这种心态一直持续了将近三天。

因为我在编写程序代码上不是很顺利,总是会有一点问题出现,在尝试了多次更改后,一些功能总是不能实现,后来再看了别人的一些程序然后仔细分析自己的程序,才知道自己的程序的不当之处,最后才将程序编写出来。

至于自己为什么会编不出来,我觉得自己以前编写程序时只是套用别人的程序,也没有去想为什么要这样写,所以才会犯如此的错误;在画洞洞板布线图时,由于没有注意洞洞板的规格,导致在焊接时出现洞洞板太小,放不下所有的线路,所以得重新焊。

从而导致浪费了一块板子,而且也浪费了一定的时间与精力;再有就是在第二次焊接完后,没有仔细的检查焊接的怎么样就直接去烧程序到单片机上,结果发现自己做的板子一点反应也没有。

之后检查才发现原来是最小系统的时钟电路没有接地。

修改后最后才将实物做成功。

实物图正面、反面如图20、图21所示。

图20实物正面

由于在做实物的过程中,没有仔细的考虑板子的大小问题,导致在焊了一部分的时候才发现有些先焊不下去了,因为没地方可放线了,没办法,最后只能重新拿一块板子再焊。

焊接之前发现不论怎样调整线路,总是存在飞线,正如反面所示。

这可能是元件布局没做好,相信在做PCB印刷板时定然不会有飞线。

图21实物反面

总而言之,在制作实物的过程中,存在着软件方面和硬件方面的问题。

软件方面主要是程序的问题,编写程序有的时候忘记声明,有的时候忘记定义变量就直接用,有的时候就是死记程序来着,完全没弄清出事怎么回事就直接写,还有就是编写程序时符号用的是中文环境下的,其中最后这一条是最不好找出来的。

唯有谨记这些教训,以后才能少走弯路。

硬件方面的问题,主要是焊接时候的问题。

焊接前的认真将元件合理的布局。

焊接的时候,要井然有序,不能这里花费一下,那里花费一下,否则很容易出现漏焊的问题,再说这样做也便于检查。

6.4使用说明

通过下载器将编好的程序通过下载软件烧入单片机,下载成功后,以后只需给单片提供5V的电源,按下6脚按键开关,电路立即接通,交通灯就可正常工作。

交通灯正常工作时,按下4脚按键开关后立即松掉,即按下复位键,单片机就重新开始工作,即交通灯从初始状态开始工作。

7设计总结

经过一个星期的努力,终于将交通灯实物做出来了。

顿时,整个人感觉轻松多了。

现在回想起来,还真是别有一番滋味。

可以说,这一个星期,很辛苦,但收获也很大。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,,对已有知识有了更进一步的理解和认识,动手实践能力也有了一定的提高。

在此,由于自身能力有限,在课程设计中碰到了很多的问题,但通过查阅相关书籍、资料以及和周围同学及学长们交流后都得以一一解决。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。

但是在我们设计和调试的过程中,也发现了一些问题,譬如红绿灯规则效率还不是很高,设计的系统电路功能不是很健全等等,这都需要在实践中进一步完善。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在单片机编程这方面有一个大的发展。

 

谢辞

 感谢我的指导教师张淏老师,本论文从开始到完成,每一步都倾注了张淏老师大量的心血。

是他给了我大力的支持与帮助、耐心的辅导与解惑。

而且还给了我很多就业上的见意。

张淏老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,使我感受到他朴实无华、平易近人的人格魅力。

他是我日后学习、工作与生活中的最好的榜样!

还要感谢我的舍友,在我最无力的时候帮助我,焊接过程中很是烦躁,是你们陪着我一点点焊接完,并实现功能。

参考文献

[1]何立民.单片机应用系统设计[M].北京:

北京航空航天大学出版社,1990:

34-35.

[2]徐惠民,安德宁.单片微型计算机原理接口及应用[M].北京:

北京邮电大学出版社,2000:

126-129.

[3]付晓光.单片机原理与应用技术[M].北京:

清华大学出版社,2004:

138-141.

[4]李维祥.MCS-51单片机原理与应用[M].天津:

天津大学出版社,2002:

55-56.

[5]李广弟,朱月秀,王秀山.单片机基础[M].北京:

北京航空航天大学出版社,2001:

44-47.

[6]沙占友,葛家怡,马洪涛.集成化智能传感器原理与应用[J].北京:

电子工业出版社,2004:

74-81.

[7]张伟.单片机原理及应用[M].北京:

机械工业出版社,2002:

174-180.

[8]李玉峰,倪虹霞.MCS-51系列单片机原理与接口技术[M].北京:

人民邮电出版社,2004:

128-129.

[9]李勋,刘源.单片机实用教程[M].北京:

北京航空航天大学出版社,2006:

11-12.

[10]陈光东.单片微型计算机原理与接口技术.武汉:

华中理工大学出版社,1999:

64-71.

[11]李朝青.单片机原理与接口技术[M].北京:

北京航空航天大学出版社,2005.5.

[12]楼然苗等.51系列单片机设计实例[M].北京.北京航空航天出版社,2003.3.

[13]何立民.单片机高级教程[M].北京.北京航空航天大学出版社,2001.

[14]赵晓安.MCS-51单片机原理及应用[M].天津.天津大学出版社.2001.3.

[15]肖洪兵.跟我学用单片机[M].北京.北京航空航天大学出版社,2002.8.

[16]夏继强.单片机实验与实践教程[M].北京.北京航空航天大学出版社,2001.

[17]于凤明.单片机原理及接口技术[M].北京.中国轻工业出版社,1998.

[18]阎石.数字电子技术基础[M].北京.高等教育出版社,2005.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1