毕业设计(论文)-基于单片机的交通灯控制系统设计1.doc_第1页
毕业设计(论文)-基于单片机的交通灯控制系统设计1.doc_第2页
毕业设计(论文)-基于单片机的交通灯控制系统设计1.doc_第3页
毕业设计(论文)-基于单片机的交通灯控制系统设计1.doc_第4页
毕业设计(论文)-基于单片机的交通灯控制系统设计1.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

摘要当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。随着大规模集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代科技发展的主流方向。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的功能有:对某市区的四个主要交通路口进行监控;各路口有固定的工作周期,并且在道路拥挤时中控中心能改变其周期。 交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用stc89c51单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通指挥自动化提供了一种新的廉价手段,具有一定的推广意义。本文介绍了控制基本原理以及控制的表现,同时也介绍了城市交通信息系统的设计目标, 开发途径及其系统结构与功能和数据地理编码、建库, 同时, 论述了系统中交通现状、交通管理、交通规划及背景信息查询模块的建造及应用。介绍了用于城市交叉路口的三色程控交通信号时间显示器的研制方案,对其电源供电、发光二极管构成的负载结构、灯色时间检测都给出了精巧合理的优化结构,大幅度地提高了产品可靠性并降低了制造成本。关键词:8051单片机;交通灯;自动控制;时间显示器; abstractthe ages is an automation ages nowadays and transportation light controls waiting a lot of equipmentses of professions all is closely related with calculator.therefore, a good transportation light control system, will hustle for road, illegal control etc. give technique innovation.along with the technical quick development of the large scale integration and the calculator, and the artificial intelligence is control the extensive usage of technique, the intelligence equipments had a very big development, is the essential direction that modern science and technology develop.this text introduced the design of an intelligence transportation light system.the intelligences transportation light control the system can carry out of the function have:carry on supervision to four main transportation street corners of some downtown;each street corner contains fixed work period, and control center in the road hustle the hour can change its periodfurthermore, the development and the application tests of the traffic situation model, the traffic management model, the traffic plan model and the background information inquirement model of u t is were discussed.this paper introduces the development scheme of three-colour programmable traffic signal time indicator used in the level-crossing of our city.and gives its power supply,load construction made by led and time detection of traffic lamp colour a reasonable optimize structure.the reliability of product is substantiallyimproved while the cost is reduced.key words:scm8051;traffic lights;automatic control;time indicator; 1绪论42概述52.1单片机的定义52.2单片机介绍62.3单片机的应用领域62.3.1.在智能仪器仪表上的应用62.3.2在工业控制中的应用72.3.3在家用电器中的应用72.3.4在计算机网络和通信领域中的应用72.3.5单片机在医用设备领域中的应用72.3.6在各种大型电器中的模块化应用72.3.7单片机在汽车设备领域中的应用82.4 89c51单片机的介绍82.4.1 mcs-51单片机的逻辑结构及信号引脚82.4.2mcs-51单片机的逻辑结构82.4.3 mcs-51的信号引脚92.4.4 8255芯片简介122.4.5串口电平转换芯片max232133方案比较、设计与论证143.1电源提供方案143.2显示界面方案153.3输入方案:154系统硬件设计154.1总体设计164.2各功能模块硬件设计及实现164.2.1交通灯四种通行模式及行车方向指示164.2.2 键盘与状态显示及其实现194.2.3数码管显示电路204.2.4交通灯系统硬件电路图235 系统软件设计245.1软件总体流程图245.2软件主要程序流程255.2.1每秒钟的设定255.2.2 按键中断程序255.2.3数码管显示程序265.3程序源代码276系统调试与测试结果326.1软件调试326.2硬件调试336.3软硬联调337总结331绪论当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。2概述2.1单片机的定义单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:cpu、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有cpu的专用处理器发展而来。最早的设计理念是通过将大量外围设备和cpu集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。intel的z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。2.2单片机介绍单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如cpu,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、vcd等等的家电里面都可以看到它的身影!.它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用pc)的主要区别。 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的cd4000系列这些纯硬件来搞定的话,电路一定是一块大pcb板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!2.3单片机的应用领域2.3.1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.3.2在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。2.3.3在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。2.3.4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。2.3.5单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。2.3.6在各种大型电器中的模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于rom),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。2.3.7单片机在汽车设备领域中的应用单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于can总线的汽车发动机智能电子控制器,gps导航系统,abs防抱死系统,制动系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。2.4 89c51单片机的介绍2.4.1 mcs-51单片机的逻辑结构及信号引脚图1 mcs-51 单片机的结构框图2.4.2mcs-51单片机的逻辑结构(1)中央处理器(cpu)中央处理器简称cpu,是单片机的核心,完成运算和控制操作。按其功能,中央处理器包括运算器和控制器两部分电路。(2)运算器电路功能:单片机的运算部件,用于实现算术和逻辑运算。(3)控制器电路功能:单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。(4)内部数据存储器组成:ram(1288)和ram地址寄存器等。功能:用于存放可读写的数据。(5)内部程序存储器组成:rom(4k8))和程序地址寄存器等。功能:用于存放程序和原始数据。(6)定时器计数器80c51共有两个16位的定时器计数器。功能:实现定时或计数功能,并以其定时或计数结果对单片机进行控制,以满足控制应用的需要。(7)并行i/o口mcs-51共有4个8位的i/o口(p0、p1、p2、p3)功能:实现数据的并行输入输出。(8)串行口mcs- 51单片机有一个全双工的串行口。功能;以实现单片机和其它数据设备之间的串行数据传送。(9)中断控制系统80c51共有5个中断源,即外中断2个,定时计数中断2个,串行中断1个。全部中断分为高级和低级共两个优先级别。(10)时钟电路mcs- 51芯片的内部有时钟电路,但石英晶体和微调电容需外接。功能:时钟电路为单片机产生时钟脉冲序列。典型的晶振频率:6mhz、11.0592mhz、12mhz。(11)位处理器位处理器称为布尔处理器。功能:以状态寄存器中的进位标志位c为累加位,可进行各种位操作。(12)总线总线:连接计算机各部件的一组公共信号线。分类:地址总线、数据总线和控制总线。 作用:减少了单片机的连线和引脚,提高了集成度和可靠性。2.4.3 mcs-51的信号引脚80c51是标准的40引脚双列直插式集成电路芯片,引脚排列如图所示。(1)信号引脚介绍图2 80c51芯片引脚排列图输入输出口线 p0.0p0.7 p0口8位双向口线 p1.0p1.7 p1口8位双向口线p2.0p2.7 p2口8位双向口线p3.0p3.7 p3口8位双向口线ale 地址锁存控制信号功能:a)在系统扩展时,ale用于控制把p0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。如图所示。图3单片机程序存储器扩展连接图b)ale是以六分之一晶振频率的固定频率输出的正脉冲,可作为外部时钟或外部定时脉冲使用。/psen 外部程序存储器读选通信号在读外部rom时/psen有效(低电平),以实观外部rom单元的读操作。/ea 访问程序存储器控制信号当/ea信号为低电平时,对rom的读操作限定在外部程序存储器;当/ea信号为高电平时,对rom的读操作是从内部程序存储器开始,并可延续至外部程序存储器。rst 复位信号当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。xtal1和xtal2外接晶体引线端当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。vss地线vcc5v电源(2)信号引脚的第二功能 “复用”即给一些信号引脚赋予双重功能。第二功能信号定义主要集中在p3口线中,另外再加上几个其它信号线。常见的第二功能信号p3口线的第二功能p3口8条口线都定义有第二功能,如表所示。图4 p3口的第二功能eprom存储器程序固化所需要的信号编程脉冲:30脚(ale/prog)编程电压(25v):31脚(/ea/vpp)备用电源引入备用电源是通过9脚(rst/vpd)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部ram提供电压,以保护内部ram中的信息不丢失。说明:a)第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。b)p3口线先按需要优先选用它的第二功能,剩下不用的才作为i/o口线使用。(3)89c51的复位电路8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,reset/vpd还是一复用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。图5复位电路2.4.4 8255芯片简介8255可编程并行接口芯片简介:8255可编程并行接口芯片有三个输入输出端口,即a口、b口和c口,对应于引脚pa7pa0、pb7pb0和pc7pc0。其内部还有一个控制寄存器,即控制口。通常a口、b口作为输入输出的数据端口。c口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口a配合使用,可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是c口按位置位复位控制字。其中c口按位置位复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料方式控制字格式说明如表1: d7d6d5d4d3d2d1d0 表1 d7:设定工作方式标志,1有效。 d6、d5:a口方式选择 0 0 方式0 0 1 方式1 1 方式2 d4:a口功能 (1=输入,0=输出) d3:c口高4位功能 (1=输入,0=输出) d2:b口方式选择 (0=方式0,1=方式1) d1:b口功能 (1=输入,0=输出)d0:c口低4位功能 (1=输入,0=输出) 8255可编程并行接口芯片工作方式说明: 方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入输出方式。这时a口或b口的8位外设线用作输入或输出,c口的4条线中三条用作数据传输的联络信号和中断请求信号。方式2 :双向总线方式。只有a口具备双向总线方式,8位外设线用作输入或输出,此时c口的5条线用作通讯联络信号和中断请求信号。2.4.5串口电平转换芯片max232max232芯片是美信公司专门为电脑的rs-232标准串口设计的接口电路,使用+5v单电源供电。内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑dp9插头;dp9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。第三部分是供电。15脚dng、16脚vcc(+5v)。图6max232芯片各管脚解法图3方案比较、设计与论证 此交通灯方案实现了基本的交通工作原理,并且加入了禁左行车时间,有两种工作模式,白天的时候车流量比较大启动模式1,当到了晚上车流量相对少了启动模式2,这样就避免了晚上没车时候等候时间过长的因素。3.1电源提供方案为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,我们选择第二种方案。3.2显示界面方案该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式led 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵led 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与led灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。3.3输入方案:题目要求系统能手动设灯亮时间、夜间模式处理,我们讨论了两种方案:方案一:采用8155扩展i/o 口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有ram,及计数器。若用该方案,可提供较多i/o 口,但操作起来稍显复杂。方案二: 直接在io口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用两个按键,分别是k1、k2由于该系统对于交通灯及数码管的控制,只用单片机本身的i/o 口就可实现,且本身的计数器及ram已经够用,故选择方案二。4系统硬件设计 硬件设计是整个设计的基础,要考虑的方方面面很多,除了实现交通灯的基本功能外,主要还要考虑如下几个因素:系统稳定度;器件的通用性或易选购性;软件编程的易实现性;系统其他功能及性能指标;因此硬件设计至关重要。先从各功能模块的实现之歌进行分析探讨。4.1总体设计本设计一单片机为控制核心,采用单mcu结构,模块化设计,共分为以下几个功能模块:单片机控制系统、键盘及状态显示、行车方向显示、和倒计时模块等。单片机作为整个硬件系统的核心,他既是谐调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。行车方向指示灯采用三种颜色的led发光管,分别为红、黄、绿,红和绿指示禁止与放行,形象直观。键盘采用按键。分别控制模式1和模式2。系统采用单数码管倒计时功能,最大显示数字为99。有好的人机界面、灵活的控制方式、优化的物理结构以及丰富的功能是本设计的亮点。主单片基行车方向指示键盘与状态显示倒计时图7 系统总体设计框图4.2各功能模块硬件设计及实现4.2.1交通灯四种通行模式及行车方向指示按交通灯控制规则,每个街口有左拐、直行、等待、三种指示灯。交道口模型图:图8 交道口模型图4个led灯按照设置的通行时间变化,led显示南北、和东西方向的等待时间开始南北方向为60秒,而东西方向为40秒就行倒计时,共有四种通行方式,分别为图9a通行方式一 图9b 通行方式二图9c通行方式三 图9d通行方式四 图10a 模式一下的通行方式一 图10b 模式一下的通行方式二 图10c 模式一下的通行方式三 图10d 模式一下的通行方式四当处于模式1时:通行方式一:倒计时时间为60秒(等待时间),红绿灯状态:只限东西方向左拐,所以南北方向为红,东西方向左拐led灯亮,持续10秒钟。如图9b和图10b。通行方式二:倒计时时间为50秒(等待时间),红绿灯状态:东西方向直行,南北方向禁行,所以南北方向为红灯,东西方向直行led灯亮,持续50秒。如图9a和10a。通行方式三:倒计时时间为40秒(等待时间),红绿灯状态:只限南北方向左拐,所以东西方向为红灯,南北方向左拐led灯亮,持续10秒钟。如图9d和图10d。通行方式四:倒计时时间为30秒(等待时间),红绿灯状态:南北方限制性,东西方向禁行,所以东西方向为红灯,南北方向直行led灯亮,持续30秒。如图9c和10c。通行方式二和四,在通行还剩五秒的时候,这是黄灯开始工作,绿灯在倒计时还剩5秒的时候灭,然后黄灯开始闪烁,提醒司机快红灯了。当处于模式2时:通行方式五:倒计时时间为40秒(等待时间),红绿灯状态:只限东西方向左拐,所以南北方向为红,东西方向左拐led灯亮,持续10秒钟。如图9b。通行方式六:倒计时时间为30秒(等待时间),红绿灯状态:东西方向直行,南北方向禁行,所以南北方向为红灯,东西方向直行led灯亮,持续50秒。如图9a。通行方式七:倒计时时间为20秒(等待时间),红绿灯状态:只限南北方向左拐,所以东西方向为红灯,南北方向左拐led灯亮,持续10秒钟。如图9d。通行方式八:倒计时时间为10秒(等待时间),红绿灯状态:南北方限制性,东西方向禁行,所以东西方向为红灯,南北方向直行led灯亮,持续30秒。如图9c。通行方式六和八,在通行还剩五秒的时候,这是黄灯开始工作,绿灯在倒计时还剩5秒的时候灭,然后黄灯开始闪烁,提醒司机快红灯了。4.2.2 键盘与状态显示及其实现键盘在本设计中用于更换红绿灯工作模式的手动控制装置,以及复位时间,起到了不可或缺的重要作用。我们选用两个按钮来作为控制装置,分别为k1,k2,当按下k1启动模式1,当按下k2启动模式2。独立式是一组相互独立的按健,这些按健可直接与单片机的1/o口连接,即每个按健独占一条口线,接口简单。独立式键盘因占用单片机的硬件资源较多,只适合按键较少的场合。图11 键盘 4.2.3数码管显示电路数码管在其中要加相应大小的上拉电阻,上拉电阻的作用就是增大电流,是数码管更亮,在此设计中,由于i/o接口数量足够,所以采用数码管静态显示方法,这样虽然浪费i/o接口,但是本设计条件允许,并且使软件设计更简单,更容易。采用的数码管为共阴极,所用公共端接地。数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管。共阳数码管在应用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管。共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。图12数码管显示电路图中的电阻为上拉电阻。led显示器中的发光二极管共有两种连接方法: 共阳极接法 把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5v。阴极端输入低电平的段发光二极管导通点亮,输入高电平的则不点亮。共阴极接法把发光二极管的阴极连在一起构成公共阴极。使用时会共阴极接地,阳极端输入高电平的段发光二极管导通点亮,输入低电平的则不点亮。图13 led显示器用led显示器显示十六进制数的字型代码如下表所示:显示数值dop g f e d c b a 驱动代码(16进制)00 0 1 1 1 1 1 1 3fh1 0 0 0 0 0 1 1 006h2 0 1 0 1 1 0 1 15bh3 0 1 0 0 1 1 1 14fh4 0 1 1 0 0 1 1 066h5 0 1 1 0 1 1 0 06dh6 0 1 1 1 1 1 0 07dh7 0 0 0 0 0 1 1 107h8 0 1 1 1 1 1 1 17fh表2 数码管驱动代码表4.2.4交通灯系统硬件电路图图14 系统硬件电路图5 系统软件设计硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,如那件事本系统的灵魂。软件采用c语言,不仅易于编程和调试,也可减少软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。由于变成多涉及到数值运算,比较复杂,这里我们选择移植性好、结构清晰、能进行复杂运算的c语言来实现编程。5.1软件总体流程图软件总体设计及流程图见图14,主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,包括发送显示数据,led的初始值设定,等待外部中断,以及根据所需要的功能进行相应的操作。其流程图如图15所示。开 始初 始 化取 键 值判断当前状态倒 计 时led颜色工作模式图15 系统流程图主程序比较简单,初始化完成后,调用按键子程序,取得键值,并根据当前系统状态调用相应的子程序。5.2软件主要程序流程5.2.1每秒钟的设定延时方法可以有两种一中是利用mcs-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。mcs-51的工作频率为2-12mhz,我们选用的8031单片机的工作频率为6mhz。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6m)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。我们采用的是软延迟的方法。void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);其中给定z=1000为时间1秒。5.2.2 按键中断程序它包含倒计时调整和模式切换两个状态。主程序中放了一个按键的判断指令,当有按键按下的时候,程序就自动的跳转到按键子程序处理。当检测到k1键按下的时候就自动返回到主程序,运行k1模式1,当检测刀k2按下时自动返回主程序,运行k2模式。k1模式子程序:if(h=1|aa=1)i=9;j=4;p2=table3;g1=0;r2=0;g2=1;r1=1;y1=1;y2=1;h=1;if(h=1)i=9;j=6;p2=table5;g2=0;r1=0;r2=1;g1=1;y1=1;y2=1;h=1;k2模式子程序:if(h=0|aa=0)i=9;j=6;p2=table5;g1=0;r2=0;g2=1;r1=1;y1=1;y2=1;h=0;if(h=0)i=9;j=8;p2=table7;g2=0;r1=0;r2=1;g1=1;y1=1;y2=1;h=0;5.2.3数码管显示程序参照表2,数码管显示与16位进制时之间的关系建立数组table=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;采用循环,将数组中的值按每秒键1的方法显示在数码管上,这就是冲9-0的倒计时。循环显示程序:for(;j11;j+) for(;i10;i+) p3=tablei; delay(500); z+; p2=tablej;i=0; 其中p3位十位数码显示管显示数字,p2为个位数码管显示数字。5.3程序源代码#include#include#define uint unsigned int /宏定义#define uchar unsigned charuchar i,j,z,h,tt,ii,jj,aa,bb;uchar code table=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;sbit gg1=p00;sbit gg2=p01;sbit y1=p12;sbit r1=p13;sbit g1=p14;sbit y2=p17;sbit r2=p16;sbit g2=p15;sbit key1=p10;sbit key2=p11;void delay(uint);void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main() gg1=1;gg2=1;aa=1;h=1;key1=1;key2=1;z=0;p3=0;p2=0;while(1) if(h=1|aa=1)i=9;j=4;p2=table3;g1=0;r2=0;g2=1;r1=1;y1=1;y2=1;h=1;if(h=0|aa=0)i=9;j=6;p2=table5;g1=0;r2=0;g2=1;r1=1;y1=1;y2=1;h=0; for(;j11;j+) for(;i=5)gg1=0; g1=1;if(h=0)if(p3=0x3f) & (j=7)gg1=0; g1=1;if(key1=0)aa=1;if(key1=0)aa=1;if(key2=0)aa=0;if(key2=0)aa=0;if ( p2=0x3f ) & ( i = 4 ) )g1=1;gg1=1;if(z=0)y1=0;if(z=1)y1=1;z+; p2=tablej;i=0; if(h=1)i=9;j=6;p2=table5;g2=0;r1=0;r2=1;g1=1;y1=1;y2=1;h=1;if(h=0)i=9;j=8;p2=table7;g2=0;r1=0;r2=1;g1=1;y1=1;y2=1;h=0;for(;j11;j+)for(;i=7)gg2=0; g2=1;if(h=0)if(p3=0x3f) & (j=9)gg2=0; g2=1;if(key1=0)aa=1;if(key1=0)aa=1;if(key2=0)aa=0;if(key2=0)aa=0;if ( p2=0x3f ) & ( i = 4 ) )g2=1; gg2=1;if(z=0)y2=0;if(z=1)y2=1;z+; p2=tablej;i=0; gg2=1;6系统调试与测试结果因本设计本身要求稳定性高、免维护、抗干扰力强等功能,系统调试扯了验证数据处理的精度,确保判断的准确性外,同时必须确认各项的功能的正常运行。6.1软件调试本系统的软件系统比较大,全部用c51来编写,选用一般的keil7对c51进行调试。除了语法错误外,当确定没问题后生产hex文件,首先在protues上进行仿真实验,然后逐步调试每一个模板,然后在连成一个完整的系统,最后完成呢过一个完整的系统调试。主要是数码管和led的调试。6.2硬件调试城市交通灯控制系统的pcb电路板焊接,本设计采用三层板子:第一层板子主控制中心,包括复位电路、电源部分、串口下载部分及i/o接口。第二层板子添加外围电路所需的驱动电路及上拉电阻。第三层板子主要为数码显示管、显示方向的led及调换模式的按钮。电路安装完成后,首先进行检查,即确定电路无虚焊、无短路、无断路,集成元器件是否安装正确,之后进行电路调试:(1)led的检测即led的亮点是否正确。(2)数码显示管的亮点是否正确。(3)按钮是否正常工作。6.3软硬联调 系统做好后,就行完整的调试。主要是protues仿真中能实现功能及其效果并校正数值。在确定无误后通过stc-isp软件将刚才生成的hex文件通过串口线烧入单片机,然后在进行调试。(1)状态灯显示测试当电路连接完毕后,将写好的测试程序刷写到芯片内,k1 和k2分别给端口送高电平和低电平,通电即可检测。(2)数码管的测试将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。(3)整体电路测试系统上电,刷写好程序即可开始测试,观测一个周期

温馨提示

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

评论

0/150

提交评论