《交通灯毕业设计论文复习进程.doc》由会员分享,可在线阅读,更多相关《交通灯毕业设计论文复习进程.doc(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。交通灯毕业设计论文-第一章绪论1.1引言当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1918年,出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便可变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世
2、纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交
3、通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,
4、还必须通过一定的科技手段加以实现。本文在对目前交通控制进行深入分析的基础上,运用测传感、实时调整智能化控制的实现技术,将传感器监测、实时调整车辆通行时间的算法与单片机控制作用相结合,提出了基于单片机的交通控制系统设计方案。单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大
5、阶段。1.SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。2.MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展M
6、CU方面,最著名的厂家当数Philips公司。Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。单片机可以从以下几个方面分类:1.按应用领域可分为:家电
7、类、工控类、通信类和个人信息终端类等。2.按通用性可分为:通用型和专用型。3.按总线结构可分为总线型和非总线型。4.按指令运行的振荡周期可分为标准型和改进型。1.2选题背景与意义交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。汽车现已成为人们日常生活中必不可少的交通工具。汽车在给人们带来便利的同时,也带来了一系列令人困惑的问题,如环境污染、交通拥挤、交通事故频繁发生,给人们的生命和财产带来了很大的损失。城市交通问题困扰城市发展、制约城市经济建设的重要因素,人们对交通有效控制的意识越来越强烈。城市交通信号控制是通过对交通流的调节、警告和诱导以达到改善人和货物的安全
8、运输,提高运营效率。其目标在于改善交通流的质量,更好的利用现有运输能力,提高交通流的安全性、快速性和舒适性。随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的问题,城市交通事故、交通堵塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,即大量修筑道路基础设施的办法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的资源和财力以及
9、环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他办法来满足日益增长的交通需求。在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力正是解决这一矛盾的途径之一,大量事实已经证明这种方法的有效性。当然,解决该问题最有效的方法是增加道路建设,但由于资金及城市空间的限制,该方法又出现诸多难处。因此,在有效道路的前提下,提高交通控制和管理水平,合理使用现有的交通设施,充分发挥其能力,是解决交通问题有效方法之一。1.3研究现状路是交通的物质基础,有路才能通车,行人。我国是一个文明古国,许多城市已有上千年的历史,城市布局和道路结构是在漫长的历史进程中逐步形成的,近几
10、年虽然作了些改建和扩建,但毕竟还难以冲破原来的基本格局。我国城市道路普遍存在的弊端是:a.路网密度低;b.交通干道少;c.路口平面交叉。道路状况与车辆状况的综合作用形成了我国城市交通的特殊性,主要表是:城市路网稀,干道少,间距大,市区人口稠密,出行需求集中,迫使车辆集中于少数干道上行驶。至于中小城市,干道特征更为明显,往往只有一两条干道贯穿全市,而其他支路上交通量极小。从流量变化情况来看,除外围过境干道外,都是有一定规律的,高峰小时基本上都集中在几个时段内。我国城市机动车车种繁杂,从50年代的老式车到80年代的新型车,从大货车到小轿车都在一个平面上行驶,不少城市拖拉机还是一种主要运输工具,前面
11、一辆旧车挡道,尾随的新型车只能跟着爬行,过交叉口时经常出现启动慢的车挡住启动快的车,使交通工程师精心设计的交通配时方案不能很好发挥效益。1.4本文结构本文所设计的交通灯控制系统是以AT89C51单片机作为核心设计的,因此,如何熟练的运用这一单片机的相关功能及应用,成为了本课题研究的关键。本文以硬件电路的设计、软件的编写和软硬件联合调试三个部分来讲述交通灯控制系统设计。全文共分为六个章节,各章节的主要内容如下:第一章为绪论部分,简要地介绍了交通灯控制系统的发展、特点和概念,了解了相关研究背景和研究现状;第二章为系统总体方案设计部分,主要阐明了各个方案的比较,表明了整个方案的设计部分以及各个部分的
12、设计思路和功能说明;第三章为交通灯控制系统硬件设计,主要对各个模块所使用的芯片产品作了研究,主要围绕功能的实现对于每一部分说明了电路或者模块的设计要求或者功能,并给出具体的电路设计和详细地分析、说明,讨论了各种设计方案的可行性;第四章为软件设计部分,包括系统有所需要的软件设计部分,并针对每一个子程序,说明了设计要求及其实现功能,并绘程序流程图等;第五章主要是调试部分的情况说明,如出现的问题和解决方法,调试部分包括Protues软件仿真和单片机开发板的硬件仿真等;第六章总结了全文的设计研究工作,给出了存在的问题和进一步研究的方向,并对本次毕业设计作了一些感想。第二章系统总体方案设计2.1交通灯控
13、制系统的设计要求本毕业设计是采用51系列单片机设计一个交通灯控制电路,并综合应用所学过的单片机原理、微机原理等课程方面的知识,完成交通灯控制电路中所需的硬件电路及软件编程,并实现一定的交通灯功能。1.正常循环控制模式(1)东西方向绿灯亮15s,黄灯闪烁5s,南北方向红灯亮20s。(2)南北方向绿灯亮25s,黄灯闪烁5s,东西方向红灯亮30s。(3)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。(4)黄灯亮时,要求每秒闪亮一次。(5)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用倒计时的方法)2.车流较大模式设置按键可以切换模式,当车流较大时切
14、换到此模式,更改时间长短。3.紧急情况处理有紧急车辆要求通过时,系统要能禁止普通车辆通行,东西、南北道均为红灯,紧急车由K2开关模拟。2.2系统总体方案选择交通灯的设计方法很多,功能也是五花八门,下面列举了以下几个方案,进行比较,来确定本设计的设计方案。2.2.1交通灯的几种设计方案方案一:单片机控制方案方案采用AT89C51系列单片机作为主控制器,设计的最小交通灯模拟系统。硬件方面:红绿灯指示、倒计时显示采用高亮度发光二极管和数码管。软件方面:使用单片机的P0和P1口进行数据传送,完成数码管送数和红绿灯指示,实现模拟交通灯指挥系统。AT89C系列单片机集成了几乎完善的中央处理单元,处理功能强
15、,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理器及各种逻辑运算和转移指令,给利用单片机设计带来了极大方便。单片机把微型计算机的主要部件都集成在一块芯片上,使得数据传送距离大大缩短,各功能部件在芯片中的布局和结构达最优化,工作亦相对稳定。因此,测控系统中,使用单片机是理想的选择。单片机属于典型的嵌入式系统,所以它是低端控制系统的最佳器件。单片机的开发环境要求低,软件资源丰富,开发工具和语言也大大简化。方案二:PLC控制方案方案选用三菱FXON系列PLC作为核心控制器。PLC可编程控制器核心是一台微型计算机,它是专为工业环境应用而设计制造的计算机。它具有高可靠性,丰
16、富的输入/输出接口,并且具有较强的驱动能力;它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算数操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程;该控制系统由启动按钮、复位按钮、PLC控制器件、东西通道的灯指示与计时、南北通道的灯指示与计时、定时器组成。它采用模块化结构,编程简单,安装简单,维修方便。方案三:FPGA控制方案方案采用FPGA作为主控制器,所谓FPGA就是现场可编程逻辑门阵列的缩写形式,它具有以下特点:(1) 高性能。由于FPGA芯片内部是通过上百万个逻辑单元完成硬件实现,具有并行处理的能力,运算速度比平常的单片机和
17、DSP快很多。(2) 高集成性。FPGA可根据用户的需求在内部嵌入硬/软IP核,以实现不同的要求。(3) 高可靠性和低成本。目前的FPGA芯片在出厂之前都做过100%的检测,不需要设计人员承担投片生产的费用。(4) 高灵活性和低功耗。FPGA是现场可编程,用户可以反复的编程、擦写、使用,或者在外围电路保持不变的情况下,采用不同的设计而实现不同的功能,这样给产品升级和维护带来了极大的方便。虽然,FPGA的稳定性、可靠性更高而且编辑灵活,但其有很多的连接单元,硬件结构很复杂。它更适用于逻辑复杂不易由软件实现的设计,需要用硬件逻辑部分来满足软件设计的功能。由于本设计中的功能要求不是非常复杂,使用FP
18、GA会提高成本,并且不能充分利用FPGA的有点,未免大材小用了。方案四:ARM9控制方案方案采用ARM9为主控芯片,ARM9控制板与单片机的通信方式采用CAN总线方式;和计算机之间的数据交换通过互联网来实现,只要在一台主控计算机上就可完成一个城市所有路口交通灯信号控制。交通灯控制系统主要由三大部分组成:主控计算机、ARM9控制板和单片机控制器。主控计算机功能主要是通过ARM9控制板完成对各十字路口的监视和在线动态调整,主控计算机与ARM9控制板的数据交换是通过互联网完成。ARM9控制板主要是完成对各路口单片机控制器的控制,包括读取单片控制器的十带路口红绿黄灯照示时间,向单片枧控制器发送调整红绿
19、黄灯整参数。ARM9控制板和单片机控制器的通信通过CAN总线完成。2.2.2系统方案分析综上所述,由于ARM9与FPGA在硬件上成本较高,使用上有一定难度,其使用开发方法相对复杂;而AT89C51单片机的结构简单,性能成熟稳定,指令算法易学易懂,外围电路设计方便实用,硬件设计容易,I/O接口连接简单明了,无方向寄存器,它资源丰富,一般设计足够用了,而且价格便宜、容易购买,资料丰富容易查到,程序的烧写非常简单。本身对AT89C51比较熟悉,故在本设计中采用最常用的AT89C51单片机作为家用定时器的控制处理器。23系统总体结构根据交通灯控制系统的设计要求,需要倒计时时间设置、倒计时时间显示、红绿
20、灯显示,硬件结构包含晶振电路,复位电路,键盘输入电路,数码管显示电路和按键控制电路五个部分,初步设计系统的方框图如图2.1所示。红黄绿灯电路89C51单片机最小系统外围电路按键电路数码管显示电路图2.1系统方框图2.3.1系统功能说明(1) 时间显示功能本设计具有倒计时显示的功能,倒计时显示的功能由数码管来实现,数码管有一位数码管、两位数码管、四位数码管。本设计中显示的时间都是两位数,故直接采用两位数码管即可。因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间。数码管有共阳极与共阴极之分,本设计系
21、统采用的数码管使用共阴极数码管,数码管内部发光二极管点亮时需要5毫安以上的电流,而且电流不能过大,否则会烧毁发光二极管。由于单片机的I/0口送不出如此大的电流,所以数码管与单片机连接时需要加驱动电路,可以用上拉电阻的方法或者使用专门的数码管驱动芯片,本设计直接使用470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。(2) 交通灯显示功能本设计利用单片机的P1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机输出端口的信号直接来控制发光二极管。(3) 时间设置功能本设计由于考虑到
22、车流量的大小,本系统设计了时间设置模块,该模块由按键来模拟,当车流量有变化时可以按下K4键来更改时间,K0键是更改南北方向时间,K1更改东西方向时间。由于用到的按键只有五个,可以用独立键盘实现按键功能。独立式键盘是指,每个按键按照一对一的方式直接连接到I/O输入线上,故键盘接口使用多少根I/O线,键盘中就有几个按键。在按键比较少的情况下,使用这种独立式键盘可以更灵活的编码,而且键盘中各个按键的工作是互不干扰的。对于按键直接状态码,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据该值直接进行按键识别。本课题只需使用5个按键,只占用5个I/O口,完全可以用独立键盘直接编码,不仅
23、编码容易,而且工作也更可靠。(4) 紧急情况功能有紧急车辆要求通过时,系统要能禁止普通车辆通行,东西、南北道均为红灯,紧急车由K2开关模拟。第三章交通灯控制系统硬件设计3.1单片机AT89C51主电路3.1.1单片机简介单片机也被称为微控制器(Micro-controllerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设
24、备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。与微机相比,它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。如今,单片机已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。3.1.2单片机AT89C51简介本设计中选用了Atmel公司生产的基础产品AT89C52单片机,它采用了可靠的CMOS工艺制造技术,是具有高性能的8位单片机。AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Fla
25、sh只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C51单片机可为您提供许多较复杂系统控制应用场合,可灵活应用于各个领域。AT89C51共有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,如图示3.1所示。图3.1AT89C51单片机引脚图引脚功能:VCC(40脚)、GND(20脚)单片机电源引脚。XTAL1(19脚)、XTAL2(18脚)外
26、接时钟引脚。XTAL1为片内振荡电路的输入端,XTAL2为片内震荡电路的输出端。8051的时钟有两种方式,一种是片内时钟震荡方式,需在这两个脚外接石英晶体和震荡电容,震荡电容一般取10p30p;另一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。RST(9脚)单片机复位引脚。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作,复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码,通俗地讲,就是单片机从头开始执行程序。PSEN(29脚)程序存储器允许输出控制端。在读外部程序存储器时PSEN低电平有效,以实现外部程序存
27、储器单元的读操作。ALE/PROG(30脚)当访问外部存储器时,ALE用于控制P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。EA/Vpp(31脚)EA接高电平时,单片
28、机读取内部程序存储器。当扩展有外部ROM时,当读取完内部ROM后自动读取外部ROM。EA接低电平时,单片机直接读取外部ROM。P0口(39脚32脚)P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口(1脚8脚)P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉
29、为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口(21脚28脚)P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制
30、信号。P3口(10脚17脚)准双向8位I/O口,每个口可独立控制,内带上拉电阻。作为第一功能使用时就当作普通I/O口,与P1相似。作为第二功能使用时,各引脚的定义如下图所示。值得强调的是,P3口的每个引脚均可独立定义为第一功能的输入/输出或第二功能。表3.2P3口各引脚第二功能定义标号引脚第二功能说明P3.010RXD串行输入口P3.111TXD串行输出口P3.212INT0外部中断0P3.313INT1外部中断1P3.414T0定时器/计数器0外部输入端P3.515T1定时器/计数器1外部输入端P3.616WR外部数据存储器写脉冲P3.717RD外部数据存储器读脉冲32单片机最小系统用AT8
31、9C51构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可。由于集成度的限制,最小应用系统只能用作一些小型的测控单元。其应用特点如下:(1)有可供使用的大量I/O端口线,P0、P1、P2、P3口都可以用作I/O口;(2)内部存储器容量有限;(3)应用系统开发具有特殊性。如图3.3所示,是AT89C51在使用时的原理图,其中最小系统部分包括晶振时钟电路和复位电路,如图中第9脚RST脚即接了复位电路,第18、19脚XTAL2和XTAL1即接了晶振电路。使用AT89C51时,除了20脚Vss接地,40脚Vcc接工作电压5V外,第31脚EA/Vpp需要上接高电平,下用小电容接地。这是因为单片机
32、的EA/VPP脚是内部和外部程序存储器的选择管脚。当EA保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。所以本设计中,EA管脚没有悬空,而是接到了+5V上,只使用内部的程序存储器,若悬空则会导致程序执行不正常。图3.3AT89C51原理图(1)晶振电路部分单片机最小系统以89C51为核心,外加时钟电路和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。89C51单片机系列是
33、MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺,CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点。时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C2,C3为30pF。晶振电路如图3.4所示。图3.4最小系统晶振电路原理图复位电路如图3.5所示,它使单片机进行初始化操作,其主要功能是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个初始状态开始工作。除了进入系
34、统的正常初始化之外,当程序运行出错或操作错误使系统处于死循环时,也需按复位键以重新启动机器。RST引脚是复位信号的输入端,复位信号是高电平有效,高电平有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,本课设计题中使用的是频率为12MHz的晶振,则复位信号如图所示。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现:只要电源的上升时间不超过1ms,电容视为短路,电源被加到RST(脉宽24T),单片机便可自动复位,如图3.4所示。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位时通过使复位端经电阻与电源接通而实现的,而按键脉冲复位则是利用微分
35、电路产生的正脉冲来实现的。我选择的是按键电平复位,出现故障时,按复位键就可以恢复初始状态。图3.4最小系统复位电路33电源电路本设计中使用的单片机,数码管,LED灯等都需要5V电源供电,故需要设计电源电路。由于实验室常见电源转换器为9V,故本设计中的5V电源可以通过加以稳压集成电路来实现。若有5V的电源转换器,稳压集成电路可用于稳压。电子产品中,常见的三端稳压集成电路有正电压输出的78XX系列和负电压输出的79XX系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO-220的标准封装,也有9013样子的TO-92封装。
36、用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7805表示输出电压为正5V,7909表示输出电压为负9V。因为三端固定集成稳压电路的使用方便,电子制作中经常采用。本设计采用LS7805来稳压。本设计使用的电源电路是7805典型的应用电路如图3.5所示。图中C1,C2为稳压电容,C3,C4为滤波电容,LED1为电源指示灯。7805的1脚为接地端,2脚为输入端,3脚为输出端。78XX系列的稳压集成块的极限输入电压是36V,最低
37、输入电压比输出电压高3-4V。还要考虑输出与输入间压差带来的功率损耗,所以一般输入为9-15V之间。本设计选用的为9V。图3.5电源电路原理图34LED数码管显示电路单片机应用系统中,最常用的显示器是LED(发光二极管显示器),它结构简单、成本低、配置灵活,与单片机的接口也特别方便,因而在单片机系统中得到广泛应用。LED数码管是由若干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,控制不同组合的二极管导通,就能显示出不同的字形。这种数码管又可分为共阴极和共阳极两种,通常使用的是共阴极的数码LED显示,高电平有效。一般的数码管显示块上有8个发光二极管,故也叫八段数码管,它们组成一个“
38、8”字型和一个小数点。341静态显示与动态显示静态显示:当多个数码管应用于某一系统时,他们的“位选”是独立可控的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那么它们显示的数字必定一样。动态显示:数码管的动态显示又叫做数码管的动态扫描显示。即轮流向各位数码管送出字型码和相应的位选,利用发光二极管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示出来的,只是轮流的速度非常快,人眼已经无法分辨出来。
39、342显示电路设计本设计采用动态显示的方式,利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间。数码管使用共阴数码管,需要接上470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。在段选线上接上电阻防止数码管被烧坏,限流的作用。数码管显示电路如图3.5所示。图3.5数码管显示电路35交通灯显示电路本设计利用单片机的P1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管。交通灯显示电路如图3.6所示。(灯的
40、定义,高低电平如何控制灯亮)图3.6交通灯显示电路36键盘输入电路单片机检测按键的原理是:单片机的I/O口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连如图3.7所示。开始时先给该I/O口赋一高电平,然后让单片机不断检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。图3.7按键与单片机连接图按键按下时电压变化的理想波形和实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动现象,抖动时间的长短和按键的机械特性有
41、关,一般为5ms10ms。通常我们手动按下键然后立即释放,这个动作中稳定闭合的时间超过20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专用的去抖动芯片,但通常我们用软件延时的方法就能很容易解决抖动问题,而没必要再添加多余的硬件电路。独立键盘与单片机连接时,每一个按键都需要单片机的一个I/O口,若单片机系统需要较多按键,如果用独立按键便会占用过多的I/O资源。单片机系统中I/O口资源往往比较宝贵,当用到多个按键时,为了节省I/O口线,就会使用矩阵键盘。矩阵键盘如图3.6所示,它与独立键盘都是检测其是否被按下的依据是一样的,也就是检测与该键对应的I/O口是否为低
42、电平。独立键盘有一段固定为低电平,单片机写程序检测时比较方便。而矩阵键盘两端与单片机I/O口相连,因此在检测时需人为通过单片机I/O口送出低电平。检测时,先送一列为低电平,其余几列全为高电平(此时确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(此时确定了行数),则我们便可确认当前按下的键是哪一行、哪一列。用同样的方法轮流各送一次低电平,再轮流检测一次各行是否变为低电平,这样即可检测完所有的按键,当有按键被按下时便可判断出按下的键是哪一个键。图3.6矩阵键盘由于矩阵键盘功能复杂,其软件编写上有一定的困难,而且交通灯控制系统的功能较为简单,所需要的按键数目不多,独立按键
43、键盘结构简单,性能也更加稳定,选用按键键盘可以节约硬件资源,综合上述原因,在本设计中选用的是独立按键键盘。本设计中只使用了5个按键,故采用独立式按键的原理图如图3.7所示,其中K0用于南北时间调整,K1用于东西时间调整,K2用于模拟禁止通行,亮红灯,K3返回键,K4用于设定时间,需要设定时,先按下此按钮。单独按下K0键就是南北方向通行,单独按下K1是东西方向通行。图3.7键盘输入电路原理图第四章系统软件设计41系统软件的设计要求由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄
44、灭。采用中断方式实现按键的功能。42系统应用程序的设计C语言基本组成部分紧凑、简洁,使用一些简单的规则方法,就可以构造出相当复杂的结构,表达式简练、灵活、实用,既提高了变异效率和目标代码的质量,又提高了程序的可读性。C语言中提供了某些渐进于汇编程序的功能,如地址处理、二进制位运算以及制定用寄存器存放变量等。它是结构化程序设计语言,具有良好的程序所需要的各种控制流结构,如for、while、dowhile循环语句等。在C语言中具有各种现代程序设计语言普遍配置的数据结构和基本数据类型,运算符丰富,处理字符方便,输入/输出时依靠函数调用实现,在标准程序库中,具有使用方便,功能强的I/O函数。所以,在
45、程序设计时,采用C语言进行程序设计。421主程序设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。255S15S5S东西道红灯亮红灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮红灯亮表4.1交通状态全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,紧停判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图4.2所示。开始初始化设初值红灯倒计时红绿灯交替绿灯倒计时倒计时完毕车流量改变倒计时
46、完毕黄灯亮键盘输入灯交替YNYNNY图3.7键盘输入电路原理图422按键设置程序的设计按键程序的流程图如图4.3所示:图4.3按键程序流程图在按键程序中,运用while语句不断循环,来检测按键是否按下,按下后,防止因抖动引起的误操作,延时10ms再次确认按键是否按下后,确定后执行相应代码,然后等待按键的释放。voiddelay(uintms)/延时子程序uchart;while(ms-)/ms即延时毫秒for(t=0;t120;t+);voidkeyscan()if(S1=0)/检测按键按下delay(10);/延时if(S1=0)/确认按键按下a+;/执行代码while(!S1);/等待按键
47、释放423时间显示程序的设计八段数码管上的引脚有a,b,c,d,e,f,g,dp八位,前七位是对应字形“8”的七个数码管,最后一位对应小数点。数码管显示数字时通常要用到编码,共阴极数码管编码如表4.4所示。表4.4共阴极八段数码管编码符号编码符号编码00x3f50x6d10x0660x7d20x5b70x0730x4f80x7f40x6690x6f在C语言编程时,编码定义方法如下:unsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;调用数组方法如下:P0=table3;即将table这个数组中的第4个元素直接赋给P0口,即P0=0x4f;第五章调试5.1Protues简介在该设计中,利用proteus软件进行仿真。Proteus是英国Labcenter公司开发的电路分析与仿真软件。它不仅具有其它EDA工具软