毕业设计(论文)-基于单片机AT89S51的交通灯设计

上传人:na****u 文档编号:56962643 上传时间:2022-02-22 格式:DOC 页数:56 大小:2.13MB
收藏 版权申诉 举报 下载
毕业设计(论文)-基于单片机AT89S51的交通灯设计_第1页
第1页 / 共56页
毕业设计(论文)-基于单片机AT89S51的交通灯设计_第2页
第2页 / 共56页
毕业设计(论文)-基于单片机AT89S51的交通灯设计_第3页
第3页 / 共56页
资源描述:

《毕业设计(论文)-基于单片机AT89S51的交通灯设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机AT89S51的交通灯设计(56页珍藏版)》请在装配图网上搜索。

1、摘 要摘 要本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯功能。系统除基本的交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时阶调整信号灯的点亮时间以及根据具体情况手动控制等功能。随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已经成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控系统中最重要的组成部分。交通信号灯控制方式有很多。本系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片来设计交通

2、灯控制。设计了一种基于AT89S51单片机芯片的交通信号灯控制系统。该系统除具有交通灯控制功能外,增加了现场实时控制及交通信号灯故障检测功能,提高了交通灯的智能化、可靠性和实用性,可有效提高交叉口的通行能力,减缓交通要道的行车压力。关键字:单片机 交通灯 AT89S5129AbstractABSTRACTThis system is composed of single-chip microcomputer system, keyboard, LED display, traffic light demonstration system. The system includes sidewal

3、ks, left turn, right turn, as well as basic traffic lights function. System in addition to the basic function of the traffic lights, but also has a countdown, time setting, emergency treatment, time to adjust the timing of the signal lamp light time and according to the specific circumstances of the

4、 manual control and other functions. With the development of social economy, the urban traffic problem has drawn more and more attention. Man, car, road, the coordination of the three relations, has become one of the important issues to be addressed in the traffic management department. Urban traffi

5、c control system is a computer integrated management system for urban traffic data monitoring, traffic signal control and traffic guidance, and it is the most important part of modern urban traffic control system.There are many ways to control the traffic lights. This system produced by America ATME

6、L company AT89S51 microcontroller, and other chip to design the control of traffic lights. The design of a control system of traffic lights based on AT89S51 single chip. The system except with traffic light control function, an increase of on-site real-time control and traffic signal lamp fault dete

7、ction function, improve the traffic lights of the intelligence, reliability and practicability, and can effectively improve the traffic capacity of intersections and ease traffic pressure on roads.Key Words: offices Traffic light of single chip microcomputer目录目 录第1章引言51.1 交通灯的研究背景及意义51.2 交通灯国内外发展状况5

8、1.3 交通灯控制系统设计意义6第2章总体方案设计72.1 设计任务72.2 设计方案72.3 设计目的10第3章系统硬件电路的设计113.1 单片机简介113.1.1 AT89S51芯片113.1.2 AT89S51的引脚功能123.1.3 单片机的发展趋势133.2 系统构成143.3 外围硬件电路设计153.3.1 数码管显示模块153.3.2 复位电路模块173.3.3 外部晶振时钟电路设计173.3.4 显示模块电路设计183.4 交通灯控制线路图203.5 实物图21第4章交通信号灯控制系统程序编制224.1 软件设计应用环境224.2 延时的设定244.2.1 定时器244.2.

9、2 实现1秒的方法254.2.3 相应程序代码254.3 程序的主控制循环调用274.4 对现有程序的扩充28第5章实验平台305.1 实验平台305.2 实验步骤325.2.1 编写程序代码325.2.2 按照系统硬件连线图连接好系统并调试32第6章软件仿真346.1 Protues软件简介及应用346.2 系统仿真电路图346.3 仿真结果分析35第7章结束语36参考文献38致谢39附录40第1章 引言第1章 引言1.1 交通灯的研究背景及意义近年来,随着汽车数量的猛增,我国大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成

10、极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题。在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的交通灯控制系统已经成为当前的主要任务。和谐的城市交通具有很重要的现实意义。城市交通是城市经济生活的命脉,是衡量一个城市文明进步的标志,对于城市经济的发展和人民生活水平的提高起着十分重要的作用。作为城市交通网的重要组成部分,交叉口是道路通行能力的瓶颈和交通阻塞及事故的多发地。城市的交通拥堵,大部分是由于交叉口的通行能力不足或没有充分利用造成的,这导致车流中断、事故增多、延误严重。对交

11、叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。所以,改变和完善我国现有的交通系统已成为当务之急。1.2 交通灯国内外发展状况随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的难题,城市交通事故、交通阻塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增

12、加供给,也就是修路。但是这两个办法都有其局限性。交通是社会发展和人民生活水平提高的基本条件,经济的发展必然带来出行的增加,而且在我国汽车工业正处在起步阶段的时期,因此限制车辆的增加不是解决问题的好方法。而采取增加供给,即大量修筑道路基础设施的方法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的财力和环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他方法来满足日益增长的交通需求。交通系统正是解决这一矛盾的途径之一。智能交通系统是将先进的信息技术、数据通讯传输技术、电子传感技术、电子控制技术及计算机处理技术等有效的集成运用于整个地面交通管理系统而建立的一种在大

13、范围内、全方位发挥作用的实时、准确、高效的综合交通运输管理系统。1.3 交通灯控制系统设计意义伴随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国的道路交通系统带来沉重的压力,很多大城市都不同程度地受到交通堵塞问题的困扰。为解决交通堵塞问题,采用AT89S51单片机为核心控制器、七段数码管及LED组成显示电路,设计出以人性化、智能化为目的的交通灯控制系统,如遇特殊情况可人为控制交通从而解决交通堵塞的实际问题,整个电路简单,易于实现1。第2章 总体方案设计第2章 总体方案设计2.1 设计任务本设计将十字路口的交通选作设计任务,以单片机为核心,以LED数码管作为倒计时指示。假设东西、南北两

14、条主干道车流量基本相同,两条干道分别有一组红、绿、黄三个发光二极管的指示灯,提示行人和车辆让其安全通行。红灯亮时禁止通行,绿灯亮时允许通行,黄灯亮时提示交通通行转换方向2。2.2 设计方案把设计任务细化为四个状态,其对应状态:如图2-1。图2-1 状态转换图整个交通灯控制由四个状态组成,可以用程序设计实现,也可用时序逻辑实现。下面将会讨论两种方案的设计思想。1、东西车道红灯灭,同时绿灯亮,南北车道黄灯灭,同时红灯亮,倒计时。此状态下,东西向允许通行,南北向禁止通行。2、东西车道绿灯灭,同时黄灯亮,南北车道红灯亮,倒计时。此状态下,除了已经正在通行中的车辆,其他所有的车辆都需等待状态的转换。3、

15、南北车道红灯灭,同时绿灯亮,东西车道黄灯灭,同时红灯亮,倒计时。此状态下,东西向禁止通行,南北向允许通行。4、南北车道绿灯灭,同时黄灯亮,东西车道红灯亮,倒计时。此状态下,除了已经正在通行中的车辆,其他所有的车辆都需等待状态的转换。方案1设计思想:采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数。如前分析,已经确定

16、该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表,表2-1所示。表2-1 置数表状态东西道预置数南北道预置数0025s20s015s5s(黄灯闪烁)1025s20s115s(黄灯闪烁)5s由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的四个状态去译码,从而得到不同的输出,即预置数,由上分析可用一个计数器和跳转指令去完成的预置数。而红绿灯的显示也是一样,根据上面的描述,再度绘制红绿灯变换表,查看是否和上图所一致的;如不一致及时修改。由状态分析可以得出红绿灯的变化表,如表2-2所示。表2-2

17、绿灯显示表状态东西道灯显示南北道灯显示00红灯绿灯01红灯黄灯闪烁10绿灯红灯11黄灯闪烁红灯通过这张表就可以用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组

18、电路去判断符合的状态。方案2设计思想:状态转换表,如表2-3所示。表2-3 状态转换表状态东西道灯显示南北道灯显示00(25S)红灯绿灯01(05S)红灯黄灯10(25S)绿灯红灯11(05S)黄灯红灯本方案分三步:(1)要建立三路信号灯的控制系统,可以采用7408芯片通过组合逻辑控制三路灯的显示关系。(2)建立显示控制系统,这里就要采用74190芯片倒计时控制,每个方向用两片相连实现,另外用74153芯片,因为分析中设置的时间末位均为5,所以只要用一片74153对高位置位,将低位的初值预置锁定为5,而高位则根据需要由反馈部分提供预置值。(3)建立反馈和细节连接部分,本部分主要解决显示和灯控的

19、同步问题本系统采用倒计时系统减为0,如当系统减为0时通过两个D触发器得到两个变量,即为开头分析中的状态,通过它的变化得到不同的逻辑关系,驱动74153控制哪组灯亮(对应关系如表所示),另外他还要同步反馈到显示系统的置数环节。注意:本实验中若采用更复杂的四片74190控制主干道的两组灯,再用八片74153分别对74190置数可实现任意数值的交通灯系统。另外对7408片子的控制红灯的端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯时,另一边的红灯在闪烁,这样就可以实现交通变换。方案比较:方案1(以下称1)用了模块设计,而方案2(以下称2)采用的是一般设计,相比之下1有较强的可读性和较强的可

20、修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。虽然2在设计上显得较为简单,但是对工程设计人员来说,将来的产品无论从修改还是升级考虑都有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。2.3 设计目的(1)熟悉单片机控制系统,并了解系统设计的一般规律。(2)掌握AT89S51芯片的结构及编程方法。(

21、3)熟悉模拟交通灯控制的实现方法。第3章 硬件电路设计第3章 硬件电路设计3.1 单片机简介单片机是在一片半导体硅片上集成了中央处理单元(CPU)、存储器(RAM、ROM)、并行I/O口、定时器/计数器、中断系统、系统时钟电路及系统总线的微型计算机。由于单片机具有体积小、功能全、价格低、开发应用方便等优点,又可将其嵌入产品的内部,因此得到了及其广泛的应用。单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。通常,单片机由单个集成电路芯片构成,内部

22、包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器(embedded microcontroller)。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。3.1.1 AT89S51芯片AT89S51内部3有4KB闪速存储器,本身就是一个数字量输入/输出的最小应用系统。在构建AT89S51单片机最

23、小应用系统时,AT89S51单片机需要外接时钟电路和复位电路。即可选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下:1、为一般控制应用的8位单片机2、晶片内部具有时钟振荡器(传统最高工作频率可至33MHz)3、内部程式存储器(ROM)为4KB4、内部数据存储器(RAM)为128B5、外部程序存储器可扩充至64KB6、外部数据存储器可扩充至64KB7、32条双向输入输出线,且每条均可以单独做I/O的控制8、5个中断向量源9、2组独立的16位定时器10、1个全双工串行通信端口11、8751及8752单芯片具有

24、数据保密的功能12、单芯片提供位逻辑运算指令13、看门狗电路14、与MCS-51兼容415、可编程穿行通道3.1.2 AT89S51的引脚功能AT89S51各引脚功能5介绍,如图3-1所示。图3-1 AT89S51芯片引脚图3.1.3 单片机的发展趋势随着科学技术的不断发展,单片机的发展趋势将是向大容量、高性能化,外围电路内装化等方面发展。主要体现在以下几方面:1CPU的改进(1)增加CPU数据总线宽度。(2)采用双CPU结构,以提高数据处理能力。2存储器的发展(1)片内程序存储器普遍采用闪烁(Flash)存储器。可不用外扩展程序存储器,简化系统构。(2)加大存储容量。目前有的单片机片内程序存

25、储器容量可达128KB甚至更多。3片内I/O的改进增加并行口驱动能力,以减少外部驱动芯片。4低功耗化(1)CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式。消耗电流仅在A或nA量级,适于电池供电的便携式、手持式的仪器仪表以及其它消费类电子产品。5外围电路内装化(1)众多外围电路全部装入片内,即系统的单片化是目前发展趋势之一。3.2 系统构成交通灯控制的框图主要包括有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。单片机作为整个硬件系统的核心6,它既是协调整机工作的控制器,又是数据处理器。系统采用两位共阳极数码管倒计时计数功能,最大显示数字99。友好的人机界

26、面、灵活的控制方式、优化的物理结构是本设计的亮点。核心结构包括万用电路板一块,AT89S51单片机一片,电源自锁开关,七段数码管8个,电阻若干,独立按键5个,发光二极管12个(其中红、黄、绿各4个)、9012三极管4个,晶振1个等。系统结构框图,如图3-2所示。图3-2 系统结构框图系统各部分工作:(1)本设计的交通灯控制系统以AT89S51单片机为核心,由时钟电路模块、键盘设置模块等产生输入信号,交通信号灯状态模块、8级LED时间倒计时显示模块接受输出信号。(2)键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到L

27、ED数码管上实时显示。在此过程中还要实时捕捉紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键随时调用中断。(3)AT89S51通过程序设置各个信号灯的点亮时间,通过程序设置红、绿、黄灯时间依次为25秒、20秒、5秒循环,由AT89S51的P3口输出。(4)通过AT89S51单片机的P3口来控制系统是工作。(5)四个路口信号灯的转换以及转换时间是利用单片机的P1口来驱动和控制的,通过信号灯的转换和转换时间来控制车辆的通行以及通行时间。LED显示模块由4个LED组组成,每组有3个LED。LED分别接入AT89S51单片机的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5。其中,

28、LED1、LED2、LED3分别表示南北方向的绿灯、红灯和黄灯,LED4、LED5、LED6分别表示东西方向的绿灯、红灯和黄灯。当LED1和LED4点亮时,南北方向可以通行,东西方向禁止通行;当LED2和LED5点亮时,东西方向可以通行,南北方向禁止通行。(6)AT89S51本身集成了看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输出,引起RESET复位信号复位系统。3.3 外围硬件电路设计3.3.1 数码管显示模块该模块由共阳LED数码管7组成,利用数码管的动态扫描原理,由三极管进行锁存,当控制数码管的IO口P20和P21为低电平时(及三极管基极为低电平),则三极管导通,VCC

29、通三极管给数码管供电,则数码管被点亮,利用数码管点亮的余辉和人眼的视觉暂留原理,则看起来数码管是同时被点亮的。当发光二极管导通时,相应得到一个点或者一个笔画发光。控制相应的二极管导通,就能显示各种字符,尽管显示的字符形状有些失真,但其控制简单,使其也方便。图3-3 数码管电路从设计完成的任务与要求来看,显示通行时间必须用二位数码管,从节省硬件资源的角度考虑,可采用扫描的方式来处理,对于7段数码管,占用7个单片机的I/O口,另外设置2个电子开关对2位显示进行配合,占用2个I/O端口,十字路口共需4组红绿灯,加上转换黄灯,一共是12只灯,须用12个端口进行控制,加上两个方向的紧急通行按钮,占2个I

30、/O端口和一个蜂鸣器端口,因此实际占用的单片机I/O口为24个,为此,我们可以选用51系列单片机中的AT89S51来作为中央处理器。这款单片机的I/O口作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳型数码管,共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起通常,公共阳极接高电平(一般接电源),其他管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示各种数字或者字符。这样由单片机的I/O口就可以直接驱动,能简化硬件电路的设计。3.3.2 复位电路模块MCS-518单片机的复位是由外部的复位电路实现的,复位引脚RS

31、T通过一个施密特触发器与复位电路相连,施密特触发器用了抑制噪声,在每个机器周期的S5P2,施密特触发器的输出电平复位电路采样一次,得到内部操作所需信号。复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则MCS-51循环复位,只有单RET由高电平变成低电平以后,MCS-51才从0000H地址开始执行程序,所以说为了使我们这个设计简单,本系统采用按键复位方式的复位电路。图3-4 复位电路3.3.3 外部晶振时钟电路设计MCS-51的时钟9可以

32、由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式,本论文根据实际需要和简便,采用内部振荡方式,MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器。MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的振荡时钟电路,外接晶振以及电容C1和C2构成了并联谐振电路接在放大器的反馈回路中,对接电容的值虽然没有严格的要求,但电容的大小会影响振荡频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性。晶振的频率可在1.2MHZ1

33、2MHZ之间任选,电容C1和C2的典型值在20pf100pf之间选择,由于本系统用到定时器,为了方便计算,采用了12MHZ的晶振,采用电容选择30pf。图3-5 晶振时钟3.3.4 显示模块电路设计该模块由共阳LED数码管10组成,利用数码管的动态扫描原理,由三极管进行锁存,当控制数码管的IO口P20和P21为低电平时(及三极管基极为低电平),则三极管导通,VCC通三极管给数码管供电,则数码管被点亮,利用数码管点亮的余辉和人眼的视觉暂留原理,则看起来数码管是同时被点亮的。当发光二极管导通时,相应得到一个点或者一个笔画发光。控制相应的二极管导通,就能显示各种字符,尽管显示的字符形状有些失真,但其

34、控制简单,使其也方便。图3-6 数码管电路从设计完成的任务与要求来看,显示通行时间必须用二位数码管,从节省硬件资源的角度考虑,可采用扫描的方式来处理,对于7段数码管,占用7个单片机的I/O口,另外设置2个电子开关对2位显示进行配合,占用2个I/O端口,十字路口共需4组红绿灯,加上转换黄灯,一共是12只灯,须用12个端口进行控制,加上两个方向的紧急通行按钮,占2个I/O端口和一个蜂鸣器端口,因此实际占用的单片机I/O口为24个,为此,我们可以选用51系列单片机中的AT89S51来作为中央处理器。这款单片机的I/O口作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳型数码管,共阳极数码管的8

35、个发光二极管的阳极(二极管正端)连接在一起通常,公共阳极接高电平(一般接电源),其他管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示各种数字或者字符。这样由单片机的I/O口就可以直接驱动,能简化硬件电路的设计。3.4 交通灯控制线路图图3-7 交通灯电路 3.5 实物图图3-8 实物图第4章 软件设计第4章 软件设计4.1 软件设计应用环境本设计软件的设计是在Keil C51的环境下编译的。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,软件提供丰富的库函数和功能强大的集成开发调

36、试工具,全Windows7界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。C语言11有以下特点:1、语言简洁、紧凑、使用方便、灵活。C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。2、运算符丰富。C的运算符包含的范围很广泛,共有34种运算符,使得C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。3、数据结构丰富,具有现代化语言的各种数据结构,能用来实现各种复

37、杂的数据结构的运算。4、具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化。5、语法限制不太严格,程序设计自由度大。6、C语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。7、生成目标代码质量高,程序执行效率高。8、用C语言写的程序可移植性好。基本上不用修改就能用于各种型号的计算机和各种操作系统。程序详细流程图,如图4-1所示。图4-1 程序详细流程图交通灯运行状态,如图4-2所示。图4-2 交通灯状态4.2 延

38、时的设定延时方法可以有两种一种是利用AT89S51内部定时器的溢出中断来确定1秒的时间,另一种是采用软件延时的方法。4.2.1 定时器定时器/计数器12T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。两个定时器/寄存器都具有定时器和计数器两种模式,4种工作方式(方式0、方式1、方式2、方式3)。定时器/计数器属于增1计数器。特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。T0、T1无论是工作在定时器模式还是计数器模式,实质都是对脉冲信号

39、进行计数,只不过是技术信号的来源不同。计数器模式是对加在T0(P3.5)和T1(P3.5)两个引脚上的外部脉冲进行计数,而定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。计数器的起始计数都是从计数器的初值开始的。单片机复位时计数器的初值为0,也可用指令给计数器装入一个新的初值。使用定时器/计数器前需要对其进行初始化13,使其按设定的功能工作。初始化的一般步骤如下:(1)确定工作方式(即对TMOD赋值)。(2)预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1)。(3)根据需要开放定时器/计数器的中断。(4)启动定时器/计数器。4.2.2 实现1秒的

40、方法我们采用在主程序中设定一个初值14为20的软件计数器和使T1定时50毫秒。这样每当T1到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为0表示1秒已到可以返回到输出时间显示程序。4.2.3 相应程序代码(1)定时器的设置定时器需定时50毫秒15,故T1工作于方式1。初级计算:TC=MT/T计数21650ms/1us=15536=3CBOHTH0=(65536-5000)/256TL0=(65536-5000)%256(2)初始化函数void time0_init()EA=1;TMOD=0X11;ET0=1;

41、TR0=1;ET1=1;TR1=1;(3)相应中断服务子程序void time0_int() interrupt 1 static uchar value;TH0=0x3c;TL0 =0xb0;value+;flag_5m_value+;if(flag_5m_value%10=0)flag_500ms=flag_500ms;if(value =20)value=0;flag_1s =1;程序的软件延时:AT89S51的工作频率为0-33MHZ,我们选用的AT89S51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。

42、我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。具体的延时程序分析:void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j110;j+);delay为一个双重循环,精确到1ms。延时1秒,只需要调用delay(1000)就能实现。由于单片机的运行速度很快其他的指令执行时间可以忽略不计。4.3 程序的主控制循环调用用来实现四个状态之间的转换,代码如下:void main()time0_init();init_eeprom();dx_s = nb_time;while(1)key();if(key_can 2

43、0)key_with();menu_dis();if(menu_1=0)&(flag_jdgz =0)jiaotongdeng_dis();display();4.4 对现有程序的扩充当由于紧急需要对道路进行长时间通行时,就要保持该道路更长时间的通行。下面以南北方向为例进行紧急通行为例。核心代码如下:Void int1_int() interruot2P0=table0;ns_shi=0;ns_ge=0;we_shi=0; we_ge=0;ns_g_sig=0;we_r_sig=0;delay(500);ns_g_sig=ns_g_sig;ns_shi=ns_shi;ns_ge=ns_ge;w

44、e_shi=we_shi;we_ge=we_ge;we_r_sig=we_r_sig;delay(500);第5章 实验平台第5章 实验平台5.1 实验平台我们采用的是Keil Software生产的Cx51编译器16,运行在Windows7操作平台下。(1)开启计算机进入Keil C51编译器介面,如图5-1所示。图5-1 Keil C51编译器介面(2)加入需要编译的文件,如图5-2所示。图5-2 加入编译的文件(3)编译、连接的文件,如图5-3所示。图5-3 编译、连接文件5.2 实验步骤5.2.1 编写程序代码程序代码17分为6个模块:中断模块,主函数模块,循环模块,显示模块,交通信号

45、灯模块,算法模块。(见程序实现代码)5.2.2 按照系统硬件连线图连接好系统并调试1调试程序(1)打开Keil软件,新建工程;(2)选择芯片;(3)新建文档,把编写好代码写入文档并保存了ASM文件;(4)把保存的文档加载到Source Group;(5)编译程序;(6)设置转换成16进制;(7)运行程序的结果;2把编译好的16进制文件(jtd.hex)输入单片机AT89S51仿真器18和对其进行初始化。3给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。4实验结果:图5-4 实验结果55第6章 软件仿真第6章 软件仿真6.1 Protues软件简介及应用软件仿

46、真开发工具Proteus 是一种完全用软件手段对单片机应用系统进行仿真开发的。软件仿真开发工具与用户样机在硬件上无任何联系。通常这种系统是由PC机上安装仿真开发工具软件构成,可进行应用系统的设计、仿真、开发与调试。通过Proteus软件的虚拟仿真技术,用户可以对基于单片机应用系统连同所有的外围接口、电子器件以及外部的测试仪器一起仿真。在系统开发中,一般是先用Proteus设计出系统的硬件电路,编写程序,然后在Proteus环境下仿真调试通过。然后依照仿真的结果,完成实际硬件设计。再将仿真通过的程序烧录到编程器中,然后安装到用户样机硬件板上去观察运行结果,如有问题,再连接硬件仿真器去分析、调试。

47、6.2 系统仿真电路图图6-1 系统仿真电路图6.3 仿真结果分析仿真实验实现支干道和主干道两条交叉道路的车辆交替运行,主干道每次通行时间设为30秒、支干道通行时间设为20秒,时间可以在程序中修改。同时能够实现红灯、黄灯、绿灯状态转换,红绿灯转换时间为5秒,转黄期间黄灯亮。可以准确显示每个状态所剩余的时间,按下禁行普通车辆键,主干道和支干道方向都亮红灯;按下主干道通行键,主干道绿灯亮,支干道红灯亮;按下支干道通行键,支干道绿灯亮,主干道红灯亮;任何时候按下返回键,此系统都将回到初始状态,当紧急状况出现时,按下紧急开关,可实现主干道和支干道全部禁止通行,允许紧急车辆安全通行,实现了课程设计的要1

48、8。第7章 结束语第7章 结束语本系统就是利用了AT89S51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89S51,以及其他芯片来设计交通灯控制器。本方案为了简化对路口的操作,采取了四相位对称(不对称)放行的方式进行控制。实现了通过AT89S51芯片的P0口和P2口中的P2.0-P2.4口控制数码管的显示功能,用P1口控制红、绿、黄灯点亮的功能及上电时按键通过P1口中的P1.0-P1.4口实现方案选择功能。采用P1口和P3.0-P3.1、P3.6-P3.7模拟路红红绿灯情况并通过中断进入修改参数状态和紧急状态,修改参数使用P1.4-P1.7(按键分别是相位选择,加一,减一及确

49、定修改功能)。系统实用性强、操作简单、扩展性好。通过这次交通灯的课程设计,让我提高了用专业知识、专业技能分析和解决现实问题的能力。使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,并且对已有知识有了更深层次的理解和认识。可以说在整个软件设计过程中,我不仅学会了延时的两种方法,即软件延时和硬件延时,还掌握数码管的两种显示方式(即动态显示与静态显示)及其如何选择。当然,通过几次反复调试过程,使得我对C语言指令有了更深刻的理解,为日后成为一名合格的应用型人才打下良好的基础。在整个课程设计过程

50、我还掌握了一下几点:(1)掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法。(2)理解了最单片机的各部分组成及特性。(3)熟练使用了各种计算机辅助设计工具完成设计,充分掌握了这些工具的使用。同时系统也存在不足:时间设定中没有黄灯的等待闪烁时间,以及自动根据车流改变红绿灯时间,此外,还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。使人们远离目前的交通拥塞的现象。其次是代码较长及重复,没有考虑到代码的优化问题,如果代码规模继续增大或功能继续添加可能会使系统不能很好的运行起来。再者就是修改时

51、间参数的问题,因为硬件上的限制,修改参数时数码管并不能一直点亮,同时按键有时会产生失灵现象,这样的现象可以说得上是功能上的缺陷,但受限与硬件,并没有更好的、通过软件来弥补的办法。参考文献参考文献1李朝青 单片机原理及接口技术(修订版) 北京:北京航空航天大学出版社,1998 2李广弟 单片机基础 北京:北京航空航天大学出版社,1992 3何立民 单片机应用技术大全 北京:北京航空航天大学出版社,1994 4张毅刚 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1990 5谭浩强 单片机课程设计 北京:清华大学出版社,19896雷丽文 等微机原理与接口技术.电子工业出版社,1997.27蒋

52、万君 在论循环时序电路的简便设计.机电一体化,2005第5期8周立功 增强型89S51单片机速成与实战.北京航空航天大学出版社,2004.59何立民 单片机应用技术选编.北京航空航天大学出版社,2004.310何立民 单片机应用技术选编.北京航空航天大学出版社,2004.311何立民 MCS-51系列单片机应用系统设计.北京航空航天大学出版社,199512李华 MCS-51系列单片机实用接口技术.北京航空航天大学出版社,199313周航慈 单片机应用程序设计技术.北京航空航天大学出版社,199114张志良等 单片机原理与控制技术.机械工业出版社,2001年7月第1版15陆坤 电子设计技术1.电

53、子科技大学出版社,199716梁文海 单片机AT89S51构成的智能型频率计.现代电子技术,2002 17谢自美 电子线路设计实验测试.华中理工大学出版社,200118吴金戎 沈庆阳 8951单片机实践与应用.清华大学出版社,2003致谢致谢本次设计是在翻阅了大量资料,以及在冯平兴老师的大力帮助和支持下完成的。他在设计中悉心指导,提出了许多宝贵的意见和建议,帮助我们解决了许多难题,对我们的设计起到了至关重要的作用,充分显示了一位经验丰富的教师精神之高尚、学识之渊博。在设计过程中,我受益非浅,不仅使我由对课本上的知识粗浅认识有了更进一步的理解,而且还积累了很多课本以外的知识,开阔了我的视野,丰富

54、了我的内涵,同时还积累了很多宝贵的经验,增强了独立思考的能力,当然在这个过程中也发现自己还有许多不足之处,但整个过程对我来说就像一个实际的眼帘,这对我来说无疑是一笔宝贵的财富。四年的大学生活即将结束了,但这并比意味着学习的终止,在今后的工作和学习中,我还要不断的学习,不断地丰富和发展自己的知识,不断地提高和完善自己,不断地进步。设计过程是充实的,内容是丰富的,我从中获得了更深层的知识,同时也锻炼了我的毅志,培养了我的耐心和细致的工作作风和严谨的科学态度,了解了工作的艰辛,这对我以后的工作和学习是大有帮助的。本次设计是在冯老师的耐心指导和其他两位同学的大力协助下完成的,在此深表感谢。附录附录#i

55、nclude /调用单片机头文件#define uchar unsigned char /宏定义uchar代替unsigned char。#define uint unsigned int /宏定义uint用来定义无符号整型数。#include eeprom52.h/数码管段选定义 0 1 2 3 4 5 6 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,/ A B C D E F不显示0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /断码uchar dis_smg8=0

56、xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;uchar smg_i=4; /显示数码管的个位数/数码管位选定义sbit smg_we1=P20; /数码管位选定义sbit smg_we2=P21;sbit smg_we3=P36;sbit smg_we4=P37;char dx_s=0;/东西 南北 倒计时变量sbit dx_red=P24; /东西红灯sbit dx_green=P23;/东西绿灯sbit dx_yellow=P22;/东西黄灯sbit nb_red=P27;/南北红灯sbit nb_green=P26;/南北绿灯sbit nb_yellow

57、=P25;/南北黄灯uchar flag_jtd_mode; /交通灯的模式 根据时间 bit flag_1s=0;bit flag_500ms;bit flag_dx_nb; /东西南北模式uchar flag_5m_value;uchar i;uchar flag_alarm;/模式uchar dx_time=30,nb_time=20; /东西、南北的时间uchar flag_jdgz ; /交通管制/*数码位选函数*/void smg_we_switch(uchar i)switch(i)case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;bre

58、ak;case1: smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break;case2: smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break;case3: smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break;/*把数据保存到单片机内部eeprom中*/void write_eeprom()SectorErase(0x2000);byte_write(0x2000,dx_time);byte_write(0x2001,nb_time);byte_write(0x2058,a_a);

59、/*把数据从单片机内部eeprom中读出来*/void read_eeprom()dx_time=byte_read(0x2000);nb_time=byte_read(0x2001);a_a=byte_read(0x2058);/*开机自检eeprom初始化*/void init_eeprom()/开机自检eeprom初始化read_eeprom();/先读if(a_a!=1)/新的单片机初始单片机内问eeproma_a=1;dx_time=30;nb_time=20; /东西、南北的时间write_eeprom(); /保存数据/* 名称 : delay_1ms()* 功能 : 延时1ms

60、函数* 输入 : q* 输出 : 无*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j110;j+);/* 名称 : display()* 功能 : 数码管显示* 输入 : 无* 输出 : 无*/void display()uchar i;for(i=0;ismg_i;i+)P0=0xff; /消隐 smg_we_switch(i); /位选P0=dis_smgi; /段选 delay_1ms(3);/*定时器0、定时器1初始化*/void time0_init()EA=1; /开总中断TMOD=0X11; /定时器0、定时器1工作方式1ET0=1; /开定时器0中断 TR0=1; /允许定时器0定时/ET1=1; /开定时器1中断 /TR1=1; /允许定时器1定时

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!