《基于单片机的交通信号灯模拟控制系统设计和实现 电气工程专业.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通信号灯模拟控制系统设计和实现 电气工程专业.docx(26页珍藏版)》请在课桌文档上搜索。
1、基于单片机的交通信号灯模拟控制米统设计目录摘要5ABSTRACT6前言7第一章单片机的概述81.1 单片机的简介81.2 单片机的发展历程91.3 典型的单片机产品10第二章单片机芯片的简介112. 1MCS-51芯片的简介112.2数码管132. 2.1数码管的分类133. 2.2数码管的结构13第三章交通灯的总体设计方案153. 1设计思想153.1 实现方法153.2 交通灯的管理方案论证153.3 系统的硬件设计161. 4.1总体设计框图163. 4.2硬件接线图174. 4.3单片机的最小系统图18第四章系统的软件设计194.1计数器的硬件延时194. 1.1计数器的初值计算195
2、. 1.2计算公式194. 1.31秒的方法194.1 软件延时204.2 信号灯的显示214.3 程序设计224. 4.1控制流程图225. 4.2程序源代码24第五章设计感想27致谢28参考文献29近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新,在实时检测和自动控制的单片机应用系统中,单片机往往作为核心器件来使用。仅单片机知识是不够的,还应根据具体硬件软件结构结合来加以完善。交通信号灯控制方式很多,一个好的控制系统可以带来诸多的方便,选择实用的单片机更能让其发挥更大的功效。本系统就是采用MCS-51系列单片机AT89S51和可编程并行I/O接口芯片89
3、s51位中心器件来设计交通灯控制器,AT89S51的引脚有更加强大的功能,更是兼容此系列的单片机,同时结合部分外围电路,实现了能根据实际车流量通过89S51的Pl设置红绿灯点亮时间的功能,红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警告,本系统实用性强,操作简单,扩展功能强。关键词:交通灯MCS-51单片机ABSTRACTYearswiththerapiddevelopmentofscienceandtechnology.SCMapplicationaredeepeningatthesametimepromotemoretraditionalcontroldetectionupdate.Inreal
4、-timedetectionandcontrolofthemicrocomputerapplicationsystem,themicrocontrollerisoftenusedasacorecomponent,onlytheSCMknowledgeisinadequateandshouldbebasedonspecifichardwarearchitecturehardwareandsoftwaretobeimproved.Manywaystocontroltrafficlights.Agoodcontrollabletrafficlightsystemcanbeatechnological
5、innovationofroadcongestion,illegalcontrolandotherissuesInthissystem,MCS-51seriesMCUAT89S51andprogrammableparallelI/Ointerfacechip89s51-centereddesignoftrafficsignalcontrollerdevicetorealizetheactualtrafficvolumeby89S51accordingtothePlportchipsetofred,greentimekindlefunction:trafficlightcycleoflight,
6、yellowlightflasheswhenthecountdown5secondsleftwarning.Thesystempractical,simple,powerfulextensions.Keywords:trafficlightMCS-51SCMZ,a刖S19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦敦议会大前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈设计、制造的灯柱高7米,身上挂着一盏红、绿
7、两色的提灯一煤气交通信号灯,在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。不幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。直到1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。黄色信号灯的发明者是我国的胡汝
8、鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电器公司任职员。一天,他站在繁华的十字路口等待绿灯信号,天津不锈钢岗亭当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。中国最早的马路红绿灯,是于1928年出现在上海的英租界。从最早的手牵皮带到20世纪50年代的电气控制,从采用计算机控制到现代化的电子定时监控,交通信号灯在科学化、自动化上不断地更新、
9、发展和完善。纵观交通事业的发展历史,以前,人们出门远行或运输东西最常用到的交通工具是马车,但是随着社会的进步经济的发展,一种新型交通工具汽车随之问世。如1950年英国陆虎公司推出世界上第一台采用燃气涡轮发动机的汽车,1952年美国通用公司推出“别克”牌小轿车,1956年中国第一汽车制造厂成立,“解放”牌汽车问世。特别是近几年汽车产业更是日新月异,2006年全世界汽车总己产量已超过6400万辆。在汽车产业蓬勃发展的背后,随之而来交通问题也越来越多,如交通堵塞和交通事故时常发生,这不但给人们的生命和财产造成了威胁,同时还制约着国民经济的发展,特别是发达国家和发展中国家面临的形势更是严峻。为了缓解交
10、通的负荷量,使车辆运行畅通无阻,交通事业整严有序,国家起用了双车道交通灯控制系统。通过红,绿,黄三色灯进行单一的控制,使其遵守红灯停,绿灯行的原则。但是随着社会的发展,天津不锈钢岗亭此系统已经远远不能满足交通控制事业的需求,需要一种全新的控制理念,进而引进了与我国国情相符合的国外先进的控制体系,多车道交通灯控制系统,不但解决以往交通控制系统的局限性,同时还加快车了车流辆速度。并制定了道路交通安全法实施条例第三十八条明确规定:绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行,黄灯亮时,己越过停止线的车辆可以继续通行,红灯亮时,禁止车辆通行。第一章单片机的概述1.1 单片机的
11、简介单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性
12、能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前.,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型
13、号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作
14、!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。1.2 单片机的发展历程1971年intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片InteI4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国经济学家杂志列为“二战以来最有影响力的7位科学家”之一。1971年11月,IntCI推出MCS-4微型计算机系统(包括4001ROM芯片、4002RAM芯片、4003移位寄存器芯片和4004微处理器)其中4004(下图)包含2300个晶体管,尺寸规格为3mmX4mm,计算性能远远超过当年的
15、ENlAC,最初售价为200美元。1972年4月,霍夫等人开发出第一个8位微处理器Intel8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。1973年Intel公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器InteI8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为0.64MIPS(MillionInstructionsPerSecond)01975年4月,MlTS发布第一个通用型Altair88
16、00,售价375美元,带有IKB存储器。这是世界上第一台微型计算机。1976年Intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。ZILOG公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,ZILoG、MotOrOIa和InteI在微处理器领域三足鼎立。20世纪80年代初,IntCl公司在MCS-48系列单片机的基础上,推出TMCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。1.3 典型的单片机产品Intel是最早推出单片机的公司之一,主要有MCS-48.MCS-51系列8位
17、单片机和MCS-96系列的16位单片机。在二十世纪八、九十年代MCS-51和MCS-96曾经是我国最流行的单片机,得到最广泛的应用.国内具有很多型号的51/96仿真器,至今仍有不少的用户。这几年InteI公司注重于奔腾系列的微处理器,高档嵌入式系统等的开发没有推出新的单片,而ATMEL公司有很多和MCS-51兼容的高性能单片机。Motorola公司主要有MC68HC05MC68HC11.MC68HC08系列的8位单片机,MC68C12、MC68HC16系列16位单片机.MC68HC908是新型的FLASH型单片机,功能强,型号多,又有国产的廉价仿真器的支持,在我国得到了广泛应用。东芝公司主要有
18、TLCS-870.TLCS-870XTLCS-870/C等系列的8位单片机,TLCS-900系列的16位单片机,这些单片机是近几年推出的新型单片机,功能强、可靠性高,.国内推出了tlcs-870.tlcs-870c系列单片机的廉价开发工具(STFB和STF870/C),使这两个系列的单片机引起国内用户的重视,近两年来开始流行,特别是在家用电器领域得到广泛的应用。世界上其他的半导体公司,如美国的国际半导体,日本的日立、三菱、NEC、富士通公司、韩国的三星公司、荷兰的PhiIiPS公司等都有他们的单片机系列产品。从应用的角度看,各个公司的新型单片机的结构和功能大体上相似,从应用的广度看,8位单片机
19、应用最广泛。在开发一个应用产品时,选用哪一个型号的单片机取决于开发成本、生产成本以及是否有廉价的开发工具的支持。第二章单片机芯片的简介2.1MCS-51芯片简介AT89S51是MCS-51系列单片机的典型产品,它是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemPrOgrammable)的可反复擦写100O次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提
20、供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。其管脚图如图1所示;(T2)P1. 0 C (T2EX)P1. 1 C Pl. 2 L Pl. 3 C Pl. 4 C Pl. 5 L Pl.6 CPl. 7 CRESET C RXD/P3. 0 C TXD/P3. 1 InT0P3. 2 C iiflP3. 3 CT0/P3. 4 C T
21、1/P3. 5 CWP3.6 C RD/P3. 7 CXTAL2 C XTALl CPDIP Vss C012345678901234567891111111111209876543210987654321433333333332222222221 VccJ PO. 0/AD0J PO.1/AD1J PO. 2/AD2J PO. 3/AD3J PO.4/AD4PO. 5/AD5J PO. 6/AD6J PO. 7/AD7J ea/VppJ ALE/PROGPSENJ P2. 7AD15J P2.6AD14J P2. 5AD13P2. 4AD12J P2. 3/AD11J P2. 2AD10J
22、P2. 1AD9J P2. 0AD8图1AT89S51的引脚图现在我们对AT89S51的40个管脚的功能加以说明:1 .主电源引脚VCC:电源电压输入端。GND:电源地。PO口:PO口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当Pl口的管脚第一次写1时,被定义为高阻输入。PO能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,PO口作为原码输入口,当FlASH进行校验时,PO输出原码,此时PO外部必须被拉高。运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、PkP2、P3口作为输入时都是准双向口。除了
23、Pl口外P0、P2、P3口都还有其他的功能。2 .控制引脚RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的l6o因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用
24、。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:外部程序存储器访问允许。当EA保持低电平时,则在此期间外部程序存储器(OOOOH-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。3.外接晶振引脚XTAL1:片内振荡器反相放大器和时钟发生器的输入端。X
25、TAL2:片内振荡器反相放大器的输出端。4 .可编程输入/输出引脚AT89S51单片机有4组8位的可编程I/O口,分别位P0、Pl、P2、P3口,每个口有8位(8根引脚),共32根。每一根引脚都可以编程,比如用来控制电机、交通灯、霓虹灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能。PO11(Pin39Pin32):8位双向I/O口线,名称为PO.0P0.7Pl口(Pinl-Pin8):8位准双向I/O口线,名称为PL0PL7P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7P311(PinlOPinl7):8位准双向I/O口线,名称为P3.0P3.7经过对
26、AT89S51和之前的MCS-51系列单片机的比较,以下是其主要性能特点1 4kBytesFIaSh片内程序存储器;2、128bytes的随机存取数据存储器(RAM);3、32个外部双向输入/输出(I/O)口;4、5个中断优先级、2层中断嵌套中断;5、6个中断源;6、2个16位可编程定时器/计数器;7、2个全双工串行通信口;8、看门狗(WDT)电路;9、片内振荡器和时钟电路;10、与MCS-51兼容;11、全静态工作:OHZ-33MHz;12、三级程序存储器保密锁定;13、可编程串行通道;14、低功耗的闲置和掉电模式;看门狗(WDT)电路的主要是实现复位功能,当单片机运行出现死循环时,看门狗(
27、WDT)电路可以起保护功能,实现复位作用。2.2数码管2. 2.1数码管分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用
28、时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。2.2数码管结构1.ED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。Ied数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.Ied数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不
29、同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。Ied数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。SM220501K是一个两位数共阴极的数码管,a,b,c,d,e,f,g,就是数码管的段码dip就是数码管的小数点,11、10为位选信号。例如:如果给b,c送高电平,11接地,左边的数码管会显示1,在本次设计中11为十位的位选信号。如果b,c送高电平,10接地,右边的数码管会显示1,在本次设计中为个位的位选信号。下面将介绍常用LED数码管内部引脚图片图2是一个两位7段带小数点的1
30、0引脚的LED数码管。图3是引脚的定义,其中DP表示的是小数点。图4是原理图。图4原理图第三章交通灯的总体设计方案3. 1设计思想(1)通过交通信号灯控制系统的设计,掌握at89s51并行口传输数据的方法,以控制发光二极管的亮与灭。(2)用at89s51作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理。(3)通过单片机控制设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。(4)完成控制系统的硬件设计、软件设计、仿真调试。(5)由于对面对的两个交通灯现象一样,同时合为一个,所以设计中控制6个灯就可以了。3.2实现方法(1)在设计中利用软件程序延时的方法来控制
31、红(绿)的亮的时间。考虑延时时间较长所以先用TO产生终端然后通过计数的方法来实现延时。利用P1口的PL1、PL2、PL3作为红绿灯控制端口。(2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一块与Pl.1相连。同样南北向的红灯连在一块,东西向的绿灯连在一块,他们一块与PL2相连,四个黄灯连在一块与PL3相连。3.3 交通灯的管理方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道方向为主干道南北方向为从干道,四个路
32、口安装红,黄,绿,灯各一盏。如图5所示:北 从干道E主干道DI1指示灯燃亮的方案如下50SIOS40SIOS东西道红灯亮黄灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮黄灯亮根据指示灯燃亮的方案,对其做个详细的说明:(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为50秒。(2)黄灯闪烁10秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为40秒。东西方向车流大通行时间长。(4)这样如上方案的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(
33、5)此表可根据车流量动态设定红绿灯初始值。3.4 系统的硬件设计3.4.1 总体设计框图复位电路振荡电路j东西交通灯(2组) ;南北交通灯(2组)A)I 2位LED显示器(4组)图6交通控制系统总体框图S08 Sce X6 3ua K$4 2 RS根据上面的接线图各引脚的分配如下:P1.0PL2、P1.4分别作为南北绿灯、黄灯、红灯的控制端。PL1、PL3、P1.5分别作为东西绿灯、黄灯、红灯的控制端。P2QP2.LP22P23P24P2.5、P2.6、P2.7作为两段数码管a、b、c、d、e、f、g的显示控制端,其中P2.7接得是小数点dp端。P3.0、P3.1、P3.2接的是数码管的位选信
34、号端。3.4.3单片机的最小系统图单片机系统需要实验板一块,电容8个,电阻3个,12兆晶振一个,按钮一个,40管教插槽一个,导线若干,小Ied灯一个,89S51芯片一片等单片机系统包括单片机、晶振电路、复位电路。VCC图7单片机最小系统复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号.为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。振荡电路的基本功能是:为单片机的工作提供了所需要的时钟脉冲信号,使单片机的内部电路和内部程序开始工作。振荡电路若不工作,整个单片机电路都不能正常工作。各引脚分别对地接了一个3
35、0pF的电容,其目的是防止单片机的自激。第四章系统的软件设计4.1 计数器的硬件延时4.1.1 计数器的初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全O时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器摸值,该值和计数器工作方式有关。在方式O时M为213;在方式1时M的值为216;在方式2和3为284.1. 2计算公式T=(M-TC)T计数或TC=MT/T计数T计数是单片机时钟周期TCLK的12倍;TC为定时初值如单片机的主脉冲频率为TCLK1
36、2MHZ,经过12分频方式OTMAX=213*1微秒=8.192毫秒方式1TMAX=216*1微秒=65.536毫秒显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。4.1.31秒的方法采用在主程序中设定一个初值为20的软件计数器和使TO定时50毫秒。这样每当TO到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPlJ先使软件计数器减1,然后判断他是否为零。为零表示1秒已到可以返回到输出时间显示程序。软件延时MCS-51的工作频率为2-12MHZ,选用的at89s51的单片机的工作频率为12MHZ。机械周期与
37、主频有关。机械周期是主频的12倍,所以一个机器周期的时间为12*(16M)=2USo可以知道具体每条指令的周期数,这种既可以通过指令的执行条数来确定1秒的时间。以下是相应程序代码(1)主程序定时器需定时50毫秒,故TO工作于方式1。初值:TC=M-T/T计数=216-50ms1us=15536=3CB0HORG1000HSTART:MOVTMOD,#01H;令TO为定时器方式1MOVTHO,#3CH;装入定时器初值MOVTLO,#BOHMOVIE,#82H;开TO中断SEBTTRO*启动TO计数器MOVRO,#14H;软件计数器赋初值LOOP:SJMP$;等待中断(2)中断服务子程序ORGOO
38、OBHAJMPBRTOORGOOBHBRTO:DJNZRO,NEXTAJMPTIME;跳转到时间及信号灯显示子程序DJNZ:MOVRO,#14H;恢复RO值MOVTHO,#3CH;重装入定时器初值MOVTLO,#BOH;MOVIE,#82HRETlEND4. 2软件延时MCS-51的工作频率为2-12MHZ,我们选用的AT89S51单片机的工作频率为6MHZo机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(16M)=2uso我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。其流程图如图8所示下面是我对具体的延时程序分析:DELAY:
39、MOVR4,#08H延时1秒子程序1DE2:LCALLDELAYl1DJNZR4,DE22RET机器周期数DELAYl:MOVR6,#0FAH延时125ms子程序1MOVR5,#0FAH1DEI:DJNZR5,$2DJNZR6,DElRETMOVRN,#DATA字节数数为2机器周期数为1所以此指令的执行时间为2msDELAYl为一个双重循坏循环次数为256*256=65536所以延时时间=65536*2=131072us约为125usDELAYR4设置的初值为8主延时程序循环8次,所以125us*8二1秒由于单片机的运行速度很快其他的指令执行时间可以忽略不计。4.3信号灯的显示当定时器定时为1
40、秒,时程序跳转到时间显示及信号灯显示子程序,它将依次信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在信号灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值重新进入循环。4.4.1控制流程图(一)实现功能流程图(二)主功能实现程序流程图:5=?Ol原始程序ORG0000HSJMPORGMAIN0040HMAIN:MOVTMOD,#01HMOVTL0,#OBOHMOVTHO,#3CHSETBTROMOVDPTR,#TABSTART:MOVPl,#OEDH;东西绿,南北红MOV33H,#05H;东西十位数,显示4MOV32H,#04H;南北十位数,显示5
41、MOVR5,#5,十位的控制数LI:ACALLDLYDJNZR5,LlMOVPl,#0E7H;东西黄,南北红MOV33H,#09H;黄灯的十位数字,显示0MOVR5,#lL2:ACALLDLYDJNZR5,L2MOVPl,#ODEH;东西红,南北绿MOV33H,#05H;东西十位数,显示4MOV32H,#06H,南北十位数,显示3MOVR5,#4L3:L4:DLY:DLYl:DLY2:DLY3:ACALLDLYDJNZR5,L3MOVPl,#ODBH;东西红,南北黄MOV32H,#09HMOVR5,#lACALLDLYDJNZR5,L41.JMPSTARTMOV31H,#00HMOVR7,#1
42、0MOVR6,#20;IS延迟程序JBCTFO,DLY3MOVA,31HMOVCA,A+DPTRMOVP3,#0FFHMOVP2,AMOVP3,#OFEH;输出个位数字MOVA,32H;MOVCA,A+DPTRMOVP3,#0FFHMOVP2,AMOVP3,#OFDH;输出南北方向的十位数MOVA,33HMOVCA,A+DPTRMOVP3,#OFFHMOVP2,AMOVP3,#0FBH;输出东西方向的十位数SJMPDLY2MOVTL0,#OBoHMOVTH0,#3CHDJNZR6,DLY2INC31HDJNZR7,DLYlINC32HINC33HRETTAB:DB6FH,7FH,07H,7DH
43、,6DH,66H,4FH,5BH,06H,3FH;软件译码程序,分别代表9,8,7,6,5,4,3,2,1,0END第五章设计感想通过这次的毕业设计,使我得到了一次充分运用专业知识,并利用专业的技能分析和解决问题的全方位的锻炼,真正的去发现自己在这三年的大学中学到了哪些东西,能用哪些相关的知识。这次的毕业设计,使我对单片机的基本原理、单片机的应用系统开发过程,以及在对编程语言的掌握方面都有了很大的提高。对将来从事这方面的工作打下了一定的基础。同时在设计的过程中队原有的要求做了一些改变,使之功能更加的完善,更好的完成本次的设计需要,完美的结果固然重要,但过程是更值得去回忆的。在设计的过程中,我们
44、花了大量的时间和精力去查阅资料和选材,充分了解到合作的重要,要学会与他人合作,共同进步。本设计就是充分利用了89S51芯片的引脚。系统采用MCS-51X系列单片机89S51为中心器件来设计交通灯控制器,实现了红灯循环点亮,倒计时剩5秒时黄灯闪烁提示。系统的不足之处是不能控制车辆的左转、右转、以及根据车流量自定改变红绿灯的时间等。这是根据本地的交通量和交通条件来决定的,如果需要的话可以另外增加相应的功能来实现。参考文献1谢维成杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2006年2余锡存,曹国华编著.单片机微机原理及接口技术M.西安:西安电子科技出版社2000年3张毅坤.单片
45、微型计算机原理及应用.西安:西安电子科技出版社1998年4何立民.单片机应用系统设计.北京:北京航空航天大学出版社1990年5梅丽凤.单片机原理及接口技术.北京:清华大学出版社2004年6李全利.单片机原理和应用技术.北京:高等教育出版社2001年7朱永金,成友才.单片机应用技术(C语言).中国劳动社会保障出版社2007年8付家才.单片机控制工程实践技术.北京:化学工业出版社2004年9潘新民.微型计算机控制技术.北京:人民邮电出版社1999年10蔡美琴,张为民.ttlCS-51系列单片机系统及应用.北京:高等教育出版社1992年11房小翠,王金凤.单片机实用系统设计技术.国防工业出版社1999年