交通灯控制系统课程设计.docx
课程设计说明书设计名称:单片机原理及应用课程设计题目:交通灯限制系统设计学生姓名:黄德春专业:09电气工程及自动化班级:3三学号:2009364341指导老师:屈莉莉吴茂张彩霞日期:2019年1月4日课程设计任务书电气工程及自动化专业09年级(3)班黄德春一、设计题目交通灯限制系统设计二、主要内容仿照十字路口交通灯功能,设计一个基于单片机的交通灯限制系统。要求东西方向,南北方向各自有红,黄,直行绿,转弯绿功能,有数码管倒计数功能。基本动作要求为红60秒,直行37秒,黄3秒(闪动),转弯绿17秒,黄3秒(闪动),志向设计是绿灯转黄灯前3秒绿灯闪动,利用按键可以修改不同方向绿灯工作时间,同时红灯时间按绿灯工作时间调整。可选做对紧急车辆用开关允许通行。三、具体要求1 .了解硬件电路组成,以及各部分的作用。2 .驾驭交通灯的设计原理3 .设计交通灯软件程序,画主程序,子程序流程图,编写程序清单。4 .完成系统调试。5 .撰写课程设计报告。四、进度支配1 .每个同学依据试验题目,查找相应资料,并由组长组织分析任务要求,对任务进行分解,明确每个同学的具体任务。(半天)2 .基本技能培训:安装试验板和下载线。(2天)3 .按分工要求,分析电路结构,拟定电路连接方案,画出实现的软件框图,分头进行电路连接,软件编写。(2天)4 .学会并娴熟驾驭在伟福和KeiIC开发平台上,用汇编和C语言编程和调试,并写入CPU,进行实际调试。(2天半)5 .编写不少于3000字的课程设计总结报告及供应程序清单(电子版)。(1天)6 总结及答辩。(1天)五、完成后应上交的材料1 .课程设计说明书2 .源程序清单(电子版)六、总评成果指导老师签名日期年月日系主任一审核日期一年月日书目一.软件部分11 设计的主要内容11 .1主要功能的介绍12 .2程序基本功能12 、程序框图21 .1主程序的流程图22 .2交通灯子程序的流程图23 .3定时器1流程图34 .4定时器O流程图35 .5键盘扫描子程序流程图46 .6定时器2程序流程图4二.硬仰二51、AT89C52芯 5片2、74LS373锁存器芯片57 、EEPROM(电可擦写只读存储器)74、1838红外接收头85、设计原理图部分:10三、调试过程及编程体会14四、参考文献17一.软件部分1.设计的主要内容:1.l主要功能介绍:仿十字路口交通灯功能(运用两块学习板进行仿昭)J、X(I)包含东西方向,南北方向各自有红,黄,直行绿,绿灯,转弯绿;(2)并用两块两位的数码管实现倒计数等功能;(3)利用外部中断实现紧急状况限制;(4)利用四个按键来调整各方向通行时间调整。(5)运用红外接收发送实现数据传送同步1.2程序基本功能:其中“V”表示亮,"X”表示熄灭,表示闪烁。南北方向东西方11J时间(三)红直转黄红直转黄灯绿绿灯灯绿绿灯37××X×××3×XX*×X×*17×××X××3×X×*×××*37××X×X×3×××*X××*17XX××XX3X××*×XX*2、程序框图:2.1. 程序的程序框图:图1、导/的程序框图Z ÷ r4-t J _v,1 UIFFrZ _7*1 J2.2. 交通处”LL士、土、"g.lrJ-.f/Izdr4-RQ八.r-tJaLn=斗争、.乂但,JJ4王序本匡图2.3. 定时器一4二U氏动重装定时器,1200kps波廷一千;A口二二F里打通信,XX.11rISi一一一.38khz方波发生器可一(壬SS4口生钻*二国j34程序框图2.4.费fcT0“1每1/256秒进入一次溢由彳一i1vp/,田,krJ/-s-*rt-X图4、1定时器O时程序框图"向iziU+Z士、I出上J键SSjyjfej斤nr昨km1/4士>.图“半盘扫箱子程力,2.6定时器才a2图(16位捕获模式,用于红外放射、接收)J4÷、 cr rU- RQ C 供加、占Q C S J ½ 111 4<.2-t rrr7CXVC7VU *LP-T2P1. O壬乂七Jn f Ak J-L氏电压,取数据存储器(RAM),器件接受ATMEL公司的高密度、非易失性存储技术生产,兼容标准图6STC89C52芯片MCS-51指令系统,片内置通用8位中心处理器和Flash存储单元,功能强大的AT89C52单片机可为您供应许多较困难系统限制应用场合。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以依据常规方法进行编程,但不行以在线编程(S系列的才支持在线编程)。2. 74LS373锁存器芯片单片机系统中常用的地址锁存器芯片74LS373以及ConIS的74hc3730是带三态缓冲输出的8D触发器,其引脚图及结构原理图、电路连接图如下:图7、74LS373引脚图内部结构原理图电路连接图表2.74LS373真值表:<74LS373功能表>:EGDQEG功能OO直通Qi=Di1.HHH1.HLL01保持(Qi保持不变)1X输出高阻LLXQ上表是74LS373的真值表,表中:1.低电平;H高电平;X不定态;QO建立稳态前Q的电平;G输入端,及8031ALE连高电平:畅通无阻低电平:关门锁存。图中OE使能端,接地。当G=“1”时,74LS373输出端IQ-8Q及输入端ID8D相同;当G为下降沿时,将输入数据锁存。3. EEPROM(电可擦写只读存储器)EEPROM,或写作E2PR0M,全称电子抹除式可复写只读存储器(英语:Electrically-ErasableProgrammableRead-OnlyMemory),是一种可以通过电子方式多次复写的半导体存储设备。相比EPROM,EEPROM不须要用紫外线照射,也不需取下,就可以用特定的电压,来抹除芯片上的信息,以便写入新的数据。EEPRoM有四种工作模式:读取模式、写入模式、擦除模式、校验模式。读取时,芯片只须要VCC低电压(一般+5V)供电。编程写入时,芯片通过VPP(一般+25V,较新者可能运用12V或5V)获得编程电压,并通过PGM编程脉冲(一般50ms)写入数据。擦除时,只需运用VPP高电压,不须要紫外线,便可以擦除指定地址的内容。为保证写入正确,在每写入一块数据后,都须要进行类似于读取的校验步骤,若错误就重新写入。现今的EEPROM通常已不再须要运用额外的Vpp电压,且写入时间也已有缩短。由于EEPROM的优秀性能,以及在联机操作的便利,它被广泛用于须要经常擦除的BlOS芯片以及闪存芯片,并逐步替代部分有断电保留须要的RAM芯片,甚至取代部份的硬盘功能(见固态硬盘)。它及高速RAM成为当前(21世纪00年头)最常用且发展最快的两种存储技术。他可以干脆利用电气信号来更新程序,所以比EPROM更便利。4. 1838红外接收头红外遥控系统结构红外遥控系统主要分为调制、放射和接收三部分,如图1所示:图8红外遥控系统1838红外接收头为接收部分:一体化红外接收头1红外信号收发系统的典型电路如图1所示,红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。2内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,3然后把信号送到放大器和限幅器,限幅器把脉冲幅度限制在确定的水平,而不论红外放射器和接收器的距离远近。沟通4信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出5凹凸电平,还原动身射端的信号波形。留意输出的凹凸电平和放射端是反相的,这样的目的是为了提高接收的灵敏度。6一体化红外接收头,如图2所示:图9红外接收头红外接收头的种类许多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。依据放射端调制载波的不同应选用相应解调频率的接收头。红外接收头内部放大器的增益很大,很简洁引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。5.设计原理图部分Rl按修按迅个共阳极数码管1共阳极数码管4DPY 7-4n=-充VCCT睡Ikl-LJ=Illl*阳嬲处管3DPY 7-1DPY 7-3POODPT»02囱 1 二 -?r½4B.;LJ:dpB05P06 而P04B05P06BO 7ROOEOlB02B03P06B07PB07囱1 A rN江钙 通甘n7÷4本次我组所选的课程设计为交通灯限制系统的设计,该设计旨在仿照现实中较为一般的十字交叉路口交通灯的正常运行工作模式。我组组员共三人,包括我,卢伟俊,彭文精。卢伟俊同学主要负责红外线接收发送部分,及重要的定时中断部分的编写,我负责交通灯部分,Ied灯等部分比较简洁的小程序的编写,彭文精也参及了部分的编程,他最主要的是在查找资料,分析数据和整合最终结果的工作。由于之前学习过,郭天祥的基于C语言的51单片机编程,而且个人觉得C语言运用起来比汇编便利,简洁理解许多。在起先编程的时候,由于从来还没有自己编过这么长的程序,所以难免有点摸不着头脑。还不太清楚完成一个相对比较大的程序的具体方法。所以只好依据老师给我们说的,先写好程序框图,不过在写程序框图的时候,头脑也难免有点乱。由于单纯一块学习板中不能够我们想要达到的功能,所以一起先我们还按着预想的功能,我们按着思路想自己组的组员自己制版。我们按着事先想好的程序预想达到的功能,先分别把要实现的功能都实现,由于C语言有比较好的移植性,所以只要把每一个模块都实现了,然后用确定的方式把全部的东西串起来就实现了完整的功能。而我们三个队员,就每人负责一个模块。有些模块很简洁就实现了,但是有些模块遇到了很大麻烦,针对这个我们想了许多方法:问师兄,问其他同学,自己找资料最终在大家的一起努力之下最终攻克了。当然,软件方面初步顺当有点成效了,还没完善。其实在当中过程中,我们曾经还打算做一个实际的交通灯电路板模型,当程序快要完成的时候,我们就支配组员中的一个人,负责完成最终的工作,而其他两个队友,就起先画PCB线路图,有经过了两个人几天的努力,线路也布好了。于是就尝试这做电路板,由于这是我们第一次做电路板,只是了解做板的流程而已,但是具体有什么微小环节须要留意的,就只有靠实践自己去琢磨咯。不过在我们的意料之中,我们做的板失败了,给了我们很大的打击,也磨削了我们的不少主动性,最终没方法就放弃了,选择其他路径去实现。接下来,我们为了较为便利地实现该交通灯限制系统的设计方案(我们放弃了原先独立做板的想法),同时也兼顾较为直观化地给观看着展示该设计成果(考虑作品的直观效果),我们组接受了两块学习板进行双路同时显示,即东西方向(第一块学习板),和南北方向(其次块学习板),进行仿照两个交叉垂直方向的交通灯指示效果。两块学习板之间运用串口传输数据。这样设计的话,好像略显简洁了些,所以卢伟俊同学提出了,板及板之间接受了红外传输芯片1838进行数据传输。当然这给这个设计添加了新的亮点。由于他是第一次尝试真正运用这种芯片进行数据传输。所以这部分的编程存在确定的难度,在整个课程设计也花费了大量的时间。我们也从其中过程中学到了许多课外学问,使自己的单片机学问得到拓展。本课程设计,我发觉最大的问题在于,不仅是我们组,许多组的同学都缺乏实际制板的阅历,而且要在两个星期内完成软硬件的学习,的确很有苦难,这也给我最大的教训是,平常应当多兼顾课外相关学问,多实践才能了解相识到自己是否在课堂中学到有用好用的东西。另外,由于是第一次尝试运用1838红外接收头这种类型的器件,难免在其中遇到一些无法解决的跟回答的现象:首先,我们要解决多字节在红外接收传输的问题;其次是,我们发觉红外在数据存在延迟问题,假如始终循环下去的话,会造成东西方向跟南北方向的数据偏差不断增大,所以,在编程的时候,当东西方向红灯亮起的时候,就运行重置数据的指令,使计时复原到初始化状态,这样就使到数据偏差只保持恒定值(比较小的偏差水平)。最终,由于没有运用串口之间连线数据传输,在数据传输的过程中,外界对红外线的干扰特别大。略微阻隔就可能使到数据传输出现偏差,甚至是错误。我的个人设想是,假如像手机的发展历史一样,从红外传输发展到现在很成熟的蓝牙传输,在这个课程设计方面,我们可以运用蓝牙进行传输的话,将会是一种更大的改进,但是时间有限,没法一一实现志向中的功能。通过这次课程设计,给我最大的感受就是:许多事情只有我们尝试了以后才能学到更多,尝试多了以后才能达到娴熟的地步,编程也确定要多联系!对比现在和课程设计之前自己对单片机的了解,是决然不同了,这就是实践的结果,所以以后确定要多留意实践。四.参考文献1 .51单片机C语言教程(电子工业出版社郭天祥主编)2 .单片微机原理及应用(机械工业出版社丁元杰)