毕业论文-基于stc89c52单片机的交通信号灯控制电路的设计与实现_第1页
毕业论文-基于stc89c52单片机的交通信号灯控制电路的设计与实现_第2页
毕业论文-基于stc89c52单片机的交通信号灯控制电路的设计与实现_第3页
毕业论文-基于stc89c52单片机的交通信号灯控制电路的设计与实现_第4页
毕业论文-基于stc89c52单片机的交通信号灯控制电路的设计与实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文基于STC89C52单片机的交通信号灯控制电路的设计与实现学院软件学院专业班级XX学号2XXXX学生姓名XXX指导教师XXX太原理工大学基于单片机的交通信号灯控制电路的设计与实现摘要随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯红、黄、绿三种标志于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。当前,大量的信号灯电路正向着数字化、小功率、多样化、方便人车路三者关系的协调以及多值化方向发展。随着社会和经济的发展,城市交通问题越来越引起人们的关注。随着城市规模的不断扩大,城市交通成为制约城市发展的一大因素。因此,有许多设计工作者为改善城市交通环境设计了许多方案,而大多数都是交通指挥灯。交通信号灯作为一个用来指挥车辆顺利、畅通通过十字路口的装置,与我们的生活紧密的联系在一起。设计交通灯控制电路的方法有很多种,由于数字电子技术的逻辑性很强,用它来设计交通灯的控制电路非常方便。而且数字电子技术芯片只要在一定的范围内输入,都能得到稳定的输出,调试简单,电路的工作也比较稳定。本论文的设计就是通过一些基本的数字芯片组合来实现对十字路口交通灯的六个不同信号灯的控制,另外还加以倒计时数码管显示,以设计实现了一个十字路口信号灯的仿真模型及其控制电路。这个电路的设计看似较为复杂,其实就是由一些基本的数字电路组成。论文采用中、小规模集成电路,设计了交通信号灯控制电路,画出了各单元电路图、整机框图和逻辑电路图,完成了组装和调试,实现了交通信号灯控制的各项功能,最后对论文的工作进行了总结。关键词STC89C52;独立键盘;数码管;蜂鸣器。MICROCONTROLLERBASEDTRAFFICSIGNALCONTROLCIRCUITDESIGNANDIMPLEMENTATIONABSTRACTWITHTHEDEVELOPMENTNEEDSOFTHEVARIOUSMODESOFTRANSPORTANDTRAFFICCONTROL,THEFIRSTTRULYTHREECOLORLIGHTSRED,YELLOW,ANDGREENFLAGWASBORNIN1918ITISSURROUNDEDBYTHREECOLORCIRCULARPROJECTORISMOUNTEDONATOWERFIFTHSTREETINNEWYORKCITY,SINCEITSBIRTH,THEURBANTRAFFICGREATLYIMPROVEDCURRENTLY,ALARGENUMBEROFSIGNALCIRCUITSISTOWARDDIGITAL,LOWPOWER,DIVERSITY,FACILITATEPEOPLE,VEHICLES,COORDINATINGTHETHREEWAYRELATIONSHIP,ANDMOREVALUEORIENTEDDEVELOPMENTALONGWITHSOCIALANDECONOMICDEVELOPMENT,URBANTRANSPORTPROBLEMSMORECAUSEFORCONCERNWITHTHEDEVELOPMENTOFSOCIETY,EXPANDINGTHESIZEOFCITIES,URBANTRANSPORTASACONSTRAINTTOURBANDEVELOPMENTISAMAJORFACTOR,SOTHEREAREMANYWORKERSINORDERTOIMPROVETHEURBANTRAFFICDESIGNENVIRONMENTDESIGNEDMANYPROGRAMS,BUTMOSTARETRAFFICLIGHTSTRAFFICLIGHTSUSEDASACOMMANDVEHICLESMOOTH,SMOOTHCROSSROADSDEVICESWITHOURLIVESCLOSELYLINKEDTHROUGHTHEREAREMANYWAYSTODESIGNTHETRAFFICLIGHTCONTROLCIRCUIT,BECAUSETHELOGICOFDIGITALELECTRONICTECHNOLOGYISSTRONG,USEITTODESIGNATRAFFICLIGHTCONTROLCIRCUITISVERYCONVENIENTANDASLONGASTHEDIGITALELECTRONICSCHIPSWITHINACERTAINRANGEOFTHEINPUT,THEOUTPUTCANGETASTABLE,EASYADJUSTMENT,OPERATIONOFTHECIRCUITISRELATIVELYSTABLEIHAVETHISDESIGNISTHROUGHSOMEBASICDIGITALCHIPTOACHIEVEACOMBINATIONOFSIXDIFFERENTLIGHTSONTHECROSSROADSOFTRAFFICLIGHTSCONTROL,INADDITIONTOACOUNTDOWNDIGITALDISPLAYCROSSROADSLIGHTSTODOTHESIMULATIONMODEL,THEDESIGNOFTHISCIRCUITMAYSEEMMORECOMPLICATED,INFACT,SOMEOFTHEBASICDIGITALCIRCUITUSINGMEDIUMANDSMALLSCALEINTEGRATEDCIRCUITDESIGNTRAFFICSIGNALCIRCUITS,ANDASSEMBLYANDCOMMISSIONING,ANDTHENTHEVARIOUSFUNCTIONSOFTHEDESIGN,EACHUNITTODRAWCIRCUITDIAGRAMS,BLOCKDIAGRAMSANDMACHINELOGICCIRCUIT,ABREAKTHROUGHSTEPBYSTEP,ANDFINALLYFINISHINGSUMMARYKEYWORDSSTC89C52,SEPARATEKEYBOARD,LED,BUZZER目录摘要IABSTRACTII1引言111目的和意义112研究概况和发展趋势213本系统主要研究内容32总体方案论证与设计121主控模块的选型和论证122显示模块的选型和论证123按键模块的选型和论证124系统整体设计概述23系统硬件电路设计331主控模块3311STC89C52单片机主要特性3312STC89C52单片机的中断系统6313单片机最小系统设计632数码管显示电路633键盘模块设计734蜂鸣器模块设计835路灯指示电路84系统软件设计1141系统软件总体设计1142程序设计原理115系统调试1351硬件调试1352软件调试1353调试结果14结论15参考文献16致谢17附录181引言11目的和意义随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生,在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着交道。自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。现代人类科学技术,特别是电子科学技术的发展和成熟能比较好的解决系统建立中硬软件方面要求的技术难题。目前,交通控制方面的研究能完全实现自动智能化,甚至将整个区域整合成一个统一的系统范围,还能根据正常时段以及特定突发时段的情况进行科学的自动调整。交通对于社会的工业经济和人们的生活生产中有着十分重要的意义。随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,交通自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的交通控制措施。城市道路交通自动控制系统的发展是以城市交通信号控制技术为前导,与汽车工业并行发展的。在其各个发展阶段,由于交通的各种矛盾不断出现,人们总是尽可能地把各个历史阶段当时的最新科技成果应用到交通自动控制中来,从而促进了交通自动控制技术的不断发展。早在1850年,城市交叉口处不断增长的交通就引发了人们对安全和拥堵的关注。世界上第一台交通自动信号灯的诞生,拉开了城市交通控制的序幕,1868年,英国工程师纳伊特在伦敦威斯特敏斯特街口安装了一台红绿两色的煤气照明灯,用来控制交叉路口马车的通行,但一次煤气爆炸事故致使这种交通信号灯几乎销声匿迹了近半个世纪。1914年及稍晚一些时候,美国的克利夫兰、纽约和芝加哥才重新出现了交通信号灯,它们采用电力驱动,与现在意义上的信号灯已经相差无几。1926年英国人第一次安装和使用自动化的控制器来控制交通信号灯,这是城市交通自动控制的起点。早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早期交通流量不大的情况曾起过一定的作用。但随着汽车工业的发展、交通流量增加、随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。20世纪30年代初,美国最早开始用车辆感应式信号控制器,之后是英国,当时使用的车辆检测器是气动橡皮管检测器。车辆感应控制器的特点是它能根据检测器测量的交通流量来调整绿灯时间的长短,使绿灯时间更有效地被利用,减少车辆在交叉口的时间延误,比定时控制方式有更大的灵活性。车辆感应控制的这一特点刺激了车辆检测器技术的发展。继气动橡皮管式检测器之后,雷达、超声波、光电、地磁、电磁、微波、红外以及环形线圈等检测器相继问世。当今在城市道路交通自动控制、交通监测和交通数据采集系统中,应用最广的是环形线圈车辆检测器。超声波检测器主要在日本等少数国家得到广泛应用。计算机技术的出现为交通控制技术的发展注入了新的活力,更是实现了以一个城市或者更大地域,而非简单的一个路口的交通总体控制系统。1952年,美国科罗拉多州丹佛市首次利用模拟计算机和交通检测器实现了对交通信号机网的配时方案自动选择式信号灯控制,而加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。可以说,在近百年的发展中,道路交通信号控制系统经历了手动到自动,从固定配时到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长远过程。交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。交通网络是城市的动脉,象征着一个城市的工业文明水平。交通关系着人们对于财产,安全和时间相关的利益。具有优良科学的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。12研究概况和发展趋势早在1850年,城市交叉口处不断增长的交通就引发了人们对安全和拥堵的关注。世界上第一台交通自动信号灯的诞生,拉开了城市交通控制的序幕,1868年,英国工程师纳伊特在伦敦威斯特敏斯特街口安装了一台红绿两色的煤气照明灯,用来控制交叉路口马车的通行,但一次煤气爆炸事故致使这种交通信号灯几乎销声匿迹了近半个世纪。1914年及稍晚一些时候,美国的克利夫兰、纽约和芝加哥才重新出现了交通信号灯,它们采用电力驱动,与现在意义上的信号灯已经相差无几。1926年英国人第一次安装和使用自动化的控制器来控制交通信号灯,这是城市交通自动控制的起点。早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早期交通流量不大的情况曾起过一定的作用。但随着汽车工业的发展、交通流量增加、随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。20世纪30年代初,美国最早开始用车辆感应式信号控制器,之后是英国,当时使用的车辆检测器是气动橡皮管检测器。车辆感应控制器的特点是它能根据检测器测量的交通流量来调整绿灯时间的长短,使绿灯时间更有效地被利用,减少车辆在交叉口的时间延误,比定时控制方式有更大的灵活性。车辆感应控制的这一特点刺激了车辆检测器技术的发展。继气动橡皮管式检测器之后,雷达、超声波、光电、地磁、电磁、微波、红外以及环形线圈等检测器相继问世。当今在城市道路交通自动控制、交通监测和交通数据采集系统中,应用最广的是环形线圈车辆检测器。超声波检测器主要在日本等少数国家得到广泛应用。计算机技术的出现为交通控制技术的发展注入了新的活力,更是实现了以一个城市或者更大地域,而非简单的一个路口的交通总体控制系统。1952年,美国科罗拉多州丹佛市首次利用模拟计算机和交通检测器实现了对交通信号机网的配时方案自动选择式信号灯控制,而加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。可以说,在近百年的发展中,道路交通信号控制系统经历了手动到自动,从固定配时到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长远过程。交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。交通网络是城市的动脉,象征着一个城市的工业文明水平。交通关系着人们对于财产,安全和时间相关的利益。具有优良科学的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。13本系统主要研究内容本系统设计制作一个基于单片机的交通灯。能实现以下几种功能(1)键盘扫描,通过单片机检测用户按下的是哪个按键并执行相应的功能。(2)单片机可以控制十字路口的红绿灯并显示倒计时时间。(3)单片机可以分别设置红黄绿灯的时间。(4)系统设有紧急按键,按下后十字路口的所有灯皆熄灭,并且驱动蜂鸣器发响。2总体方案论证与设计根据所要实现的功能划分,系统一共需要以下几个模块主控模块、显示模块、按键模块,以下就针对这几个模块的选型和论证进行讨论。21主控模块的选型和论证方案一采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发。方案二采用51系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的8位单片机,32个IO口,且STC系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。因此选用方案二中的51系列单片机作为主控芯片。22显示模块的选型和论证方案一采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示。方案二采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用单片机口线少。方案三采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见。但是由于一般十字路口的交通灯多为数码管显示,因此这里也选取数码管作为显示模块。因此本设计中采用方案二中的DS1302作为时钟模块。23按键模块的选型和论证方案一采用常见的独立按键输入模式,根据需要一共要用4个按键进行功能输入,而所选用的单片机共有32个IO,IO口比较充足。方案二采用矩阵键盘作为输入,矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4416个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。图21矩阵键盘由于本设计只需少量按键,所以本设计中方案一中的独立按键作为键盘模块。24系统整体设计概述本系统以单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、数码管显示等功能的控制,起到总控和协调各模块之间工作的作用。红绿黄灯显示主控模块单片机按键模块数码管模块报警模块图22系统结构框图本系统结构如图21所示,本设计可分为以下模块单片机主控模块、键盘模块、数码管模块、报警模块、红绿黄灯显示模块。下面对各个模块的设计方案逐一进行论证分析。3系统硬件电路设计31主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘,温度传感器等各种参数,同时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC89C52单片机作为系统的主控芯片。51系列单片机最初是由INTEL公司开发设计的,但后来INTEL公司把51核的设计方案卖给了几家大的电子设计生产商,譬如SST、PHILIP、ATMEL等大公司。因此市面上出现了各式各样的均以51为内核的单片机。这些各大电子生产商推出的单片机都兼容51指令、并在51的基础上扩展一些功能而内部结构是与51一致的。STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统由4K的程序存储器掩膜ROM,和128B的数据存储器RAM组成。STC89C52单片机的基本组成框图见图31。时钟电路ROM/EPROM/FLASH4KBRAM128BSFR21个定时个/计数器2CPU总线控制中断系统5个中断源2个优先级串行口全双工1个4个并行口XTAL2XTAL1RSTEAALEPSENP0P1P2P3VSSVCC图31STC89C52单片机结构图311STC89C52单片机主要特性1一个8位的微处理器CPU。2片内数据存储器RAM128B,用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。3片内程序存储器ROM4KB,用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST公司推出的89系列单片机分别集成了16K、32K、64KFLASH存储器,可供用户根据需要选用。4四个8位并行IO接口P0P3,每个口既可以用作输入,也可以用作输出。5两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。6五个中断源的中断控制系统。现在新推出的单片机都不只5个中断源,例如SST89E58RD就有9个中断源。7一个全双工UART通用异步接收发送器的串行IO口,用于实现单片机之间或单机与微机之间的串行通信。8片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHZ。SST89V58RD最高允许振荡频率达40MHZ,因而大大的提高了指令的执行速度。P1024MS67CK8RETXALVNU位图32STC89C52单片机管脚图部分引脚说明1时钟电路引脚XTAL1和XTAL2XTAL218脚接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。要检查振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL119脚接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。2控制信号引脚RST,ALE,PSEN和EARST/VPD9脚RST是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源VCC发生故障,降低到低电平规定值时,将5V电源自动两个机器周期24个时钟振荡周期的高电平时,就可以完成复位操作。RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG30脚地址锁存允许信号端。当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率FOSC的1/6。CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。平时不访问片外存储器时,ALE端也以振荡频率的1/6固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果想确定8051/8031芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031基本上是好的。ALE端的负载驱动能力为8个LS型TTL低功耗甚高速TTL负载。此引脚的第二功能PROG在对片内带有4KBEPROM的8751编程写入固化程序时,作为编程脉冲输入端。PSEN29脚程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM的OE端见后面几章任何一个小系统硬件图。PSEN端有效,即允许读出EPROMROM中的指令码。PSEN端同样可驱动8个LS型TTL负载。要检查一个8051/8031小系统上电后CPU能否正常到EPROMROM中读取指令码,也可用示波器看PSEN端有无脉冲输出。如有则说明基本上工作正常。EA/VPP31脚外部程序存储器地址允许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC程序计数器的值超过0FFFH对8751/8051为4K时,将自动转去执行片外程序存储器内的程序。当输入信号EA引脚接低电平接地时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM的8031或8032,需外扩EPROM,此时必须将EA引脚接地。此引脚的第二功能是VPP是对8751片内EPROM固化编程时,作为施加较高编程电压一般12V21V的输入端。3输入/输出端口P0/P1/P2/P3P0口P00P07,3932脚P0口是一个漏极开路的8位准双向I/O口。作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器地址80H写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU访问片外存储器时,P0口分时提供低8位地址和8位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口P10P17,18脚P1口是一个带内部上拉电阻的8位准双向I/O口。P1口每位能驱动4个LS型TTL负载。在P1口作为输入口使用时,应先向P1口锁存地址90H写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口P20P27,2128脚P2口是一个带内部上拉电阻的8位准双向I/O口。P口每位能驱动4个LS型TTL负载。在访问片外EPROM/RAM时,它输出高8位地址。P3口P30P37,1017脚P3口是一个带内部上拉电阻的8位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O端口有很大的区别,它的每个引脚都有第二功能,如下P30RXD串行数据接收。P31RXD串行数据发送。P32INT0外部中断0输入。P33INT1外部中断1输入。P34T0定时/计数器0的外部计数输入。P35T1定时/计数器1的外部计数输入。P36WR外部数据存储器写选通。P37RD外部数据存储器读选通。312STC89C52单片机的中断系统STC89C52系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。STC89C52单片机内集成有两个可编程的定时/计数器T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。313单片机最小系统设计P34MOSI67CK8RET9XALVNU位YHZPFWBU图33单片机最小系统电路图图33为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复位电路组成,时钟电路选用了12MHZ的晶振提供时钟,作用为给单片机提供一个时间基准,其中执行一条基本指令需要的时间为一个机器周期,单片机的复位电路,按下复位按键之后可以使单片机进入刚上电的起始状态。图中10K排阻为P0口的上拉电阻,由于P0口跟其他IO结构不一样为漏极开路的结构,因此要加上拉电阻才能正常使用。32数码管显示电路数码管工作原理这里我们介绍8段数码管的工作原理。8段数码管又称为8字型数码管,分为8段A、B、C、D、E、F、G、DP。其中,DP为小数点。数码管常用的有10根管脚,每一段有一根管脚,另外两根管脚为一个数码管的公共段,两根之间相互连通。发光二极管的发光原理,我们已经介绍过了,同理,8段LED数码管,则是在一定形状的绝缘材料上,利用不同形状点划的发光二极管组合,排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示09的数字。从电路上,按数码管的接法不同又分为共阴和共阳两种。图34是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。图34共阴和共阳极数码管的内部电路在设计时,为了系统图的美观,我采用了6个数码管组成的数码管组,采用共阳极接法。如图35。Q12N390KR745VPFGEDCBAU位图35系统数码管电路33键盘模块设计P102345/MOSI67CK8RET9XALVNUSWB图36键盘模块电路图本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的IO口状态就可以判断按下的是那个按键。其中这四个按键分别代表功能按键,增加按键,减少按键,紧急情况按键,紧急情况按下的时候十字路口的交通灯皆会灭,用户可以通过这些按键来设置交通灯的时间和进行紧急情况使用。34蜂鸣器模块设计本设计还带有紧急情况按键功能,用户可以通过按键进入紧急情况,当按键按下的时候灯全灭蜂鸣器发响。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用三极管开关电路来驱动。本处选用的是8550三极管,它是一个PNP型的三极管,当基极给低电平的时候三极管导通,这时候蜂鸣器发声,当给高电平的时候,三极管关闭,蜂鸣器不发声。蜂鸣器模块的电路图如图37所示。位Q图37蜂鸣器驱动电路图35路灯指示电路在设计路灯时,采用了发光二极管代替路灯。先介绍一下二极管,见图38。二极管工作原理是单向导通,即只有正极电压高于负极电压某特定值时才会导通,而负极电压高于正极电压是不导通的。D1LE0KR23P648975V图38发光二极管示意图发光二极管是一种特殊的二极管,导通时会发光(发光二极管导通压降一般为17V19V)。此外,工作电流要满足该二极管的工作电流。发光二极管的正负极可以用万用表进行判断,把万用表拨至二极管档或电阻挡,用两个表笔分别接触二极管的两个引出脚。若发光二极管被点亮,则与红表笔相接的引出脚为正极。从外观上看,发光二极管的正极引脚的长度也比较长。一般发光二极管与I/O端口之间都会再连接一个电阻,其作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制。一般发光二极管的点亮电流为5MA至10MA。路灯设计时我采用了红、黄、绿三种发光二级管。如图39所示。图39路灯设计电路4系统软件设计41系统软件总体设计系统初始化是否时间功能按键按下设置选择对应颜色灯的时间设置是否时间功能按键按下紧急按键是否按下关闭数码管和LED显示,蜂鸣器发声检测按键是否松开开启定时器进行计数并显示相应的倒数时间根据当前时间显示不同的颜色的灯根据按键增加或减少时间YYYYNNNN图41系统流程图42程序设计原理软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十MS甚至几百MS也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。5系统调试51硬件调试基于单片机的交通灯的电路较为复杂,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。基于单片机的交通灯的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题刚开始画好电路图后,我用自己的方法制作的电路板,方法如下1、首先需要买个单面或者双面覆好铜的板子,一般电子市场都是有卖的。2、把PCB板图在电脑上画好,在用喷墨打印机打印出来。(注意1、一定要采用喷墨的打印机2、在画PCB板时焊盘和过孔一定要足够大。)3、把电路板用美工刀切成需要的大小,在把刚刚用打印机打印出来的PCB图纸放到铜板上用熨斗来回熨直到纸上面的碳膜被熨到铜板上。4、如果打印纸上没有全部覆盖到铜板上,我们就要用2B铅笔把铜板上的线路修补一下。5、把修改好的铜板放到腐蚀液中腐蚀就好了。6、把腐蚀好的铜板用橡皮檫檫掉铜板上面的碳膜,再用锡全部走一遍就好了。7、就是最后一步钻孔了,有条件的可以用电动钻直接钻孔。要不然就只有自己做一个手动钻来钻了。8、焊上原件整个板子就全部完成了。其中,在第3步时候,可能由于熨斗热度不够,或者时间不够,导致PCB图纸多次,印不上铜板上。第7步骤时候,导致电路板多次虚焊,最终,感觉完成设计时,电路始终跑步起来。所以,最后,也不考虑自己的成本,就把自己的电路图给厂家,让厂家给做的电路板。最开始的时候以为单片机IO口直接可以驱动蜂鸣器发声,后来调试的时候久久不能出声音。解决经过查找相关资料,知道蜂鸣器需要三极管来驱动,后来把三极管放大器加上系统便可以正常工作。52软件调试基于单片机的交通灯是多功能的数字型,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下1当用户按下按键的时候,单片机读取的数值跟设定的数值不对。解决重新检查矩阵键盘电路的连接,重新建立一个新的对应关系。2在检测到按键按下的时候,将某个I/O的状态取反。由于这种抖动的存在,使得我们的微控制器误以为是多次按键的按下,从而将某个I/O的状态不断取反,这并不是我们想要的效果,假如该I/O控制着系统中某个重要的执行的部件,那结果更不是我们所期待的。于是乎有人便提出了软件消除抖动的思想,道理很简单抖动的时间长度是一定的,只要我们避开这段抖动时期,检测稳定的时候的电平不就可以了吗听起来确实不错,而且实际应用起来效果也还可以。于是就像下面的伪代码所描述的一样。IF0IO_KEYENTERDELAYMS20IF0IO_KEYENTERRETURNKEYVALUEELSERETURNKEY_NULLWHILE0IO_KEYENTER步骤如下(1)如果有键按下了(2)先延时20MS避开抖动时期(3)是真的按下了,返回键值(4)然后再检测,如果还是检测到有键按下(5)是抖动,返回空的键值(6)等待按键释放乍看上去,确实挺不错,在实际的系统中,一般是不允许这么样做的。为什么呢首先,这里的DELAYMS20,让微控制器在这里白白等待了20MS的时间,啥也没干。其次WHILE0IO_KEYENTER所以合理的分配好微控制的处理时间,是编写按键程序的基础。原本是等待按键释放,结果CPU就一直死死的盯住该按键,其它事情都不管了,那其它事情不干了吗消除抖动有必要吗的确,软件上的消抖确实可以保证按键的有效检测。但是,这种消抖确实有必要吗抖动的出现即意味着按键已经按下,尽管这个电平还没有稳定。所以只要我检测到按键按下,即可以返回键值,问题的关键是,在你执行完其它任务的时候,再次执行我的按键任务的时候,抖动过程还没有结束,这样便有可能造成重复检测。所以,如何在返回键值后,避免重复检测,或者在按键一按下就执行功能函数,当功能函数的执行时间小于抖动时间时候,如何避免再次执行功能函数,就成为我要考虑的问题了。所以消除抖动的目的是防止按键一次按下,多次响应。53调试结果在调试过程中,遇到比较多的问题是硬件方面的问题,可能由于自己是软件工程专业出身吧。在软件调试时候,采用的一个模块一个模块的单独调试,最后联调的方式。经过一系列的问题查找后系统最终能正常工作,并完成所有的功能。结论毕业论文是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次基于单片机的交通信号灯控制电路的设计与实现,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,并且意志品质力,抗压能力及耐力也都得到了不同程度的提升。这是我们都希望看到的也正是我们进行毕业设计的目的所在。通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现基于单片机的交通灯的所有功能。不足之处有1硬件的稳定性有待进一步提高。2系统人性化还不足。我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了PROTEL99SE原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LCD液晶,键盘等。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到了很大的提高,创新意识得到了锻炼。提高是有限的但提高也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好的被知识武装了起来,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力。从不知道毕业论文怎么写,到顺利如期的完成本次毕业设计,这给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,这些我在毕业论文结束语中都提起过。虽然,在这次设计中,存在诸多不足,可这些不足正是我们去更好的研究更好的创造的最大动力,只有发现问题面对问题才有可能解决问题,不足和遗憾不会给我打击只会更好的鞭策我前行,今后我更会关注新技术新设备新工艺的出现,并争取尽快的掌握这些先进的知识,更好的为祖国的四化服务。参考文献1彭伟单片机C语言程序设计实训100例电子工业出版社2009年2吴运昌模拟电子线路基础广州华南理工大学出版社,2004年3阎石数字电子技术基础北京高等教育出版社,1997年4张晓丽等数据结构与算法北京机械工业出版社,2002年5马忠梅等ARMSBITSEGA2P24SBITSEGB1P27SBITSEGB2P26SBITKEY_1P32SBITKEY_2P33SBITKEY_3P34SBITKEY_4P35SBITREDAP37SBITGREENAP20SBITYELLOWAP36SBITREDBP21SBITGREENBP23SBITYELLOWBP22SBITBEEPP10STATICUNSIGNEDCHARSEG_DAT0X30,0XF3,0XA4,0XA2,0X63,0X2A,0X28,0XB3,0X20,0X22,0XFFUNSIGNEDINTT0COUNT0/定时器计数用UNSIGNEDCHARTIMENOW0/当前数码管上显示的倒计时时间UNSIGNEDCHARTIMER20,TIMEY3/红灯的时间,黄灯的时间UNSIGNEDCHARKEYCOUNT0/0表示正常显示,1表示调整红灯时间,2表示调整黄灯时间UNSIGNEDCHARFLAG0/0为竖着的是红灯,1为横着的是红灯VOIDDELAYMSUNSIGNEDINTI/延时大约IMSUNSIGNEDINTX,YFORX0XTIMER/黄灯的时间不得大于红灯的时间TIMEYTIMERDISPTIMEY/调整黄灯WHILEKEY_2IFKEY_30DELAYMS10IFKEY_30IFKEYCOUNT1TIMERIFTIMER255TIMER99DISPTIMER/调整红灯ELSEIFKEYCOUNT2TIMEYIFTIMEYTIMER/黄灯的时间不得大于红灯的时间TIMEYTIMERDISPTIMEY/调整黄灯WHILEKEY_3IFKEY_40DELAYMS10IFKEY_40P00XFFP10X00P20XFFP30XFFWHILEKEY_4VOIDMAINVOIDTMOD0X01/定时器工作模式1TH06553650000/256/单次计时时间为50MSTL06553650000256TR01/计数器开始计数ET01/开启计数器0中断EA1/开总中断TIMENOWTIMERWHILE1KEY_SCANBEEP1IFKEYCOUNT0DISPTIMENOWIFFLAG0/A竖着的是红灯,B横着的是绿灯REDA0YELLOWA1GREENA1IFTIMENOWTIMEY/绿灯时间REDB1YELLOWB1GREENB0ELSE/黄灯时间REDB1YELLOWB0GREENB1ELSEREDB0YELLOWB1GREENB1IFTIMENOWTIMEY/绿灯时间REDA1YELLOWA1GREENA0ELSE/黄灯时间REDA1YELLOWA0GREENA1ELSEIFKEYCOUNT1DISPTIMER/调整红灯ELSEIFKEYCOUNT2DISPTIMEY/调整黄灯/T0中断函数/VOIDTIMER0VOIDINTERRUPT1/计数器0中断TH06553650000/256/重装初值TL06553650000256T0COUNTIFT0COUNT20/当TOCOUNT20时,表示计时1ST0COUNT0/清零TIMENOWIFTIMENOW255TIMENOWTIMERFLAGFLAG/换行外文资料8BITMICROCONTROLLERWITH8KBYTESFLASHSTC89C52FEATURESCOMPATIBLEWITHMCS51PRODUCTS8KBYTESOFINSYSTEMREPROGRAMMABLEFLASHMEMORYENDURANCE1,000WRITE/ERASECYCLESFULLYSTATICOPERATION0HZTO24MHZTHREELEVELPROGRAMMEMORYLOCK256X8BITINTERNALRAM32PROGRAMMABLEI/OLINESTHREE16BITTIMER/COUNTERSEIGHTINTERRUPTSOURCESPROGRAMMABLESERIALCHANNELLOWPOWERIDLEANDPOWERDOWNMODESDESCRIPTIONTHESTC89C52ISALOWPOWER,HIGHPERFORMANCECMOS8BITMICROCOMPUTERWITH8KBYTESOFFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORYPEROMTHEDEVICEISMANUFACTUREDUSINGHIGHDENSITYNONVOLATILEMEMORYTECHNOLOGYANDISCOMPATIBLEWITHTHEINDUSTRYSTANDARD80C51AND80C52INSTRUCTIONSETANDPINOUTTHEONCHIPFLASHALLOWSTHEPROGRAMMEMORYTOBEREPROGRAMMEDINSYSTEMORBYACONVENTIONALNONVOLATILEMEMORYPROGRAMMERBYCOMBININGAVERSATILE8BITCPUWITHFLASHONAMONOLITHICCHIP,THESTC89C52ISAPOWERFULMICROCOMPUTERWHICHPROVIDESAHIGHLYFLEXIBLEANDCOSTEFFECTIVESOLUTIONTOMANYEMBEDDEDCONTROLAPPLICATIONSPINCONFIGURA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论