《交通灯控制系统课程设计演示教学.doc》由会员分享,可在线阅读,更多相关《交通灯控制系统课程设计演示教学.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。交通灯控制系统课程设计-课程设计说明书设计名称:单片机原理及应用课程设计题目:交通灯控制系统设计学生姓名:黄德春专业:09电气工程与自动化班级:3班学号:2009364341指导教师:屈莉莉吴茂张彩霞日期:2012年1月4日课程设计任务书电气工程与自动化专业09年级(3)班黄德春一、 设计题目二、 交通灯控制系统设计主要内容三、 模仿十字路口交通灯功能,设计一个基于单片机的交通灯控制系统。要求东西方向,南北方向各自有红,黄,直行绿,转弯绿功能,有数码管倒计数功能。基本动作要求为红60秒,直行37秒,黄3
2、秒(闪动),转弯绿17秒,黄3秒(闪动),理想设计是绿灯转黄灯前3秒绿灯闪动,利用按键可以修改不同方向绿灯工作时间,同时红灯时间按绿灯工作时间调整。可选做对紧急车辆用开关允许通行。具体要求1了解硬件电路组成,以及各部分的作用。2掌握交通灯的设计原理3设计交通灯软件程序,画主程序,子程序流程图,编写程序清单。4完成系统调试。四、 5撰写课程设计报告。进度安排1每个同学根据实验题目,查找相应资料,并由组长组织分析任务要求,对任务进行分解,明确每个同学的具体任务。(半天)2基本技能培训:安装实验板和下载线。(2天)3按分工要求,分析电路结构,拟定电路连接方案,画出实现的软件框图,分头进行电路连接,软
3、件编写。(2天)4学会并熟练掌握在伟福和KeilC开发平台上,用汇编和C语言编程和调试,并写入CPU,进行实际调试。(2天半)5编写不少于3000字的课程设计总结报告及提供程序清单(电子版)。(1天)6总结与答辩。(1天)1 完成后应上交的材料课程设计说明书源程序清单(电子版)总评成绩指导教师签名日期年月日系主任审核日期年月日目录一.软件部分11、设计的主要内容11.1主要功能的介绍11.2程序基本功能12、程序框图22.1主程序的流程图22.2交通灯子程序的流程图22.3定时器1流程图32.4定时器0流程图32.5键盘扫描子程序流程图42.6定时器2程序流程图4二.硬件51、AT89C52芯
4、片52、74LS373锁存器芯片53、EEPROM(电可擦写只读存储器)74、1838红外接收头85、设计原理图部分:10三、调试过程及编程体会14四、参考文献17-一.软件部分1.设计的主要内容:1.1主要功能介绍:仿十字路口交通灯功能(使用两块学习板进行模仿)(1) 包含东西方向,南北方向各自有红,黄,直行绿,绿灯,转弯绿;(2) 并用两块两位的数码管实现倒计数等功能;(3) 利用外部中断实现紧急情况控制;(4) 利用四个按键来调节各方向通行时间调节。使用红外接收发送实现数据传送同步1.2程序基本功能:其中“”表示亮,“”表示熄灭,“*”表示闪烁。南北方向东西方向时间(s)红灯直绿转绿黄灯
5、红灯直绿转绿黄灯373*173*373*173*2、程序框图:2.1主程序的程序框图:开始从片内eeprom读入红绿灯工作时间初始化定时器0、1、2,串口结束图1、主程序的程序框图2.2交通灯子程序流程图交通灯子程序交通灯剩余时间减1交通灯显示重置相应的交通灯时间剩余时间为零结束子程序否是剩余时间小于等于3且不为红灯是否交通灯闪烁图2、交通灯子程序框图2.3定时器1框图:8位自动重装定时器,1200kps波特率发生器可用于串口通信,38khz方波发生器可用于红外发射)进入定时器1中断P25置低电平P25置高电平结束中断图3、定时器1的程序框图2.4定时器0框图:(16位定时器,每1/256秒进
6、入一次溢出中断)进入定时器0中断重装初值、计数变量+1键盘扫描函数数码管显示函数交通灯子程序键盘触发动作函数结束中断计数值为0是否图4、定时器0的程序框图2.5键盘扫描子程序流程图键盘扫描子程序否P3.2P3.5是否被拉低是扫描计数清零扫描计数加1否扫描计数大于9是记录拉低编码相应按键触发事件结束子程序图5、键盘扫描子程序流程图2.6定时器2程序流程图(16位捕捉模式,用于红外发射、接收)进入定时器2溢出中断重装相应的计数初值开启或关闭定时器1中断清溢出标志TF2,发射计数+1结束中断进入定时器2捕捉中断接收触发动作函数根据捕捉值,确定一个位值,清溢出标志EXF2,接收计数+1完成4个字节接收
7、结束中断否是二.硬件1.STC89C52芯片AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准图6STC89C52芯片MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可
8、以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。2.74LS373锁存器芯片单片机系统中常用的地址锁存器芯片74LS373以及coms的74hc373。是带三态缓冲输出的8D触发器,其引脚图与结构原理图、电路连接图如下:图7、表2.74LS373真值表:EGDQLHHHLHLLEG功能00直通Qi=Di01保持(Qi保持不变)1X输出高阻LLXQ上表是74LS373的真值表,表中:L低电平;H高电平;X不定态;Q0建立稳态前Q的电平;G输入端,与8031ALE连高电平:畅通无阻低电平:关门锁存。图中OE使能端,接地。当G=“1”时,74LS373输出端1Q8Q与输入端1D8
9、D相同;当G为下降沿时,将输入数据锁存。3.EEPROM(电可擦写只读存储器)EEPROM,或写作E2PROM,全称电子抹除式可复写只读存储器(英语:Electrically-ErasableProgrammableRead-OnlyMemory),是一种可以通过电子方式多次复写的半导体存储设备。相比EPROM,EEPROM不需要用紫外线照射,也不需取下,就可以用特定的电压,来抹除芯片上的信息,以便写入新的数据。EEPROM有四种工作模式:读取模式、写入模式、擦除模式、校验模式。读取时,芯片只需要Vcc低电压(一般+5V)供电。编程写入时,芯片通过Vpp(一般+25V,较新者可能使用12V或5
10、V)获得编程电压,并通过PGM编程脉冲(一般50ms)写入数据。擦除时,只需使用Vpp高电压,不需要紫外线,便可以擦除指定地址的内容。为保证写入正确,在每写入一块数据后,都需要进行类似于读取的校验步骤,若错误就重新写入。现今的EEPROM通常已不再需要使用额外的Vpp电压,且写入时间也已有缩短。由于EEPROM的优秀性能,以及在联机操作的便利,它被广泛用于需要经常擦除的BIOS芯片以及闪存芯片,并逐步替代部分有断电保留需要的RAM芯片,甚至取代部份的硬盘功能(见固态硬盘)。它与高速RAM成为当前(21世纪00年代)最常用且发展最快的两种存储技术。他可以直接利用电气信号来更新程序,所以比EPRO
11、M更方便。4.1838红外接收头红外遥控系统结构红外遥控系统主要分为调制、发射和接收三部分,如图1所示:图8红外遥控系统1838红外接收头为接收部分:一体化红外接收头1红外信号收发系统的典型电路如图1所示,红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。2内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,3然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流4信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出5
12、高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。6一体化红外接收头,如图2所示:图9红外接收头红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。5.设计原理图部分图11电源开关图10.单片机最小应用系统图12交通指示灯图13红外发射管、接收管图14数码管及其驱动电路图15独立按键
13、图16硬件调试过程图三.调试过程及编程体会早在元旦前,老师布置题目以后,我们三个队友就赶快聚集在一起,商量具体的做法以及任务分配。然后我们就投入的紧张的奋斗中去了。所以在还没上课前,我们软件编程方面已经有初有成效了。下面介绍一下我们在课程设计这个过程中所获得的经验跟遇到一些问题。本次我组所选的课程设计为交通灯控制系统的设计,该设计旨在模仿现实中较为普通的十字交叉路口交通灯的正常运行工作模式。我组组员共三人,包括我,卢伟俊,彭文精。卢伟俊同学主要负责红外线接收发送部分,及重要的定时中断部分的编写,我负责交通灯部分,led灯等部分比较简单的小程序的编写,彭文精也参与了部分的编程,他最主要的是在查找
14、资料,分析数据和整合最终结果的工作。由于之前学习过,郭天祥的基于C语言的51单片机编程,而且个人觉得C语言运用起来比汇编方便,容易理解很多。在开始编程的时候,由于从来还没有自己编过这么长的程序,所以难免有点摸不着头脑。还不太清楚完成一个相对比较大的程序的具体方法。所以只好按照老师给我们说的,先写好程序框图,不过在写程序框图的时候,头脑也难免有点乱。由于单纯一块学习板中不能够我们想要达到的功能,所以一开始我们还按着预想的功能,我们按着思路想自己组的组员自己制版。我们按着事先想好的程序预想达到的功能,先分别把要实现的功能都实现,由于C语言有比较好的移植性,所以只要把每一个模块都实现了,然后用一定的
15、方式把所有的东西串起来就实现了完整的功能。而我们三个队员,就每人负责一个模块。有些模块很容易就实现了,但是有些模块遇到了很大麻烦,针对这个我们想了很多办法:问师兄,问其他同学,自己找资料最后在大家的一起努力之下终于攻克了。当然,软件方面初步顺利有点成效了,还没完善。其实在当中过程中,我们曾经还打算做一个实际的交通灯电路板模型,当程序快要完成的时候,我们就分配组员中的一个人,负责完成最后的工作,而其他两个队友,就开始画PCB线路图,有经过了两个人几天的努力,线路也布好了。于是就尝试这做电路板,由于这是我们第一次做电路板,只是了解做板的流程而已,但是具体有什么细节需要注意的,就只有靠实践自己去琢磨
16、咯。不过在我们的意料之中,我们做的板失败了,给了我们很大的打击,也磨削了我们的不少积极性,最后没办法就放弃了,选择其他路径去实现。接下来,我们为了较为方便地实现该交通灯控制系统的设计方案(我们放弃了原先独立做板的想法),同时也兼顾较为直观化地给观看着展示该设计成果(考虑作品的直观效果),我们组采用了两块学习板进行双路同时显示,即东西方向(第一块学习板),和南北方向(第二块学习板),进行模仿两个交叉垂直方向的交通灯指示效果。两块学习板之间使用串口传输数据。这样设计的话,好像略显简单了些,所以卢伟俊同学提出了,板与板之间采用了红外传输芯片1838进行数据传输。当然这给这个设计添加了新的亮点。由于他
17、是第一次尝试真正使用这种芯片进行数据传输。所以这部分的编程存在一定的难度,在整个课程设计也花费了大量的时间。我们也从其中过程中学到了很多课外知识,使自己的单片机知识得到拓展。本课程设计,我发觉最大的问题在于,不仅是我们组,很多组的同学都缺乏实际制板的经验,而且要在两个星期内完成软硬件的学习,的确很有苦难,这也给我最大的教训是,平时应该多兼顾课外相关知识,多实践才能了解认识到自己是否在课堂中学到有用实用的东西。另外,由于是第一次尝试使用1838红外接收头这种类型的器件,难免在其中遇到一些无法解决的跟回答的现象:首先,我们要解决多字节在红外接收传输的问题;其次是,我们发现红外在数据存在延迟问题,如
18、果一直循环下去的话,会造成东西方向跟南北方向的数据偏差不断增大,所以,在编程的时候,当东西方向红灯亮起的时候,就运行重置数据的指令,使计时恢复到初始化状态,这样就使到数据偏差只保持恒定值(比较小的偏差水平)。最后,由于没有使用串口之间连线数据传输,在数据传输的过程中,外界对红外线的干扰特别大。稍微阻隔就可能使到数据传输出现偏差,甚至是错误。我的个人设想是,如果像手机的发展历史一样,从红外传输发展到现在很成熟的蓝牙传输,在这个课程设计方面,我们可以使用蓝牙进行传输的话,将会是一种更大的改进,但是时间有限,没法一一实现理想中的功能。通过这次课程设计,给我最大的感受就是:很多事情只有我们尝试了以后才能学到更多,尝试多了以后才能达到熟练的地步,编程也一定要多联系!对比现在和课程设计之前自己对单片机的了解,是决然不同了,这就是实践的结果,所以以后一定要多注意实践。四.参考文献1.51单片机C语言教程(电子工业出版社郭天祥主编)2.单片微机原理及应用(机械工业出版社丁元杰)