交通灯 课程设计.docx

上传人:b****8 文档编号:9951909 上传时间:2023-02-07 格式:DOCX 页数:25 大小:316.41KB
下载 相关 举报
交通灯 课程设计.docx_第1页
第1页 / 共25页
交通灯 课程设计.docx_第2页
第2页 / 共25页
交通灯 课程设计.docx_第3页
第3页 / 共25页
交通灯 课程设计.docx_第4页
第4页 / 共25页
交通灯 课程设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

交通灯 课程设计.docx

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

交通灯 课程设计.docx

交通灯课程设计

 

课程设计说明书

 

课程名称:

《单片机技术》

设计题目:

交通灯设计

院系:

学生姓名:

学号:

专业班级:

指导教师:

 

2012年5月18日

 

课程设计任务书

设计题目

交通灯设计

学生姓名

所在院系

电子信息与电气工程学院

专业、年级、班

设计要求:

1.具有电源开关及指示灯,有复位按键。

2.开始执行程序,,初始态为四个路口的红灯全亮之后,南北路口的绿灯亮东西路口的红灯亮,南北路口方向通车。

延时一段时间后南北路口的绿灯熄灭,黄灯开始闪烁。

闪烁若干次后,南北路口红灯亮,而同时东西路口的绿灯亮,东西路口方向开始通车,延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪烁。

闪烁若干次后,再切换到南北路口方向,之后重复以上过程。

学生应完成的工作:

1.根据应用系统的要求,初步掌握总体结构的方法和构思,从中选择一种最佳的设计方案;

2.根据应用系统结构规模的要求,掌握在单片机外部扩展系统硬件设计的基本过程;

3.根据设计任务和要求,首先画出程序总体流程图,然后进行各控制模块程序的设计、编写系统程序;

4.掌握如何应用单片机仿真器来开发应用系统及仿真调试的过程。

参考文献阅读:

[1]童诗白,华成英.模拟电子技术基础第四版[M].北京:

高等教育出版社,2006.

[2]邱关源,罗先觉.电路第五版[M].北京:

高等教育出版社,2006.

[3]周润景,张丽娜.基与PROTEUS的电路及单片机仿真[M].北京:

航空航天大出版社,2007.

[4]张毅刚,彭喜元.单片机原理及应用[M].北京:

高等教育出版社,2010.

工作计划:

5月7日至11日:

设计原理图;

5月12日至13日:

程序设计;

5月14日:

焊接电路;

5月15日:

烧程序并调试电路;

5月16日至18日:

撰写课程设计报告。

任务下达日期:

2012年5月7日

任务完成日期:

2012年5月18日

指导教师(签名):

学生(签名):

交通灯

摘要:

随着人们交通工具的不断发展和数量的不断增加,交通事故频频出现,交通灯越来越成为一种必需。

交通灯通常是由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。

绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。

交通灯的设计对于人们出行有着极其重要的意义。

本文介绍了基于AT89S52单片机设计的交通灯,通过对其编程使其驱动LED灯模拟现实生活中的交通灯运行,通过驱动数码管显示时间模拟生活中的交通灯的时间计时。

关键词:

交通灯;AT89S52单片机;LED灯;数码管

 

目录

1.设计背景1

1.1交通灯的背景1

1.2单片机简介1

2.设计方案2

2.1方案提出2

2.2方案论证2

3.方案实施3

3.1硬件电路3

3.2软件设计4

3.3系统调试与制作6

4.结果与结论8

4.1结果8

4.2结论8

5.收获与致谢9

6.参考文献10

7.附件11

附录1元器件清单11

附件2硬件原理图12

附件3系统仿真图12

附录4实物照片13

附录5源程序13

1.设计背景

1.1交通灯的背景

19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。

其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。

后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街道的第一盏信号灯。

在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。

后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。

不幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。

从此,城市的交通信号灯被取缔了。

直到1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。

稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。

1.2单片机简介

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称微控制器。

在MCS-51系列单片机中,有两个子系列:

51子系列和52子系列。

每个子系列有若干种型号。

51系列有5051、8751和8031三个型号,后来经过改进产生了80c51、87c51、80c31三个型号;52系列有5021、8752、8032三个型号,改进后的型号是80c52、87c52、80c32。

改进后的型号更加省电。

52比对应的51系列增加了定时器T2并将内部程序存储器增加到8kb。

Intel公司停止生产MCS-51系列单片机之后将成产权转让给了许多其他公司,于是出现了许多与MCS-51兼容的单片机。

现在生产MCS-51兼容单片机的公司对其进行了不同程度的改进和提高。

我们现在使用比较多的是AT89C51、AT89S51等。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:

CUP、IO接口、存储器等。

因此,单片机只需要和适当的软件及外部设备结合,并可以成为一个单片机控制系统。

单片机经过1、2、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化以及低电压低功耗化。

2.设计方案

2.1方案提出

方案一:

硬件采用单片机最小系统模块和交通灯显示电路模块,主要由单片机直接驱动NPN型或PNP型三极管进行驱动LED数码管显示。

由软件来译码,软件译码是用软件来完成硬件的功能,硬件简单,接线灵活,显示段码完全由软件来处理。

软件上采用主电路程序加上对应不同灯闪烁和计时的子程序,红灯20秒绿灯15秒黄灯5秒或采用红灯20秒绿灯17秒黄灯3秒,当主程序执行一遍后再循环执行。

方案二:

在方案一的硬件基础上改成由8位移位寄存器74LS164来静态驱动显示电路数码管显示,硬件译码就是显示的段码完全由硬件完成,单片机只要送出标准的BCD码即可,软件部分不变。

2.2方案论证

在硬件电路图仿真的时候通过对方案一和方案二对比发现方案二用8位移位寄存器74LS164驱动数码管静态显示的时候接线比较复杂,没有用方案一直接用三极管驱动简单,静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多,并且原理也不容易理解,用方案一实物制作时也可以简化板子排版。

在硬件通过仿真器的仿真还发现如果方案一用PNP型三极管驱动数码管的话数码管不能正常工作,于是换成NPN后能正常工作,最终决定采用NPN型三极管驱动数码管显示。

在交通灯闪烁或维持亮的时间问题上,通过在交通灯路口的观察和仿真后发现,黄灯闪烁5秒有点长,导致LED不能正常闪烁,使LED黄灯看起来是一直在亮而没有闪烁,于是把设置时间设定为闪烁3秒,红灯亮20秒绿灯亮17秒。

通过以上的方案一和方案二对比最终确定采用方案一。

 

3.方案实施

3.1硬件电路

本次单片机硬件电路设计总分为两大模块:

单片机最小系统模块和交通灯外围电路模块。

最小系统模块分为AT89S52单片机、时钟电路模块、复位电路模块、电源电路模块。

具体介绍如下:

3.1.1AT89S52单片机

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

3.1.2时钟电路模块

时钟电路模块采用现成的外部振荡器产生脉冲信号,利用11.0592Mhz的晶振和两个30pf的电容组合在一起形成时钟电路模块给单片机提供脉冲。

如图3.1所示:

图3.1时钟电路

3.1.3复位电路模块

复位电路模块采用按键手动电平复位电路。

按键手动电平电路复位是通过RST端经电阻与VCC接通来实现。

如图3.2所示:

图3.2复位电路

3.1.4电源电路模块

电源电路模块采用12V交流电经过三端稳压器W7805输出为5V直流电模块。

图中C2用于抵消输入线较长时的电感效应,一般选1UF。

电容C1用与消除输出电压的高频噪声,选取100UF的电容,用于输出较大的脉冲电流,为了防止输入端突然断开,C1将从稳压器输出端向稳压器放电,造成稳压器损坏。

因此,在二极管的输入端和输出端跨接一个二极管。

如图3.3所示:

图3.3电源电路

3.1.5显示电路模块

交通灯外围电路模块由东西南北四个方向的4个两位共阳一体数码管和东西南北4个方向的12个LED灯组成。

P0口驱动LED灯,P1口驱动八个八位数码管的段码,P3口驱动NPN型三极管来驱动数码管的位选。

如图3.4所示:

图3.4显示电路

3.2软件设计

在写程序之前需要根据课程设计要求先确定好程序流程图,然后根据程序流程图确定好主程序部分和需要的子程序部分。

具体介绍如下:

3.2.1程序流程图设计

根据设计要求设计如下主程序流程图3.5所示:

图3.5主程序流程图

 

南北灯数码管显示子程序流程图3.6所示:

图3.6南北灯数码管显示子程序流程图

南北黄灯闪烁子程序流程图3.7所示:

图3.7黄灯闪烁子程序流程图

3.2.2程序分析

根据设计流程图主程序主要就是定时器和串口的初始化设置,子程序包括一秒中断子程序、数码管显示子程序、黄灯闪烁子程序、红绿灯发亮子程序等,具体程序参照附件三。

3.3系统调试与制作

通过系统的软件和硬件的调试,硬件电路的调试主要用到了仿真软件Proteus,Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

软件的调试主要用到了Kiel,KielC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

通过软件的调试排出了软件程序中部分不正确的程序,从而实现了软件的正确,为后面的硬件连接垫定了基础。

仿真调试完成后,在仿真软件上实现了所需的设计要求,之后进行硬件连接,通过硬件调试,实现了设计要求。

在电路焊接的过程中应注意以下事项:

1.焊接时,要使焊点周围都有锡,将其牢牢焊住防止虚焊。

2.在焊接时,注意极性电容的极性。

3.芯片在安装前最好先两边的针脚稍稍弯曲,使其有利于插入底座对应的插口中。

4.在焊接时,不要把芯片插入底座上焊,防止烧坏。

5.晶振在焊接时应尽量和单片机靠近。

6.对引脚过长的电器元件,焊接完后,将其剪短。

 

4.结果与结论

4.1结果

在仿真软件Proteus上进行了硬件电路搭建,之后在Keil软件上编制源程序,生成.hex文件,第一次仿真发现数码管的闪亮不连续,LED黄灯并不闪烁,经过认真分析,确定是延时程序设计的时间太长,而导致数码管闪亮不连续。

又因为黄灯的闪烁设置的太快,导致黄灯看起来没闪烁,之后重新调整了黄灯闪烁程序,设计为每一秒闪烁一次,这样就完成了课程设计的要求。

之后在焊制电路板时,由于焊锡过多使复位按钮持续接触高电平,使上电之后单片机程序根本不运行,在拿着万用表一个一个脚仔细检查后发现问题所在并及时改正,最后完成了实物制作,实物能达到设计要求。

4.2结论

本系统采用AT89S52单片机为中心器件来设计交通灯控制器,本系统在充分利用单片机I/O引脚功能的前提下,我们实现了交通灯倒计时准确,红绿黄灯指示正确的功能,可以可靠应用到为解决道路拥堵的问题。

本设计电路简洁可靠性高,成本低廉。

由此可见,此设计是一种高可靠性,低成本的单片机交通灯设计方案。

本系统的不足之处在于没有遇到紧急情况时的应急处理机制。

如遇到特殊车种经过时交通灯该怎么亮、需要亮多长时间等等。

通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。

使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

 

5.收获与致谢

做了两周的课程设计,使我感受颇多,收获也颇多,收获有来自于单片机课程设计本身的,还有是关于人与人之间关系方面的。

单片机方面本来我学的不是很好,但是通过这次课程设计我把许多课本上迷茫的东西都弄清楚了,尤其是汇编程序这一块,因为我们的课程设计程序用到很多的子程序,老师在课堂上讲的时候没听太明白,这次理论联系实际真正明白了很多指令是用在什么地方的,对应控制哪个硬件的,都有了比较深的体会。

还有就是硬件实物制作这一块,因为之前有做过类似制作电路板的经历,所以一开始我觉得会非常简单,一下午就应该能搞定,但是具体做的时候,却发现了很多的问题。

之前的经历是器件的排布格式已经给出了,只要照着排器件就行了,但这次需要自己排布器件,因为这次器件比较多,我们最终商定用俩个板子实现,于是就费了很多的工夫。

但同时我们也意识到当遇到问题时不能简单的拿以前的经验来评估,那样会照成错误。

在人际关系之间我也学会了很多东西,如果没有团队的合作是根本完不成的,每个子模块的设计我们都查了大量的资料问了很多人,之间我们也产生了很多分歧,不过我们始终还是很冷静地去找出解决方案,而不是各执己见像其他组那样几个人争得面红耳赤,最终问题还是得不到解决。

我还发现只要我们几个配合的好,效率是很快的,当我们的硬件原理图最终确定,软件最终实现,仅仅用了一周就完成了,而别的组都还在忙着设计原理图和写程序。

在这次课程设计期间我要特别感谢我们的指导老师宋清华老师,她在我们拿不定主意的时候给了我们很多意见。

尽管她指导的组很多,但对于我们她还是非常的耐心。

正是一开始在我们迷茫的时候老师给了我们细心的指导,才使得我们组整体的课程设计有了大致的确定,为我们组高效的完成任务奠定了基础。

因此在这里我们要再一次感谢一下老师。

 

6.参考文献

[1]童诗白,华成英.模拟电子技术基础第四版[M].北京:

高等教育出版社,2006.

[2]邱关源,罗先觉.电路第五版[M].北京:

高等教育出版社,2006.

[3]周润景,张丽娜.基与PROTEUS的电路及单片机仿真[M].北京:

航空航天大出版社,2007.

[4]张毅刚,彭喜元.单片机原理及应用[M].北京:

高等教育出版社,2010.

 

7.附件

附录1元器件清单

元器件名称

型号规格

数量

备注

两位共阳一体数码管

7SEG-MPX2-CA

4

有极性电容

20pf

1

无极性电容

30pf

2

无极性电容

100uf

2

整流桥堆

2W10

1

三端稳压器

7805

1

开关

1

摁下就启开

单片机

AT89S51

1

电阻

500Ω

8

电阻

10k

1

发光二极管

红色4个

黄色4个

绿色4个

晶振

12mhz

1个

三极管

NPN型

4个

 

附录2硬件原理图

图7.1硬件原理图

附录3系统仿真图

图7.2系统仿真图

 

附录4实物照片

图7.3系统实物图

附录5源程序

ORG0000H

LJMPMAIN

ORG000BH

LJMPTIMER0INT//P3.4,P3.5控制东西数码管的位选,P3.6,P3.7控制南北数码管的位选

MAIN:

MOVSP,#60H

MOVDPTR,#TABLE//数码管段码地址送入DPTR

MOVP0,#0F6H//初始化路口交通灯全部为红灯

TIMERINIT:

//定时器0初始化为方式1,延时50ms

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVR1,#20//设置20个50ms中断为1s

SETBEA

SETBET0

SETBTR0

DOUBLE:

MOVP0,#0DEH//东西红灯亮,南北绿灯亮

MOVA,#20

MOVR0,A//R0用于保存累加器A的当前值

NEXT0:

//下一秒

SETBF0

HERE0:

LCALLDISPLAY1_20

LCALLDISPLAY1_17

JBF0,HERE0

MOVA,R0

DECA

LCALLYELLOWFLASH1

MOVR0,A

JNZNEXT0//红灯未亮20s,继续下一秒发亮

MOVP0,#0F3H//南北红灯亮,东西绿灯亮

MOVA,#20

MOVR0,A

NEXT1:

//下一秒

SETBF0

HERE1:

LCALLDISPLAY2_20

LCALLDISPLAY2_17

JBF0,HERE1

MOVA,R0

DECA

LCALLYELLOWFLASH2

MOVR0,A

JNZNEXT1

LJMPDOUBLE//进入下一次循环

TRAN:

//16进制转化为BCD码子程序

MOVB,#10

DIVAB

MOVR2,A//R2用于存放数码管显示的十位码

MOVR3,B//R3用于存放数码管显示的个位码

RET

DISPLAY1_20:

//东西红灯20S的点亮数码管

PUSHACC

LCALLTRAN

MOVA,R2

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#10H

LCALLDELAY10MS

MOVA,R3

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#20H

LCALLDELAY10MS

POPACC

RET

DISPLAY1_17:

//南北绿灯17秒倒计时

PUSHACC

CLRC

SUBBA,#3

JZFLASH1

JCFLASH1

LCALLTRAN

MOVA,R2

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#40H

LCALLDELAY10MS

MOVA,R3

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#80H

LCALLDELAY10MS

POPACC

LJMPOK1

FLASH1:

//南北黄灯闪烁程序

//MOVP0,#0FEH

//CPLP0.4

LCALLDISPLAY1_3

POPACC

OK1:

RET

DISPLAY1_3:

//南北黄灯闪烁数码管3s显示子程序

CLRC

ADDCA,#3

LCALLTRAN

MOVA,R2

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#40H

LCALLDELAY10MS

MOVA,R3

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#80H

LCALLDELAY10MS

RET

DISPLAY2_20:

//南北红灯倒计时20s闪烁

PUSHACC

LCALLTRAN

MOVA,R2

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#40H

LCALLDELAY10MS

MOVA,R3

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#80H

LCALLDELAY10MS

POPACC

RET

DISPLAY2_17:

//东西绿灯17S倒计时显示

PUSHACC

CLRC

SUBBA,#3

JZFLASH2

JCFLASH2

LCALLTRAN

MOVA,R2

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#10H

LCALLDELAY10MS

MOVA,R3

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#20H

LCALLDELAY10MS

POPACC

LJMPOK2

FLASH2:

//东西黄灯闪烁3秒倒计时子程序

//MOVP0,#0F7H

//CPLP0.1

LCALLDISPLAY2_3

POPACC

OK2:

RET

DISPLAY2_3:

//东西黄灯闪烁数码管显示子程序

CLRC

ADDCA,#3

LCALLTRAN

MOVA,R2

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#10H

LCALLDELAY10MS

MOVA,R3

MOVCA,@A+DPTR

MOVP3,#00H

MOVP1,A

MOVP3,#20H

LCALLDELAY10MS

RET

DELAY10MS:

MOVR7,#01H

DL1:

MOVR6,#26H

DL0:

MOVR5,#82H

DJNZR5,$

DJNZR6,DL0

DJNZR7,DL1

RET

YELLOWFLASH1:

//南北黄灯闪烁3秒倒计时子程序

PUSHACC

CLRC

SUBBA,#3

JZFAN0

JCFAN1

JNCRETURN1

FAN0:

MOVP0,#0FEH

FAN1:

CPLP0.4

RETURN1:

POPACC

RET

YELLOWFLASH2:

PUSHACC//东西黄灯闪烁3秒倒计时子程序

CLRC

SUBBA,#3

JZFAN2

JCFAN3

JNCRETURN2

FAN2:

MOVP0,#0F7H

FAN3:

CPLP0.1

RETURN2:

POPACC

RET

TIMER0INT:

PUSHACC

MOVTH0,#3CH

MOVTL0,#0B0H

MOVA,R1

DECA

MOVR1,A

JNZGO

CLRF0

MOVR1,#20

GO:

SETBTR0

POPACC

RETI

TABLE:

DB0C0H,0F9H,0A4H,0B0H

DB

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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