《基于单片机的交通信号灯模拟控制系统设计-毕业设计(论文)任务书.doc》由会员分享,可在线阅读,更多相关《基于单片机的交通信号灯模拟控制系统设计-毕业设计(论文)任务书.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计(论文)基于单片机的交通信号灯模拟控制系统设计The MCU Control System Design Of Traffic Light 一选题意义及背景现代城市生活中,交通显得日渐重要。车辆的逐渐增多、城市道路的拥挤不堪都需要良好的城市道路交通管理,信号灯控制非常重要,本课题针对十字路口的交通情况设计相应的控制时间和控制流程,利用单片机良好的控制功能来进行设计,实用性强。本课题主要利用红、绿、黄三种颜色的发光二极管做信号指示灯,通过编写程序控制信号灯的颜色显示和保持时间,让学生增强动手能力,并进一步了解单片机的工作原理。二毕业设计(论文)主要内容:交通灯控制系统主要包括硬件部分设计
2、制作和软件程序设计两大部分。要求设计的系统能对东西方向和南北方向的车流进行控制,按照设定的时间准确进行显示部分的剩余时间的显示和切换。应完成的主要工作包括单片机的选型、硬件电路设计、电路图绘制、软件程序的设计、实物电路制作等。熟练使用Proteus软件和伟福仿真软件编写程序,模拟电路运行,并完成毕业论文。 利用单片机丰富的IO端口,及其控制的灵活性,实现基本的信号切换和时间显示。三计划进度:第8周 确定分组以及在小组中的分工,通过各种途径查阅资料,确定总体系统设计,购买原材料第9周第10周 系统设计,电路板制作,开始撰写论文第11周 硬件系统基本完成,调试修缮。论文初稿完成第12周 论文修改完
3、善,准备答辩第13周 答辩四毕业设计(论文)结束应提交的材料:1、毕业设计实物2、毕业设计论文3、任务书4、教师评阅书指导教师: 林蒙丹、徐冬云 教研室主任:张明金2011年10月17日2011年10月17日论文真实性承诺及指导教师声明学生论文真实性承诺本人郑重声明:所提交的作品是本人在指导教师的指导下,独立进行研究工作所取得的成果,内容真实可靠,不存在抄袭、造假等学术不端行为。除文中已经注明引用的内容外,本论文不含其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。如被发现论文中存在抄袭、造假等学术不端行为,本人愿承担本声明的法律责任和一
4、切后果。毕业生签名: 日 期: 指导教师关于学生论文真实性审核的声明本人郑重声明:已经对学生论文所涉及的内容进行严格审核,确定其内容均由学生在本人指导下取得,对他人论文及成果的引用已经明确注明,不存在抄袭等学术不端行为。指导老师签名: 日 期: 目 录摘要5ABSTRACT6前言7第一章 单片机的概述81.1 单片机的简介8 1.2 单片机的发展历程9 1.3 典型的单片机产品10第二章 单片机芯片的简介112.1 MCS-51芯片的简介112.2 数码管132.2.1数码管的分类132.2.2数码管的结构13第三章 交通灯的总体设计方案153.1 设计思想153.2 实现方法153.3 交通
5、灯的管理方案论证153.4 系统的硬件设计 16 3.4.1总体设计框图163.4.2硬件接线图173.4.3单片机的最小系统图18第四章 系统的软件设计194.1 计数器的硬件延时194.1.1计数器的初值计算194.1.2计算公式194.1.3 1秒的方法194.2 软件延时204.3 信号灯的显示214.4 程序设计224.4.1控制流程图224.4.2程序源代码24第五章 设计感想27致谢28参考文献29 摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新,在实时检测和自动控制的单片机应用系统中,单片机往往作为核心器件来使用。仅单片机知识是不够的
6、,还应根据具体硬件软件结构结合来加以完善。交通信号灯控制方式很多,一个好的控制系统可以带来诸多的方便,选择实用的单片机更能让其发挥更大的功效。本系统就是采用MCS-51系列单片机AT89S51和可编程并行I/O接口芯片89s51位中心器件来设计交通灯控制器,AT89S51的引脚有更加强大的功能,更是兼容此系列的单片机,同时结合部分外围电路,实现了能根据实际车流量通过89S51的P1口设置红绿灯点亮时间的功能,红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警告,本系统实用性强,操作简单,扩展功能强。关键词: 交通灯 MCS-51 单片机ABSTRACTYears with the rapid devel
7、opment of science and technology.SCM application are deepening at the same time promote more traditional control detection update. In real-time detection and control of the microcomputer application system,the microcontroller is often used as a core component, only the SCM knowledge is inadequate an
8、d should be based on specific hardware architecture hardware and software to be improved.Many ways to control traffic lights. A good controllable traffic light system can be a technological innovation of road congestion, illegal control and other issues In this system,MCS-51 series MCU AT89S51 and p
9、rogrammable parallel I/O interface chip 89s51-centered design of traffic signal controller device to realize the actual traffic volume by 89S51 according to the P1 port chip set of red ,green time kindle function : traffic light cycle of light ,yellow light flashes when the countdown 5 seconds left
10、warning.The system practical ,simple ,powerful extensions.Keywords: traffic light MCS-51 SCM 前 言19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦敦议会大前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯-煤气交通信号灯,在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带
11、转换提灯的颜色。后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。不幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。 直到1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。 黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通
12、用电器公司任职员。一天,他站在繁华的十字路口等待绿灯信号,天津不锈钢岗亭当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。 中国最早的马路红绿灯,是于1928年出现在上海的英租界。从最早的手牵皮带到20世纪50年代的电气控制,从采用计算机控制到现代化的电子定时监控,交通信号灯在科学化、自动化上不断地更新、发展和完善。 纵观交通事业的发展历史,以前,人们出门远行或运输东西最常
13、用到的交通工具是马车,但是随着社会的进步经济的发展,一种新型交通工具汽车随之问世。如1950年英国陆虎公司推出世界上第一台采用燃气涡轮发动机的汽车,1952年美国通用公司推出“别克”牌小轿车, 1956年中国第一汽车制造厂成立,“解放”牌汽车问世。特别是近几年汽车产业更是日新月异,2006年全世界汽车总已产量已超过6400万辆。在汽车产业蓬勃发展的背后,随之而来交通问题也越来越多,如交通堵塞和交通事故时常发生,这不但给人们的生命和财产造成了威胁,同时还制约着国民经济的发展,特别是发达国家和发展中国家面临的形势更是严峻。 为了缓解交通的负荷量,使车辆运行畅通无阻,交通事业整严有序,国家起用了双车
14、道交通灯控制系统。通过红,绿,黄三色灯进行单一的控制,使其遵守红灯停,绿灯行的原则。但是随着社会的发展,天津不锈钢岗亭此系统已经远远不能满足交通控制事业的需求,需要一种全新的控制理念,进而引进了与我国国情相符合的国外先进的控制体系,多车道交通灯控制系统,不但解决以往交通控制系统的局限性,同时还加快车了车流辆速度。并制定了第三十八条明确规定:绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行, 黄灯亮时,已越过停止线的车辆可以继续通行,红灯亮时,禁止车辆通行。第一章 单片机的概述1.1 单片机的简介单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontrolle
15、r Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这
16、一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入
17、式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。1.2
18、 单片机的发展历程1971年intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国经济学家杂志列为“二战以来最有影响力的7位科学家”之一 。 1971年11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器 )其中4004(下图)包含2300个晶体管,尺寸规格为3mm4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。 1972年4月,霍夫等人开发出第
19、一个8位微处理器Intel 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。 1973年Intel公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。 主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为0.64MIPS(Million Instructions Per Second )。 1975年4月,MITS发布第一个通用型Altair 8800,售价375美元,带有1KB存储器。这是世
20、界上第一台微型计算机。 1976年Intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。 ZILOG公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,ZILOG、Motorola和Intel在微处理器领域三足鼎立。 20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。1.3 典型的单片机产品Intel 是最早推出单片机的公司之一,主要有MCS-48、MCS-51系列8位单片机和MCS-96系列的16位单片机
21、。在二十世纪八、九十年代MCS-51和MCS-96曾经是我国最流行的单片机,得到最广泛的应用.国内具有很多型号的51/96仿真器,至今仍有不少的用户。这几年Intel公司注重于奔腾系列的微处理器,高档嵌入式系统等的开发没有推出新的单片,而ATMEL公司有很多和MCS-51兼容的高性能单片机。Motorola公司主要有MC68HC05、MC68HC11、MC68HC08系列的8位单片机,MC68C12、MC68HC16系列16位单片机.MC68HC908是新型的FLASH型单片机,功能强,型号多,又有国产的廉价仿真器的支持,在我国得到了广泛应用。东芝公司主要有TLCS-870、TLCS-870/
22、X、TLCS-870/C等系列的8位单片机,TLCS-900系列的16位单片机,这些单片机是近几年推出的新型单片机,功能强、可靠性高,.国内推出了tlcs-870、tlcs-870/c系列单片机的廉价开发工具(STFB和STF870/C),使这两个系列的单片机引起国内用户的重视,近两年来开始流行,特别是在家用电器领域得到广泛的应用。世界上其他的半导体公司,如美国的国际半导体,日本的日立、三菱、NEC、富士通公司、韩国的三星公司、荷兰的Philips公司等都有他们的单片机系列产品。从应用的角度看,各个公司的新型单片机的结构和功能大体上相似,从应用的广度看,8位单片机应用最广泛。在开发一个应用产品
23、时,选用哪一个型号的单片机取决于开发成本、生产成本以及是否有廉价的开发工具的支持。、第二章 单片机芯片的简介2.1 MCS-51芯片简介AT89S51是MCS-51系列单片机的典型产品,它是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解
24、决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。其管脚图如图1所示;图1 AT89S51的引脚图现在我们对AT89S51的40个管脚的功能加以说明:1主电源引脚VCC:电源电压输入端。 GND:电源地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据
25、存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。2.控制引脚 RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉
26、冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EA/VPP:外部程序存储器访问允许。当EA保持低电平时,
27、则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 3.外接晶振引脚XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 XTAL2:片内振荡器反相放大器的输出端。4.可编程输入/输出引脚AT89S51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。每一根引脚都可以编程,比如用来控制电机、交通灯、霓虹灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能。
28、PO口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7 P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7经过对AT89S51和之前的MCS-51系列单片机的比较,以下是其主要性能特点1、4k Bytes Flash片内程序存储器; 2、128 bytes的随机存取数据存储器(RAM); 3、32个外部双向输入/输出(I/O)口; 4、5个中断优先级、2层中断嵌套中断; 5、6个中断源; 6、2个1
29、6位可编程定时器/计数器; 7、2个全双工串行通信口; 8、看门狗(WDT)电路; 9、片内振荡器和时钟电路; 10、与MCS-51兼容; 11、全静态工作:0Hz-33MHz; 12、三级程序存储器保密锁定; 13、可编程串行通道; 14、低功耗的闲置和掉电模式; 看门狗(WDT)电路的主要是实现复位功能,当单片机运行出现死循环时,看门狗(WDT)电路可以起保护功能,实现复位作用。2.2 数码管2.2.1数码管分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方
30、式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。2.2.2数码管结构LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的
31、器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等. led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。SM220501K是一个两位
32、数共阴极的数码管,a,b,c,d,e,f,g,就是数码管的段码 dip就是数码管的小数点,11、10为位选信号。例如:如果给b,c送高电平,11接地,左边的数码管会显示1,在本次设计中11为十位的位选信号。如果b,c送高电平,10接地,右边的数码管会显示1,在本次设计中为个位的位选信号。下面将介绍常用LED数码管内部引脚图片 图2 是一个两位7段带小数点的10引脚的LED数码管。 图3是 引脚的定义 ,其中DP表示的是小数点。图4是原理图。 图2 实物图 图3 引脚图 图4 原理图第三章 交通灯的总体设计方案3.1 设计思想(1)通过交通信号灯控制系统的设计,掌握at89s51并行口传输数据的
33、方法,以控制发光二极管的亮与灭。(2)用at89s51作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理。(3)通过单片机控制设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。(4)完成控制系统的硬件设计、软件设计、仿真调试。(5)由于对面对的两个交通灯现象一样,同时合为一个,所以设计中控制6个灯就可以了。3.2 实现方法(1)在设计中利用软件程序延时的方法来控制红(绿)的亮的时间。考虑延时时间较长所以先用T0产生终端然后通过计数的方法来实现延时。利用口的P1.1、P1.2、P1.3作为红绿灯控制端口。(2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一
34、块与P1.1相连。同样南北向的红灯连在一块,东西向的绿灯连在一块,他们一块与P1. 2相连,四个黄灯连在一块与P1.3相连。3.3 交通灯的管理方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道方向为主干道南北方向为从干道,四个路口安装红,黄,绿,灯各一盏。如图5所示:图5 十字路口指示灯燃亮的方案如下 50S 10S 40S 10S 东西道 红灯亮 黄灯亮 绿灯亮 黄灯亮 南北道 绿灯亮 黄灯亮 红灯亮 黄灯亮 根
35、据指示灯燃亮的方案,对其做个详细的说明: (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为50秒。(2)黄灯闪烁10秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为40秒。 东西方向车流大 通行时间长。(4)这样如上方案的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)此表可根据车流量动态设定红绿灯初始值。3.4 系统的硬件设计3.4.1 总体设计框图 AT89S51东西交通灯(2组) 复位电路南北交通灯(2组) 振荡电路2
36、位LED显示器(4组)图6 交通控制系统总体框图3.4.2 硬件接线图根据上面的接线图各引脚的分配如下:P1.0、P1.2、P1.4分别作为南北绿灯、黄灯、红灯的控制端。P1.1、P1.3、P1.5分别作为东西绿灯、黄灯、红灯的控制端。P2.0、 P2.1、 P2.2、 P2.3、P2.4、 P2.5、P2.6、P2.7作为两段数码管a、b、c、d、e、f、g的显示控制端,其中P2.7接得是小数点dp端。P3.0、P3.1、P3.2接的是数码管的位选信号端。 3.4.3 单片机的最小系统图 单片机系统需要实验板一块,电容8个,电阻3个,12兆晶振一个,按钮一个,40管教插槽一个,导线若干,小l
37、ed灯一个,89S51芯片一片等单片机系统包括单片机、晶振电路、复位电路。 图7 单片机最小系统复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号.为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。振荡电路的基本功能是:为单片机的工作提供了所需要的时钟脉冲信号,使单片机的内部电路和内部程序开始工作。振荡电路若不工作,整个单片机电路都不能正常工作。各引脚分别对地接了一个30pF的电容,其目的是防止单片机的自激。第四章 系统的软件设计4.1 计数器的硬件延时 4.1.1 计数器的初值计算定时器工作时必须给计数器
38、送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式: TC=M-C式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为284.1.2 计算公式T=(MTC)T计数 或TCMTT计数T计数是单片机时钟周期TCLK的12倍;TC为定时初值如单片机的主脉冲频率为TCLK12MHZ ,经过12分频方式0 TMAX213 1微秒8192毫秒方式1 TMAX216 1微秒65536毫秒 显然1秒钟已经超过了计
39、数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。4.1.3 1秒的方法 采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断他是否为零。为零表示1秒已到可以返回到输出时间显示程序。软件延时MCS-51的工作频率为2-12MHZ,选用的at89s51的单片机的工作频率为12MHZ。机械周期与主频有关。机械周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2US。可以知道具体每条指令的周期数,这种既可以通过指令的
40、执行条数来确定1秒的时间。以下是相应程序代码(1)主程序 定时器需定时50毫秒,故T0工作于方式1。 初值: TCMT T计数 21650ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ; 令TO为定时器方式1 MOV TH0, #3CH ;装入定时器初值 MOV TL0, #BOH ; MOV IE, #82H ;开T0中断 SEBT TRO ;启动T0计数器 MOV RO, #14H ;软件计数器赋初值LOOP: SJMP $ ;等待中断(2)中断服务子程序 ORG 000BH AJMP BRT0 ORG 00BH BRTO:DJNZ
41、R0,NEXT AJMP TIME ; 跳转到时间及信号灯显示子程序 DJNZ:MOV RO,14H ;恢复R0值 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH ; MOV IE, #82H RET1END4.2 软件延时 MCS-51的工作频率为2-12MHZ,我们选用的AT89S51单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。其流程图如图8所示开始键盘事件处理初始化定时器中断程序 等待键盘事件图8
42、软件系统流程图下面是我对具体的延时程序分析:DELAY: MOV R4,#08H 延时1秒子程序 1DE2: LCALL DELAY1 1 DJNZ R4,DE2 2 RET 机器周期数 DELAY1:MOV R6,#0FAH 延时125ms 子程序 1 MOV R5,#0FAH 1DE1: DJNZ R5,$ 2 DJNZR6,DE1 RETMOV RN,#DATA 字节数数为2 机器周期数为1所以此指令的执行时间为2ms DELAY1 为一个双重循坏 循环次数为256*256=65536 所以延时时间=65536*2=131072us 约为125us DELAY R4设置的初值为8 主延时
43、程序循环8次,所以125us*8= 1秒 由于单片机的运行速度很快其他的指令执行时间可以忽略不计。 4.3 信号灯的显示当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依次信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在信号灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值重新进入循环。4.4 程序设计4.4.1 控制流程图(一) 实现功能流程图(二) 主功能实现程序流程图 4.4.2 程序源代码 原始程序ORG0000HSJMPMAINORG0040HMAIN:MOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBTR0MOVDPTR,#TABSTART:MOVP1,#0EDH;东西绿,南北红MOV33H,#05H;东西十位数,显示4MOV32H,#04H;南北十位数,显示5MOVR5,#5,十位的控制数L1:ACALLDLYDJNZR5,L1MOVP1,