1.1引言
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1918年,出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便可变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的科技手段加以实现。本文在对目前交通控制进行深入分析的基础上,运用测传感、实时调整智能化控制的实现技术,将传感器监测、实时调整车辆通行时间的算法与单片机控制作用相结合,提出了基于单片机的交通控制系统设计方案。
1南京工程学院自动化学院本科毕业设计(论文)单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。1.SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系立发展道路上,Intel公司功不可没。
2.MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3.单片机是嵌入式系统的发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
单片机可以从以下几个方面分类:
1.按应用领域可分为:家电类、工控类、通信类和个人信息终端类等。2.按通用性可分为:通用型和专用型。3.按总线结构可分为总线型和非总线型。
4.按指令运行的振荡周期可分为标准型和改进型。
1.2选题背景与意义
交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。汽车现已成为人们日常生活中必不可少的交通工具。汽车在给人们带来便利的同时,也带来了一系列令人困惑的问题,如环境污染、交通拥挤、交通事故频繁发生,给人们的生命和财产带来了很大的损失。城市交通问题困扰城市发展、制约城市经济建设的重要因素,人们对交通有效控制的意识越来越强烈。城市交通
2南京工程学院自动化学院本科毕业设计(论文)信号控制是通过对交通流的调节、警告和诱导以达到改善人和货物的安全运输,提高运营效率。其目标在于改善交通流的质量,更好的利用现有运输能力,提高交通流的安全性、快速性和舒适性。
随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的问题,城市交通事故、交通堵塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是车辆的增加;二是增加供给,即大量修筑道路基础设施的办法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的资源和财力以及环境的压力,也将受到。这就需要依靠除需求和提供道路设施之外的其他办法来满足日益增长的交通需求。在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力正是解决这一矛盾的途径之一,大量事实已经证明这种方法的有效性。
当然,解决该问题最有效的方法是增加道路建设,但由于资金及城市空间的,该方法又出现诸多难处。因此,在有效道路的前提下,提高交通控制和管理水平,合理使用现有的交通设施,充分发挥其能力,是解决交通问题有效方法之一。
1.3研究现状
路是交通的物质基础,有路才能通车,行人。我国是一个文明古国,许多城市已有上千年的历史,城市布局和道路结构是在漫长的历史进程中逐步形成的,近几年虽然作了些改建和扩建,但毕竟还难以冲破原来的基本格局。我国城市道路普遍存在的弊端是:a.路网密度低;b.交通干道少;c.路口平面交叉。
道路状况与车辆状况的综合作用形成了我国城市交通的特殊性,主要表是:城市路网稀,干道少,间距大,市区人口稠密,出行需求集中,迫使车辆集中于少数干道上行驶。至于中小城市,干道特征更为明显,往往只有一两条干道贯穿全市,而其他支路上交通量极小。从流量变化情况来看,除外围过境干道外,都是有一定规律的,高峰小时基本上都集中在几个时段内。
我国城市机动车车种繁杂,从50年代的老式车到80年代的新型车,从大货车到小轿车都在一个平面上行驶,不少城市拖拉机还是一种主要运输工具,前面一辆旧车挡道,尾随的新型车只能跟着爬行,过交叉口时经常出现启动慢的车挡住启动快的车,使交通工程师精心设计的交通配时方案不能很好发挥效益。
3南京工程学院自动化学院本科毕业设计(论文)1.4本文结构
本文所设计的交通灯控制系统是以ATC51单片机作为核心设计的,因此,如
何熟练的运用这一单片机的相关功能及应用,成为了本课题研究的关键。本文以硬件电路的设计、软件的编写和软硬件联合调试三个部分来讲述交通灯控制系统设计。
全文共分为六个章节,各章节的主要内容如下:
第一章为绪论部分,简要地介绍了交通灯控制系统的发展、特点和概念,了解了相关研究背景和研究现状;
第二章为系统总体方案设计部分,主要阐明了各个方案的比较,表明了整个方案的设计部分以及各个部分的设计思路和功能说明;
第三章为交通灯控制系统硬件设计,主要对各个模块所使用的芯片产品作了研究,主要围绕功能的实现对于每一部分说明了电路或者模块的设计要求或者功能,并给出具体的电路设计和详细地分析、说明,讨论了各种设计方案的可行性;
第四章为软件设计部分,包括系统有所需要的软件设计部分,并针对每一个子程序,说明了设计要求及其实现功能,并绘程序流程图等;
第五章主要是调试部分的情况说明,如出现的问题和解决方法,调试部分包括Protues软件仿真和单片机开发板的硬件仿真等;
第六章总结了全文的设计研究工作,给出了存在的问题和进一步研究的方向,并对本次毕业设计作了一些感想。
4南京工程学院自动化学院本科毕业设计(论文)第二章系统总体方案设计
2.1交通灯控制系统的设计要求
本毕业设计是采用51系列单片机设计一个交通灯控制电路,并综合应用所学过的单片机原理、微机原理等课程方面的知识,完成交通灯控制电路中所需的硬件电路及软件编程,并实现一定的交通灯功能。
1.正常循环控制模式
(1)东西方向绿灯亮15s,黄灯闪烁5s,南北方向红灯亮20s。(2)南北方向绿灯亮25s,黄灯闪烁5s,东西方向红灯亮30s。(3)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。(4)黄灯亮时,要求每秒闪亮一次。
(5)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的
时间都用显示器进行显示(采用倒计时的方法)2.车流较大模式
设置按键可以切换模式,当车流较大时切换到此模式,更改时间长短。3.紧急情况处理
有紧急车辆要求通过时,系统要能禁止普通车辆通行,东西、南北道均为红灯,紧急车由K2开关模拟。
2.2系统总体方案选择
交通灯的设计方法很多,功能也是五花八门,下面列举了以下几个方案,进行比较,来确定本设计的设计方案。2.2.1
交通灯的几种设计方案
方案一:单片机控制方案
方案采用ATC51系列单片机作为主控制器,设计的最小交通灯模拟系统。
5南京工程学院自动化学院本科毕业设计(论文)硬件方面:红绿灯指示、倒计时显示采用高亮度发光二极管和数码管。软件方面:使用单片机的P0和P1口进行数据传送,完成数码管送数和红绿灯指示,实现模拟交通灯指挥系统。
ATC系列单片机集成了几乎完善的处理单元,处理功能强,处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理器及各种逻辑运算和转移指令,给利用单片机设计带来了极大方便。单片机把微型计算机的主要部件都集成在一块芯片上,使得数据传送距离大大缩短,各功能部件在芯片中的布局和结构达最优化,工作亦相对稳定。因此,测控系统中,使用单片机是理想的选择。单片机属于典型的嵌入式系统,所以它是低端控制系统的最佳器件。单片机的开发环境要求低,软件资源丰富,开发工具和语言也大大简化。
方案二:PLC控制方案
方案选用三菱FXON系列PLC作为核心控制器。PLC可编程控制器核心是一台微型计算机,它是专为工业环境应用而设计制造的计算机。它具有高可靠性,丰富的输入/输出接口,并且具有较强的驱动能力;它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算数操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程;该控制系统由启动按钮、复位按钮、PLC控制器件、东西通道的灯指示与计时、南北通道的灯指示与计时、定时器组成。它采用模块化结构,编程简单,安装简单,维修方便。
方案三:FPGA控制方案
方案采用FPGA作为主控制器,所谓FPGA就是现场可编程逻辑门阵列的缩写形式,它具有以下特点:
(1)高性能。由于FPGA芯片内部是通过上百万个逻辑单元完成硬件实现,具有并行处理的能力,运算速度比平常的单片机和DSP快很多。
(2)高集成性。FPGA可根据用户的需求在内部嵌入硬/软IP核,以实现不同的要求。
6南京工程学院自动化学院本科毕业设计(论文)(3)高可靠性和低成本。目前的FPGA芯片在出厂之前都做过100%的检测,不需要设计人员承担投片生产的费用。
(4)高灵活性和低功耗。FPGA是现场可编程,用户可以反复的编程、擦写、使用,或者在外围电路保持不变的情况下,采用不同的设计而实现不同的功能,这样给产品升级和维护带来了极大的方便。虽然,FPGA的稳定性、可靠性更高而且编辑灵活,但其有很多的连接单元,硬件结构很复杂。它更适用于逻辑复杂不易由软件实现的设计,需要用硬件逻辑部分来满足软件设计的功能。由于本设计中的功能要求不是非常复杂,使用FPGA会提高成本,并且不能充分利用FPGA的有点,未免大材小用了。
方案四:ARM9控制方案
方案采用ARM9为主控芯片,ARM9控制板与单片机的通信方式采用CAN总线方式;和计算机之间的数据交换通过互联网来实现,只要在一台主控计算机上就可完成一个城市所有路口交通灯信号控制。
交通灯控制系统主要由三大部分组成:主控计算机、ARM9控制板和单片机控制器。主控计算机功能主要是通过ARM9控制板完成对各十字路口的监视和在线动态调整,主控计算机与ARM9控制板的数据交换是通过互联网完成。ARM9控制板主要是完成对各路口单片机控制器的控制,包括读取单片控制器的十带路口红绿黄灯照示时间,向单片枧控制器发送调整红绿黄灯整参数。ARM9控制板和单片机控制器的通信通过CAN总线完成。2.2.2系统方案分析
综上所述,由于ARM9与FPGA在硬件上成本较高,使用上有一定难度,其使用开发方法相对复杂;而ATC51单片机的结构简单,性能成熟稳定,指令算法易学易懂,外围电路设计方便实用,硬件设计容易,I/O接口连接简单明了,无方向寄存器,它资源丰富,一般设计足够用了,而且价格便宜、容易购买,资料丰富容易查到,程序的烧写非常简单。本身对ATC51比较熟悉,故在本设计中采用最常用的ATC51单片机作为家用定时器的控制处理器。
2.3系统总体结构
根据交通灯控制系统的设计要求,需要倒计时时间设置、倒计时时间显示、红绿灯显示,硬件结构包含晶振电路,复位电路,键盘输入电路,数码管显示电路和
7南京工程学院自动化学院本科毕业设计(论文)按键控制电路五个部分,初步设计系统的方框图如图2.1所示。
最小系统外围电路数码管显示电路按键电路C51单片机
红黄绿灯电路图2.1系统方框图2.3.1系统功能说明
(1)时间显示功能
本设计具有倒计时显示的功能,倒计时显示的功能由数码管来实现,数码管有一位数码管、两位数码管、四位数码管。本设计中显示的时间都是两位数,故直接采用两位数码管即可。因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间。数码管有共阳极与共阴极之分,本设计系统采用的数码管使用共阴极数码管,数码管内部发光二极管点亮时需要5毫安以上的电流,而且电流不能过大,否则会烧毁发光二极管。由于单片机的I/0口送不出如此大的电流,所以数码管与单片机连接时需要加驱动电路,可以用上拉电阻的方法或者使用专门的数码管驱动芯片,本设计直接使用470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。(2)交通灯显示功能
本设计利用单片机的P1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机输出端口的信号直接来控制发光二极管。(3)时间设置功能
本设计由于考虑到车流量的大小,本系统设计了时间设置模块,该模块由按键来模拟,当车流量有变化时可以按下K4键来更改时间,K0键是更改南北方向时间,K1更改东西方向时间。
由于用到的按键只有五个,可以用键盘实现按键功能。式键盘是指,每个按键按照一对一的方式直接连接到I/O输入线上,故键盘接口使用多少根I/O线,键盘中就有几个按键。在按键比较少的情况下,使用这种式键盘可以更灵活的编码,而且键盘中各个按键的工作是互不干扰的。对于按键直接状态码,CPU可
8南京工程学院自动化学院本科毕业设计(论文)以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据该值直接进行按键识别。本课题只需使用5个按键,只占用5个I/O口,完全可以用键盘直接编码,不仅编码容易,而且工作也更可靠。(4)紧急情况功能
有紧急车辆要求通过时,系统要能禁止普通车辆通行,东西、南北道均为红灯,紧急车由K2开关模拟。
9南京工程学院自动化学院本科毕业设计(论文)第三章交通灯控制系统硬件设计
3.1单片机ATC51主电路
3.1.1
单片机简介
单片机也被称为微控制器(Micro-controllerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。
单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。与微机相比,它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
如今,单片机已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。3.1.2
单片机ATC51简介
本设计中选用了Atmel公司生产的基础产品ATC52单片机,它采用了可靠的CMOS工艺制造技术,是具有高性能的8位单片机。
ATC51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位处理器和Flash存储单元,功能强大的ATC51单片机可为您提供许多较复杂系统控制应用场合,可灵活应用于各个领域。
ATC51共有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,如图示3.1所示。
10南京工程学院自动化学院本科毕业设计(论文)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESTRXD/P3.0TXD/P3.1INT0/P3.2INTI/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1Vss123456710111213141516171819204039383736353433323130292827262524232221VCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VDDALE/PROGPSENP2.7/AD15P2.6/AD14P2.5/AD13P2.4/AD12P2.3/AD11P2.2/AD10P2.1/AD9P2.0/AD8图3.1ATC51单片机引脚图
引脚功能:
VCC(40脚)、GND(20脚)——单片机电源引脚。
XTAL1(19脚)、XTAL2(18脚)——外接时钟引脚。XTAL1为片内振荡电路的输入端,XTAL2为片内震荡电路的输出端。8051的时钟有两种方式,一种是片内时钟震荡方式,需在这两个脚外接石英晶体和震荡电容,震荡电容一般取10p~30p;另一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。
RST(9脚)——单片机复位引脚。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作,复位后程序计数器PC=0000H,即复位后将
11南京工程学院自动化学院本科毕业设计(论文)从程序存储器的0000H单元读取第一条指令码,通俗地讲,就是单片机从头开始执行程序。
PSEN(29脚)——程序存储器允许输出控制端。在读外部程序存储器时PSEN低电平有效,以实现外部程序存储器单元的读操作。
ALE/PROG(30脚)——当访问外部存储器时,ALE用于控制P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
EA/Vpp(31脚)——EA接高电平时,单片机读取内部程序存储器。当扩展有外部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口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。
P2口(21脚~28脚)——P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口(10脚~17脚)——准双向8位I/O口,每个口可控制,内带上拉电阻。作为第一功能使用时就当作普通I/O口,与P1相似。作为第二功能使用时,各引脚的定义如下图所示。值得强调的是,P3口的每个引脚均可定义为第一功能的输入/输出或第二功能。
12南京工程学院自动化学院本科毕业设计(论文)表3.2
标号P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7
引脚1011121314151617
P3口各引脚第二功能定义第二功能RXDTXDINT0INT1T0T1WRRD
串行输入口串行输出口外部中断0外部中断1
定时器/计数器0外部输入端定时器/计数器1外部输入端外部数据存储器写脉冲外部数据存储器读脉冲
说明
3.2单片机最小系统
用ATC51构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可。由于集成度的,最小应用系统只能用作一些小型的测控单元。其应用特点如下:(1)有可供使用的大量I/O端口线,P0、P1、P2、P3口都可以用作I/O口;(2)内部存储器容量有限;(3)应用系统开发具有特殊性。
如图3.3所示,是ATC51在使用时的原理图,其中最小系统部分包括晶振时钟电路和复位电路,如图中第9脚RST脚即接了复位电路,第18、19脚XTAL2和XTAL1即接了晶振电路。
使用ATC51时,除了20脚Vss接地,40脚Vcc接工作电压5V外,第31脚EA/Vpp需要上接高电平,下用小电容接地。这是因为单片机的EA/VPP脚是内部和外部程序存储器的选择管脚。当EA保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。所以本设计中,EA管脚没有悬空,而是接到了+5V上,只使用内部的程序存储器,若悬空则会导致程序执行不正常。
13南京工程学院自动化学院本科毕业设计(论文)图3.3ATC51原理图(1)晶振电路部分
单片机最小系统以C51为核心,外加时钟电路和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。C51单片机系列是MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺,CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点。时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C2,C3为30pF。晶振电路如图3.4所示。
14南京工程学院自动化学院本科毕业设计(论文)图3.4最小系统晶振电路原理图复位电路如图3.5所示,它使单片机进行初始化操作,其主要功能是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个初始状态开始工作。除了进入系统的正常初始化之外,当程序运行出错或操作错误使系统处于死循环时,也需按复位键以重新启动机器。
RST引脚是复位信号的输入端,复位信号是高电平有效,高电平有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,本课设计题中使用的是频率为12MHz的晶振,则复位信号如图所示。
复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现:只要电源的上升时间不超过1ms,电容视为短路,电源被加到RST(脉宽>24T),单片机便可自动复位,如图3.4所示。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位时通过使复位端经电阻与电源接通而实现的,而按键脉冲复位则是利用微分电路产生的正脉冲来实现的。我选择的是按键电平复位,出现故障时,按复位键就可以恢复初始状态。
15南京工程学院自动化学院本科毕业设计(论文)图3.4最小系统复位电路3.3电源电路
本设计中使用的单片机,数码管,LED灯等都需要5V电源供电,故需要设计电源电路。由于实验室常见电源转换器为9V,故本设计中的5V电源可以通过加以稳压集成电路来实现。若有5V的电源转换器,稳压集成电路可用于稳压。
电子产品中,常见的三端稳压集成电路有正电压输出的78XX系列和负电压输出的79XX系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO-220的标准封装,也有9013样子的TO-92封装。用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,最低输入电压比输出电压高3-4V。还要考虑输出与输入间压差带来的功率损耗,所以一般输入为9-15V之间。本设计选用的为9V。
16南京工程学院自动化学院本科毕业设计(论文)图3.5电源电路原理图3.4LED数码管显示电路
单片机应用系统中,最常用的显示器是LED(发光二极管显示器),它结构简单、成本低、配置灵活,与单片机的接口也特别方便,因而在单片机系统中得到广泛应用。
LED数码管是由若干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,控制不同组合的二极管导通,就能显示出不同的字形。这种数码管又可分为共阴极和共阳极两种,通常使用的是共阴极的数码LED显示,高电平有效。一般的数码管显示块上有8个发光二极管,故也叫八段数码管,它们组成一个“8”字型和一个小数点。
3.4.1静态显示与动态显示
静态显示:当多个数码管应用于某一系统时,他们的“位选”是可控的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那么它们显示的数字必定一样。
动态显示:数码管的动态显示又叫做数码管的动态扫描显示。即轮流向各位数码管送出字型码和相应的位选,利用发光二极管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示出来的,只是轮流的速度非常快,人眼已经无法分辨出来。
17南京工程学院自动化学院本科毕业设计(论文)3.4.2显示电路设计
本设计采用动态显示的方式,利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间。数码管使用共阴数码管,需要接上470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。在段选线上接上电阻防止数码管被烧坏,限流的作用。数码管显示电路如图3.5所示。
图3.5数码管显示电路3.5交通灯显示电路
本设计利用单片机的P1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管。交通灯显示电路如图3.6所示。(灯的定义,高低电平如何控制灯亮)
18南京工程学院自动化学院本科毕业设计(论文)图3.6交通灯显示电路3.6键盘输入电路
单片机检测按键的原理是:单片机的I/O口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连如图3.7所示。开始时先给该I/O口赋一高电平,然后让单片机不断检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。
19南京工程学院自动化学院本科毕业设计(论文)图3.7按键与单片机连接图按键按下时电压变化的理想波形和实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动现象,抖动时间的长短和按键的机械特性有关,一般为5ms~10ms。通常我们手动按下键然后立即释放,这个动作中稳定闭合的时间超过20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专用的去抖动芯片,但通常我们用软件延时的方法就能很容易解决抖动问题,而没必要再添加多余的硬件电路。
键盘与单片机连接时,每一个按键都需要单片机的一个I/O口,若单片机系统需要较多按键,如果用按键便会占用过多的I/O资源。单片机系统中I/O口资源往往比较宝贵,当用到多个按键时,为了节省I/O口线,就会使用矩阵键盘。
矩阵键盘如图3.6所示,它与键盘都是检测其是否被按下的依据是一样的,也就是检测与该键对应的I/O口是否为低电平。键盘有一段固定为低电平,单片机写程序检测时比较方便。而矩阵键盘两端与单片机I/O口相连,因此在检测时需人为通过单片机I/O口送出低电平。检测时,先送一列为低电平,其余几列全为高电平(此时确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(此时确定了行数),则我们便可确认当前按下的键是哪一行、哪一列。用同样的方流各送一次低电平,再轮流检测一次各行是否变为低电平,这样即可检测完所有的按键,当有按键被按下时便可判断出按下的键是哪一个键。
20南京工程学院自动化学院本科毕业设计(论文)图3.6矩阵键盘由于矩阵键盘功能复杂,其软件编写上有一定的困难,而且交通灯控制系统的功能较为简单,所需要的按键数目不多,按键键盘结构简单,性能也更加稳定,选用按键键盘可以节约硬件资源,综合上述原因,在本设计中选用的是按键键盘。
本设计中只使用了5个按键,故采用式按键的原理图如图3.7所示,其中K0用于南北时间调整,K1用于东西时间调整,K2用于模拟禁止通行,亮红灯,K3返回键,K4用于设定时间,需要设定时,先按下此按钮。单独按下K0键就是南北方向通行,单独按下K1是东西方向通行。
图3.7键盘输入电路原理图21南京工程学院自动化学院本科毕业设计(论文)第四章系统软件设计
4.1系统软件的设计要求
由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。采用中断方式实现按键的功能。
4.2系统应用程序的设计
C语言基本组成部分紧凑、简洁,使用一些简单的规则方法,就可以构造出相当复杂的结构,表达式简练、灵活、实用,既提高了变异效率和目标代码的质量,又提高了程序的可读性。C语言中提供了某些渐进于汇编程序的功能,如地址处理、二进制位运算以及制定用寄存器存放变量等。它是结构化程序设计语言,具有良好的程序所需要的各种控制流结构,如for、while、dowhile循环语句等。在C语言中具有各种现代程序设计语言普遍配置的数据结构和基本数据类型,运算符丰富,处理字符方便,输入/输出时依靠函数调用实现,在标准程序库中,具有使用方便,功能强的I/O函数。所以,在程序设计时,采用C语言进行程序设计。4.2.1主程序设计
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。
25
东西道南北道
表4.1交通状态
5S15S
5S
……
红灯亮红灯亮绿灯亮黄灯亮……绿灯亮黄灯亮红灯亮红灯亮……
全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,
LED显示程序,消抖动延时程序,紧停判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图4.2所示。
22南京工程学院自动化学院本科毕业设计(论文)开始初始化设初值红灯倒计时N倒计时完毕Y红绿灯交替绿灯倒计时N倒计时完毕Y黄灯亮车流量改变N灯交替图3.7Y键盘输入键盘输入电路原理图4.2.2按键设置程序的设计
按键程序的流程图如图4.3所示:
23南京工程学院自动化学院本科毕业设计(论文)图4.3按键程序流程图在按键程序中,运用while语句不断循环,来检测按键是否按下,按下后,防止因抖动引起的误操作,延时10ms再次确认按键是否按下后,确定后执行相应代码,然后等待按键的释放。
voiddelay(uintms){
uchart;while(ms--)for(t=0;t<120;t++);}
voidkeyscan(){
if(S1==0){
delay(10);if(S1==0){
a++;while(!S1);
//执行代码//等待按键释放
24//延时子程序
//ms即延时毫秒
//检测按键按下//延时//确认按键按下
南京工程学院自动化学院本科毕业设计(论文)}}}
4.2.3时间显示程序的设计
八段数码管上的引脚有a,b,c,d,e,f,g,dp八位,前七位是对应字形“8”的七个数码管,最后一位对应小数点。数码管显示数字时通常要用到编码,共阴极数码管编码如表4.4所示。
表4.4共阴极八段数码管编码符号01234
编码0x3f0x060x5b0x4f0x66
符号567
编码0x6d0x7d0x070x7f0x6f
在C语言编程时,编码定义方法如下:unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};调用数组方法如下:P0=table[3];
即将table这个数组中的第4个元素直接赋给P0口,即P0=0x4f;
25南京工程学院自动化学院本科毕业设计(论文)第五章调试
5.1Protues简介
在该设计中,利用proteus软件进行仿真。Proteus是英国Labcenter公司开发的电路分析与仿真软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型HC11、PIC10/12/16/18/24/30、仿真软件三合一的设计平台,其处理器模型支持8051、AVR、ARM、8086和MSP430等,2010年增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。它运行于Windows操作系统上,可以仿真、分析(SPICE)数字电路、模拟电路、数模混合电路,是目前唯一能实现对51、PIC、AVR、HC11、ARM等处理器的仿真软件[15]。
PROTEUS中的整个电路仿真是在ISIS原理图设计模块下延续下来的,具有智能原理图设计(ISIS)、完善的电路仿真功能(ProSPICE)、独特的单片机协同仿真功能(VSM)、实用的PCB设计平台这四个功能模块。
ISIS原理图设计模块的特点如下:(1)丰富的器件库(2)智能的器件搜索(3)智能化的连线功能(4)支持总线结构
超过27000种元器件,可方便地创建新元件;通过模糊搜索可以快速定位所需要的器件;
自动连线功能使连接导线简单快捷,大大缩短绘图时间;使用总线器件和总线布线使电路设计简明清晰;
完善的电路仿真功能(ProSPICE)模块:
(1)ProSPICE混合仿真基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;
(2)超过27000个仿真器件器件;
(3)多样的激励源
包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文
26可以通过内部原型或使用厂家的SPICE文件自行设
计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真
件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;
南京工程学院自动化学院本科毕业设计(论文)(4)丰富的虚拟仪器13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、
信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;
(5)生动的仿真显示生动;
(6)高级图形仿真功能(ASF)基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。
独特的单片机协同仿真功能(VSM)模块:(1)支持主流的CPU类型
如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、
PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;
(2)支持通用外设模型
如字符LCD模块、图形LCD模块、LED点阵、LED七
段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;
(3)实时仿真(4)编译及调试
支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、
MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;
PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试;
实用的PCB设计平台模块:(1)原理图到PCB的快速通道(2)先进的自动布局/布线功能(3)完整的PCB设计功能(4)多种输出格式的支持
原理图设计完成后,一键便可进入ARES的PCB支持器件的自动/人工布局;支持无网格自动布线
设计环境,实现从概念到产品的完整设计;
或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;
最多可设计16个铜箔层,2个丝印层,4个机械层(含可以输出多种格式文件,包括Gerber文件的导入或导
板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览;出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。
总体来说该软件的特点是:
(1)集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整开发
27用色点显示引脚的数字电平,导线以不同颜色表示其对地
电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、
南京工程学院自动化学院本科毕业设计(论文)工具。
(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真,是独一无二的支持处理器与外围电路的协同仿真电路设计软件。
(3)具有全速、单步、设置断点等多种形式的调试功能。
(4)具有各种信号源和电路分析所需的虚拟仪表、是电类教学实验与创新的最侍平台。
(5)支持KeilC51uVision2、MTLAB等第三方的软件编译和调试环境。(6)具有强大的原理图到PCB板设计功能,可输出多种格式的电路设计报表。图为proteus的工作窗口。
图5.1ISIS的工作窗口5.2Proteus环境下的仿真调试
课程设计、毕业设计是学生走向就业的重要实践环节。由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养实践精神、创造精神的平台。
5.2.1用Proteus软件绘制硬件原理图
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前
28南京工程学院自动化学院本科毕业设计(论文)最好的仿真单片机及外围器件的工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。
Proteus软件特点1.原理布图
2.PCB自动或人工布线3.SPICE电路仿真4.互动的电路仿真
5.仿真处理器及其外围电路
安装好Proteus并打开后,出现一张图纸。在左边选择要放置的元器件,如图5.1所示,左边栏是选择元器件的种类,里面包含了一些常用的元器件,包括电源、总线等。找自己要用的元器件时,最左边选
,然后点击上面的字母“P”,会出现元器
件库,如图5.2所示,在左上角输入元器件的名称查找,点击对应的元器件可以在右边查看到元器件的引脚图以及尺寸等信息。
图5.2元器件库Proteus中的元器件种类非常齐全,常用的元器件有:CAP电容
29南京工程学院自动化学院本科毕业设计(论文)DIODE二极管
DPY_7-SEG_DP七段数码管(带小数点)ELECTRO电解电容INDUCTOR电感LED发光二极管NPNPNP三极管RESPACK电阻SW开关
一些器件直接输入名字就可查到,如ATC51,输入“ATC51”查找即可。查找到元器件后,双击元器件会出现在左边栏里,单击元器件即可放置在图纸中,右键点击元器件,可以进行旋转,设置元器件参数等操作,放置好后,点击元器件的引脚,即可接线。
5.2.2用Keil软件编写程序
Keil
C51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系
统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
进入Keil界面后,首先建立一个新工程,单击Project菜单中的NewProject选项。建立好以后,选择工程要保存的路径,输入工程文件名,这是会弹出一个对话框,要求选择单片机的型号,根据本设计选择Atmel的C51型号。到此为止,还没建立好一个完整的工程,虽然工程名有了,但工程中没有任何文件及代码,单击File菜单中的New选,信件后如图5.3所示,此时光标在编辑窗口闪烁,可以输
30南京工程学院自动化学院本科毕业设计(论文)图5.3KeilC工作窗口入程序了,但是这个新建文件与刚刚将建立的工程没有直接联系。单击,进入保
存界面,在文件名编辑框中,输入要保存的文件名,同时必须输入扩展名.c(C语言编程,用汇编编程则输入.asm),然后单击保存按钮,这样我们就可以用C语言编程了。
右键点击左边栏的Target1,选择里面的OptionsforTarget‘Target1’选项,会出现如图5.4中的对话框,在Output选项卡中,把CreateHEXFile选项打勾,写好的C语言程序就可以在编译时在文件夹中生成.hex文件,放入Proteus中进行仿真了。
31南京工程学院自动化学院本科毕业设计(论文)图5.4勾选HEX文件对话框5.2.3在Proteus中进行仿真
系统的调试以程序调试为主。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序和各个子程序的编程和功能调试。
在Protues中放入原理图如图5.5,连线完成后,双击单片机芯片,出现如图5.6所示的编辑元件对话框,为了把KeilC中编写的程序放入单片机中,需点击“ProgramFile”栏中的
,并找到编好的HEX文件,只有该格式文件才可进行仿真。
32南京工程学院自动化学院本科毕业设计(论文)图5.5Protues原理图
图5.6编辑元件对话框33南京工程学院自动化学院本科毕业设计(论文)显示子程序是所有工作的开始,需要能将所要显示的内容全部显示,并且显示在恰当的位置。如果不能显示准确,就有可能导致后面程序很难写出。在调试过程中由于对显示的地址把握不准导致显示覆盖并且错误的现象。
在Proteus中绘制好原理图后,用Keil写好程序,编译检查错误后,再在Proteus中调入已编好的目标代码文件,就可以在Proteus原理图中看到模拟的实物运行状态和过程,如图5.7所示。
图5.7仿真的最后结果比较满意,仿真开始后,三个八段数码管显示000,进入小时设定模式,按S1或S2键对小时的时间进行设置,设置好小时的时间后按下S3,分别进入十分钟设置于分钟设置,设置的方法与小时相同。设置好时间后开始计时,数码管上同步显示倒计时时间,设置的时间达到后能够控制执行电路中的继电器吸合。5.1.4仿真中遇到的问题
一开始,P0口输出的编码并不能在八段数码管上显示,经检查后,程序写的是完好的,后来拿出了电路图检查,发现P0口没有接上拉电阻。由于ATC51单片机P0口内部没有上拉电阻,为高阻状态,所以不能正常地输出高/低电平,因此该组
34南京工程学院自动化学院本科毕业设计(论文)I/O口在使用时必须要外接上拉电阻,一般选择10kΩ的上拉电阻。在加入上拉电阻后,数码管可以正常显示数字了。
调试键盘输入时,按下按键,程序会出现一些问题,后来发现时按键的指令执行后,没有添加检测释放的程序。有一些按键需要按下按键后就执行指令,有些需要按键释放后执行指令,在编写程序时要特别注意。
计时程序执行后,无法知道程序是否在正常工作,在程序中使分钟的个位的DP位(数字右下角的“.”)每秒闪烁,一开始想把这一功能添加到中断子程序中,写了几次程序后仿真时总会出现一些问题,后来把这些部分写到计时主程序中,在time--;的同时DP=~DP;再进行仿真调试,效果十分满意。
程序在计时的过程中,在数码管上显示的倒计时从11分直接变成00,而工作指示灯还在工作,说明单片机仍然在计时,程序并没有结束。我就怀疑是在显示程序中出了一些问题,经过反复检查后发现写的程序是if(mm/600==0)所以分钟的十位早减了1分钟。我把程序改为if((mm+60)/600==0)时显示了。
在计时器计时结束或者想重新计时的时候,计时器重新运行时总会出现一些问题,比如设置混乱,计时时间不准确等。这样的情况应该是程序在前面的计时过程中有一些数据没清零影响到下一次计时。把所有的参数在程序开始时进行清零,程序就可以正确运行了。
执行电路在仿真过程中,起初继电器总是无法正常工作,有一个引脚没有电平显示,在查阅了很多资料后,找出了问题所在:线圈在通过电流时,会在其两端产生感应电动势。当电流消失时,其感应电动势会对电路中的元件产生反向电压。当反向电压高于元件的反向击穿电压时,会使元件损坏,所以在Proteus中无法进行仿真。在继电器线圈的两端反向并联一个续流二极管,当流过线圈中的电流消失时,线圈产生的感应电动势就会通过二级管和线圈构成的回路做功而消耗掉。在加入续流二极管后,仿真时继电器可以正常工作了。
mm--,mm为m--,完美
分钟的十位。事实上在倒计时的过程中,应该是9分钟的时候,分钟从10变成09,地解决了这一问题,小时位也有同样的问题,用同样的方法修改后可以正确地倒计
35南京工程学院自动化学院本科毕业设计(论文)第六章总结
6.1论文总结
本系统就是充分利用了ATS52芯片的I/O引角。系统统采用MSC-51系列单片机为中心器件来设计交通灯控制器,实现了能根据实际车流量通过单片机芯片的P1口控制红、黄、绿灯的燃亮与熄灭;P0口外接数码管来显示各个信号灯的时间。系统设计简便、实用性强、操作简单、程序设计简便。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。
但在设计过程中,也有一些不尽如人意的地方,输入模块中依靠键盘,通过增加/减小来设置时间,设置过程比较繁琐,若采用4×4矩阵键盘,则可以在时间设置时直接输入数字,使用方便。但是矩阵键盘的用法有些复杂,在程序编写上有一定的难度,故没有采用。由于本设计涉及到的知识面比较广,再加上本人在相关领域知识的缺乏,所以本设计的性能指标还是有待改善的,然而,模拟明了本设计的设计思想和设计方法是现实可行的。
6.2感想
经过几个星期的努力,在导师的指导下,查阅了大量的资料,终于完成了交通灯控制系统的设计工作。通过对ATC51单片机的运用,使我对单片机、C语言编程都有了更深一层的了解,包括单片机硬件电路的连接、引脚的实用,以及C语言编程中循环的运用等。在整个设计过程中,最重要的是要有正确的设计思路,及定时器整体的构思,如果在进行设计之前,就清楚主要的任务是什么,设计起来可以减少许多不必要的麻烦,从而达到事半功倍的效果。同时,做设计很讲究心态,遇到问题不急躁、不气馁,一点点寻找问题、解决问题,设计才会顺利进行。
要完成毕业设计,单单有专业知识是远远不够的,这是一次全面的综合检验,检验我在大学期间所学的知识,直接点说,毕业设计就是知识的综合运用。在毕业设计中遇到很多前所未有的困难,这时往往要查阅很多资料书籍才能找到满意的答案,这个过程也许曾让自己很焦急,但是,认认真真地寻找答案并把问题解决,这个过程却充满了幸福感。所以从某种角度来说,完成毕业设计的这个过程,既检验
36南京工程学院自动化学院本科毕业设计(论文)了学生的专业技能,又培养了我发现问题,解决问题的能力,这在我以后的工作中有着很大的帮助。
同时,在这个计算机如此普及的年代,对于一个即将走向工作岗位的大学生来说,对办公软件的基本操作能力是不可或缺的,毕业论文的撰写过程就是个很好的锻炼机会,让我熟练的掌握了办公软件和一些图片编辑器的使用。
我相信这次毕业设计对于即将工作的我来说是具有重要意义的,对我以后的工作和学习也会起到十分积极的作用。
37南京工程学院自动化学院本科毕业设计(论文)38
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务