当前位置:文档之家› 基于51单片机的模拟交通灯课程设计报告

基于51单片机的模拟交通灯课程设计报告

模拟交通灯控制系统的设计
一、功能要求
利用红、绿、黄三种不同颜色的LED显示不同的通行情况,利用2个数码管进行1秒倒计时显示,最大定时时间为90秒;要求LED点亮时间和倒计时时间准确;完成单片机最小系统及其扩展设计,焊接电路板,组成功能完整的样机。

模拟实际交通灯控制系统功能,完成控制软件的编写与调试。

二、方案论证
采用标准AT89C51单片机作为控制器;东、西、南、北各方向通行倒计时显示采用2位LED数码管,LED显示采用直接驱动方式;模拟交通信号灯采用直径为ψ5mm的圆形发光二极管;紧急车辆通行采用实时中断完成;通过蜂鸣器实现盲人提示功能。

按以上系统构架设计,单片机端口资源刚好满足要求,该系统设计方便,电路简单。

三、系统硬件电路的设计
整套电路系统由控制系统模块、通行灯控制显示模块、时间显示模块、特种车辆通行控制模块和盲人提示电路模块等组成。

1、主控制系统
主控制器采用AT89C51单片机的P1.0~P1.5脚用于控制东西及南北方向的通行灯,P1.6脚用于控制盲人提示电路;P0口及P2 口用于4组2位LED计时器的控制;特种车辆通过时使用外部中断0口(P3.2).
5、盲人提示电路模块
道口控制系统设计中也考虑到了方便盲人过人行道的声音提示电路,采用蜂鸣器作为声
括信号灯提示、数码管倒计时显示、盲人提示功能和紧急车辆通行功能等)。

1、初始化程序
初始化程序主要包括声明IO口的连接对象、声明7段LED数码管驱动信号数组、声明基本变量、定义无返回函数(延时函数)。

2、主程序
主程序主要负责总体程序管理功能,实现信号灯显示与数码管倒计时显示,以及蜂鸣器提示和特种车通行提示。

主程序流程图如下
子程序流程图如下
状态1
状态2
状态4 状态5
五、调试及性能分析
1、硬件部分首先应用Proteus软件对电路原理图进行检查,检查无误后进行焊接,焊接结束后利用万用表检查线路是否为通路。

2、软件部分首先应用keil u4软件对程序进行编译和调试,调试成功后,利用Proteus 软件进行在线仿真,经过对程序多次地修改后,仿真效果达到了预期的要求。

3、将最终调试好的程序烧录到单片机内,观察效果。

本系统以STC89C51单片机为核心,采用高亮度两位7段数码管并应用74LS245对数码管进行驱动,可以很直观地显示红绿灯的开放及关闭时间;功能完善,不仅有普通交通灯的指示功能,还增加了特种车辆通行和盲人提示功能。

其控制功能与效果与真实道口管理红绿灯完全一致。

六、小组成员总结
心得体会
问婉茹
为期两周的课程设计已接近尾声,此次课程设计我们的任务是交通灯,刚开始的时候,几乎没有一点头绪,不知从何下手,可是真正完成了之后,觉得其实也并不是特别困难,只要找到线头,顺着它一步步往下走,就可以顺利到达终点。

通过这一学期对单片机的学习,已经对单片机有了基本的了解,但那要说真正理解,我觉得差的还不是一点点,毫无疑问,这次的课程设计就给了我们一个深入学习单片机,提高动手能力与团结合作的大好机会。

这次课程设计中,我负责的主要是硬件,包括各种元件的检查,电路的焊接。

提到焊接就感到惭愧,由于以前在这方面经验比较少,加之为了元件排版美观,导致电路板背面得导线焊得一塌糊涂,正如杨老师所说,一碗面条。

以后在焊接方面还是有待提高,多动手。

虽然没有负责软件,但比起以前,还是对程序以及此次用到的几个软件有了一点了解。

总之,这次课程设计还是让我收获挺多的不管是软件,硬件还是团结协作方面。

当然,任何事情都不是一次就能成功的,必须经过多次的尝试并改善才能得到最好的。

在这次设计中,我们也不可避免的遇到了同样的问题,在完成程序并通过软件仿真之后,经过多次的尝试,我们还是遇到了问题,八个数码管中始终有五个很暗,刚开始以为是电流过小,不能驱动这么多数码管,老师建议我们加个74LS245,可是加上之后还是那样,最后通过检查,才发现原来是
焊接方面的问题,由于焊接时的不注意,发生虚焊,导致三极管并没有被焊在电路中,相应的电流并没有被放大,在进行修改之后,终于实现了自己想要的。

虽然我们的作品很简单,扩展功能也不多,也许在所有同学的作品里面并不是很惊艳,但不管如何,这是我们通过自己的努力做出来的,我们也收获了自己想要的,不管最终的成绩如何,我们知道自己努力过了就好了。

总之,通过这次课程设计,我学到了很多东西,对单片机及其应用有了更深的了解,不过还是要不断努力。

虽然最后在检查的时候老师提出了一点问题,感觉不是很完美,但是还是很高兴。

心得体会
王洪瑞
本次单片机课程设计我们的作品是模拟交通灯控制系统,在老师刚给出课程设计题目及要求时,我就首当其冲当了我们制作组的组长,以前没有进过实验室,除了课上老师讲过的有关单片机的理论知识外,其他的内容一概不知,既然我主动担任了组长就应该做到对整个设计的软件及硬件部分都十分了解。

在确定了设计题目为交通灯后,我便跑到图书馆搜索了有关课程设计的参考资料,并且同时去了学校的实验室找到那里的同学请教了一些关于单片机的知识,几天后给跟据我自己的想法画出了控制系统的电路原理图,在我和我们组的另外一个同学的商讨及修改后最终确定了我们本次设计的硬件电路图。

然后便是软件方面,也就是程序的编写及调试工作,时隔两年后又重新捡起了大一时的C语言教程。

参考着其他交通灯的程序,我自己也为我们的设计编出了一套程序,第一次进行编译的时候出现的错误简直惨不忍睹,让我不知道该从哪里进行修改,甚至一度有过放弃自己编程序的想法,但是想到自己当初的热忱以及对自己的期望之后,我便很快下定了完成任务的决心。

接下来在对程序不断修改的同时,负责硬件的同学也开始焊接电路了,我在电脑上装了Proteus软件,一边学习一边画图,在同学的帮助和我个人的努力下程序终于调试成功,而且运用Proteus软件在线仿真也成功了,我们队都很高兴,以为现在离最后的胜利只差一步之遥了,谁知道电路板焊接完,单片机装上后,效果却不尽如人意,只有一位数码管发光,其他的显示的都是乱码而且灯光微弱。

我们首先想到的是数码管管脚接触不良,于是给管教加了锡,使其变粗与底座的接触更加牢固,但结果还是原来的样子。

然后我们认为是驱动能力不够,又在IO口与数码管的段选间接了一块驱动芯片74LS2455,结果原来发光的一位数码管亮度更强了,但是其他几位的亮度依然很暗。

后来考虑到我们的八位数码管是并联的关
系,每位的亮度应该是相同的,于是我们决定检查电路连接,利用万用表检查线路是否接通,结果发现有段导线是虚焊在电路板上的,导致其连接的几位数码管接收到的电流很小才出现上述情况,经过对电路的重新焊接后数码管显示正常,而且在驱动芯片的作用下数码管现实的数字清晰明显。

在准备验收的前一天我们又在数码管显示上发现了问题,数码管在显示下一位数字时还留有上一位数字的重影,于是在程序上我将位选与断选的驱动信号前后顺序改变,并且在延时的同时关闭位选信号,这样上述问题消失了。

这次的课程设计即将结束,我们的设计过程也接近尾声,这次课程设计对我个人来说获益匪浅,通过亲自动手实践,使我学会了很多以前没弄懂的理论知识,还有一些焊接技巧,还学会了几个软件,像Protell 99se,Keil u4,Proteus 等,也使我了解到单片机的实用价值,同时在设计期间得到老师和同学的热心帮助,在此深表感谢。

七、参考文献
【1】张义和,王敏男,许宏昌.例说51单片机(C语言版).北京:人民邮电出版社.2008.4
【2】田力,田清.51单片机C语言程序设计.北京:人民邮电出版社.2007.6 【3】李光飞,楼燃苗.单片机课程设计指导.北京:北京航空航天大学出版社.2012.1
【4】谭浩强.C程序设计.北京:清华大学出版社.2005.7
【5】陈学平.Protell 99se 快速上手.北京:人民邮电出版社.2011.9
【6】严天峰,单片机应用系统设计与仿真调试.北京:北京航空航天大学出版社.2005.9
【7】中国电子网http:
八、附录系统仿真图
实物图。

相关主题