交通信号灯控制系统原理 基于51单片机的交通信号灯控制系统设计毕业综合实践报告

来源:商务英语 发布时间:2020-03-20 点击:

  

 毕业综合实践报告

 题目:基于单片机信号灯控制系统设计

 姓

 名

  学

 号

  学

 院

 应用科技学院 专

 业

 电子信息工程 指 导 教 师

  企业指导教师

  协助指导教师

  20XX年 0X 月 X 日

 摘

  要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为核心器件来使用。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。交通信号灯控制方式很多,本系统采用MSC-51系列单片机AT9S51和可编程并行I/O接口芯片89S51位中心器件来设计交通灯控制器,实现了能根据实际车流量通过89S51的P1口设置红绿灯点亮时间的功能,红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警告,本系统实用性强,操作简单,扩展功能强。交通的亮灭规则为:初始状态南北方向红灯亮,东西方向绿灯亮,延迟50s后,东西方向黄灯亮。延迟10s后,南北方向绿灯亮,同时东西方向红灯亮,延迟40s后,南北黄灯亮,延迟10s后,南北方向红灯亮,东西方向黄灯亮,重复上述过程。

 关键词:交通灯

 AT89S51

 单片机

  目 录

 摘要 I 第1章 绪论 1 1.1 课题背景 1 1.2 国内外研究现状 1 1.3 课题研究的内容及拟采取的方法 2 第2章 单片机概述 4 第3章 芯片简介 9 3.1 AT89C51芯片简介 9 3.2 74HC244芯片简介 12 3.3 LED晶体管分析 15 第4章 设计思路 18 第5章 交通信号灯硬件设计 23 5.1 焊接技术 23 5.1.1 导线的焊接 23 5.1.2印制电路板的焊接 23 5.2 系统调试 24 结 论 25 参考文献 26 致 谢 27

  1绪

 论 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。 交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。随着中国加入WTO,我们不但要在经济、文化等各方面与国际接轨,在交通控制方面也应与国际接轨。如果交通控不好道路还是无法保障畅通安全。作为交通控制的重要组成部份单片机。因此,本人选择制作交通灯作为课题加以研究。 我国大中城市交通系统压力沉重。交通管制当以人性化、智能化为目的,做出相应的改善。以此为出发点,本系统采用的单片机控制的交通信号灯。该系统分为单片机主控电路、键盘控制电路和显示电路三部分组成。并在软硬件方面采取一些改进措施,实现了根据十字路口车流量、进行对交通信号灯的智能控制,使交通信号灯现场控制灵活、有效从一定程度上解决了交通路口堵塞车辆停车等待时间不合理等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广阔的应用前景。 1.1 交通灯的研究背景 随着城市经济的高速发展,机动化交通在城市交通中所占的比例不断增加。但以机动车交通为主体的交通发展方式也给城市带来了诸多问题。道路上汽车数量的增加,使得尾气污染、交通拥堵、交通事故等愈加严重,同时也降低了城市居民的出行安全保障(夏天,2010)。城镇道路建设由于历史等原因的相对滞后,人们也越来越受到交通拥堵、交通事故频发等问题所带来的困扰,特别是街道的各十字路口,更成为交通网中通行能力的隘口和交通事故的多发源(覃娴,2012)。 交通安全问题不仅仅是交通领域的问题,它的严重程度已经成为社会问题。根据联合国和世界卫生组织的有关报告,人们每天所而对的各种问题中,道路交通伤害是最复杂也是最危险的。据估计,全世界每年约有120万人死于道路交通事故,受伤者多达5000万人。如果不采取强有力的预防措施,今后20年中道路交通事故致死和受伤人数将增加65%左右。交通安全已经成为一个波及社会各个部门的全球性问题。 世界卫生组织的报告指出,全世界每天有3000多人死于道路交通伤害。因道路交通伤害引起的85%的死亡以及90%的伤残调整寿命年发生在中、低收入国家。研究表明,2000到2020年,道路交通事故死亡人数在高收入国家将下降30%左右,而在中、低收入国家则会大幅度增加,如果不采取适当措施,到2020年,道路交通伤害预计将成为全球疾病与伤害负担的重要原因(王笑京,2008)。 交通问题是世界各国面临的共同问题。交通拥挤造成了巨大的时间浪费,加大了环境污染。我国大多数城市的平均行车速度已降至20km/h以下,有些路段甚至只有7-8km/h;由于车辆速度过慢,尾气排放增加,使得城市的空气质量进一步恶化。 交通问题造成了巨大的经济损失,据研究报道,美国每年因交通阻塞造成的经济损失约410亿美元,日木东京每年因交通拥挤造成的时间损失相当于1000多亿美元。为了缓解经济发展带来的交通运输方面的压力,尽量的利用现有的资源,使其发挥最大的作用,各国都加大了对智能交通系统的研究和建设的力度(梁琳,2008)。 1.2

 国内外科研现状 智能交通系统的研究和推进在我国还处于起步阶段,但ITS作为跨世纪经济增长点和交通系统建设必然选择的重要性已得到国家相关部门的高度重视。1998年1月交通部正式批复成立交通智能运输系统工程研究中心(ITSC)。为加强该中心在交通智能交通系统的开发及试验能力,投资1400万元建设交通智能运输系统中心试验室,将为今后国家制定道路交通运输的发展和政策提供科学依据,现已完成了“交通智能运输系统发展战略研究”。1998年2月,在国家科委的领导下,交通智能交通系统工程研究中心还与欧盟合作成立了中欧ITS信息服务中心(STICNISC/ITS),并于同年7月正式向国际社会提供基于Internet的信息咨询和技术服务。 1.3 智能交通在东亚地区的发展情况 韩国的智能交通系统示范工程选在光州市,该工程预计耗资100亿韩元(1250万美元),选取了交通感应信号系统、公交车乘客信息系统、动态线路引导系统、自动化管理系统、即时播报系统、电子收费系统、停车预报系统、运行中测重系统、智能交通系统中心建立9项内容进行开发和检测智能交通系统技术和效益,并以此验证智能交通在韩国的适用性。香港早在1977年就在九龙设置了一套电脑化区域交通控制系统,现在全港约有320组交通灯由电脑控制,有利于车辆尽快通过交叉口的时间。公路上所有车辆都配有无线对讲机,随时向公司报告行车情况并接受公司的行车指示。

 2单片机概述

 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。    早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。    单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。   单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。    单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。    它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!    由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。    可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

 第三章 芯片简介 3.1 AT89C51芯片简介 1、 主要元器件介绍

   单片机主控电路的主要元件是AT89C51,

   AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技能生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的处理方案。

    AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规要领执行 编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

 2、管脚说明:VCC:供电电压。

   GND:接地。

   P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH执行 校验时,P0输出原码,此时P0外部必须被拉高。

   P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

   P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器执行 存取时,P2口输出地址的高八位。在给出地址“1”时,它运用 内部上拉优势,当对外部八位地址数据存储器执行 读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

   P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

   P3口也可作为AT89C51的一些特殊功能口,如下表所示:

   口管脚 备选功能

   P3.0 RXD(串行输入口)

   P3.1 TXD(串行输出口)

   P3.2 /INT0(外部中断0)

   P3.3 /INT1(外部中断1)

   P3.4 T0(记时器0外部输入)

   P3.5 T1(记时器1外部输入)

   P3.6 /WR(外部数据存储器写选通)

   P3.7 /RD(外部数据存储器读选通)

   P3口同时为闪烁编程和编程校验接收一些控制信号。

   ST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。   ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要留心的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管能不能有内部程序存储器。留心加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.2 74HC244芯片简介 74HC244芯片是一个八同相三态缓冲器/线驱动器如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如图3-1所示。

 图3-1 74HC244芯片的引脚排列

 74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。 当I/O和2/OE都为低电平时,输出端Y和输入端A状态相同;当I/O和2/OE都为高电平时,输扩展阅读: 74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1C和2G都为低电平时,输出端Y和输入端A态相同;当1G和2G都为高电平时,输出呈高阻态。 3.3 LED晶体管分析 简单的LED显示器有LED状态显示器(俗称发光二极管)、7段LED显示器(俗称数码管)和16段LED显示器。发光二极管用于显示系统的两种状态;数码管用于显示数字;LED16段显示器用于字符显示。这里用7段数码管。 7段数码管由8个发光二极管构成,通过不同组合可用来显示数字0~9,字符A~F、H、L、P、R、U、Y等及减号“-”与小数点“.”其外形结构及动静态显示共阴阳接法如图3-2所示:

 图3-2 数码管图及动静态显示共阴阳接法图

 第四章 设计思路 本设计采用MSC-51系列单片机来设计交通灯控制器,能根据实际车流量设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示;东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。

 (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为60秒(可设定)。

 (2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。

 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒(可设定)。东西方向车流大通行时间长。 本设计在东、西、南、北四个方向各有红黄绿三个灯,在东西方向有两个数码管,在南北方向也有两个数码管。实际交通通路图4-1如下: 西 北 东 南

 图4-1实际交通通路

 第五章 交通信号灯硬件设计 5.1交通信号灯硬件设计说明 本系统选用MSC-51系列的AT89C51单片机作为控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89C51单片机的驱动能力有限,所以信号灯控制器由两片74HC244实现总线的驱动,一个74HC244完成位控的控制和驱动,另一个74HC244完成数码管的7段输出,在输出口上个串联一个100欧姆的电阻和7段数码管限流。通过P2用做输出显示控制口。P0口通过电阻和数码管控制LED数码管实现交通倒计时的记录,P3.0~P3.5则实地点亮红绿黄灯的控制,P1口当做普通输入口直接控制人行道红绿灯规律变化。当单片机复位之后,默认处于倒计时模式,启动定时器,定时器每隔150us溢出一次,根据定时器溢出次数来计时,到1秒时将时间的计数器减一,当“设置键”按下,存放倒计时初值的空间由0变为1,切换到设置模式。可以使用“递增键”“递减键”对计时初值进行修改。按下“确认键”时,回到计时模式开始以新的初始值进行倒计时,当倒计时为0时,存放时间的空间里的内容由1变为2,处于闪烁状态,在这种状态下,根据按键的情况有分别切换到计时和设置状态。 5.2电源电路 电源电路具体模拟电路图5-1所示:

 图5-1电源模拟电路 5.3 总体硬件设计 交通信号灯采用发光二极管共阴极接法,当输入高电平时二极被点亮。图为对应的交通信号灯的电路图为图:

 图5-3 交通信号灯的红绿灯电路图 其中D1,D4,D6为东西方向红绿灯,D2,D3,D5也为东西方向红绿灯,D8,D10,D12为南北方向红绿灯,D7,D9,D11为南北方向红绿灯。 5.4 交通信号控制码 交通灯控制电路的核心元件采用单片机AT89C51,其内部带有4KB的ROM,无须扩展存储器。 信号灯的控制由单片机的p1.0~p1.5控制,6个信号灯以共阴极方式连接,当P1口输出为高电平时信号灯点亮,为实现上述控制要求,P1口共输出四种控制码如表5-1所示:

  表5-1 P1口输出控制码列表

  B道绿灯 B道黄灯 B道红灯 A道绿灯 A道黄灯 A道红灯 控制码 状态说明 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 0 0 0 0 1 1 0 0 0CH A道放行B道禁止 0 0 0 0 1 0 1 0 0AH A道警告B道禁止 0 0 1 0 0 0 0 1 21H A道禁止B道放行 0 0 0 1 0 0 0 1 11H A道禁止B道警告 5.5倒计时显示设计 要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断时间的时间间隔,再利用一个变量记录定时器的溢出的次数,达到定时1秒的功能。当即使每到1秒后,东西、南北信号灯个状态的暂存剩余时间的变量减1。但暂存变量的时间减到0时,切换至下一个状态,如此循环重复执行。 本设计采用动态扫描,用4个数码管分别显示东西、南北的倒计时,将暂存各状态剩余时间的数字从变量中提取出“个位”和“十位”,用动态扫描的方式在数码管中显示。整个程序依据定时器的溢出数来计时,每计时1秒则相应状态的时间减1,一直减到0时触发下一个状态的开始。其具体显示状态如图5-4所示:

 图5-4 动态扫描LED显示 5.6复位电路设计 单片机复位是使CPU初始化操作,主要是使CPU与其他功能部件都处在一个确定初始状态,并从这个状态开始工作。复位后PC=0000H,是单片机从第一个单元取指令。无论是在单片机刚接上电源时还是断电后或者发生故障后都要复位。 单片机复位期间不产生ALE和PSEN信号,即ALE=0和PSEN=1,复位期间不会有任何取指令操作。 在RST引脚持续加上两个机器周期(24个振荡周期)的高电平,单片机即发生复位。例如,若时钟频率为12MHz,每个机器周期为1us,则只需2us以上时间的高电平即可实现复位。复位电路图如图5-5所示:

 图5-5 复位电路 该电路除具备上电复位功能外,若要复位,则只需按图中的RESET键,此时,电源Vcc经电阻R1、R2分压,在RST端产生一个复位高电平。 复位后内部各专用寄存器状态如表5-2所示,其中“@”表示无效位。 表5-2 专用寄存器状态显示表 寄存器 复位状态 寄存器 复位状态 PC 0000H TMOD 00H ACC 00H TCON 00H B 00H TL0 00H PSW 00H TH0 00H SP 07H TL1 00H DPTR 0000H TH1 00H P0~P3 FFH SCON 00H IP @@000000B SBUF 不定 IE 0@@00000B PCON 0@@@0000B

 5.7 时钟电路设计 时钟电路用于产生单片机工作所需要的时钟信号,唯一的时钟信号控制下的时序可以保证单片机各部件的同步工作。根据产生的方式不同分为内部和外部两种时钟电路,本设计使用内部时钟,电路图如5-6所示:

 图5-6 内部时钟电路图 89c51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为芯片引脚XTAL2。而在芯片外部,XTAL1和XTAL2之间由用户自行跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。 ALE引脚上出现的信号时周期性的,在每个机器周期内两次出现高电平,ALE信号每出现一次CPU就进行一次取址操作,但由于不同指令的字节数和机器周期数不同,因此取址指令操作也随指令不同而有小的区别。 5.8键盘设计 由于键盘数量不多,选择独立式按键与P1口连接作为四个按键的输入,每个按键单独占用一根I/O口线,每个按键的工作不会影响其他I/O口线的工作状态。 当逐位查询每根口线的输入状态时,如某一根口线输入低电平,则可确认该口线所对应的键已按下,然后,再转向该键的功能处理程序。 用四个键S1、S2、S3、S4以及两个用来提示键盘状态的LED电路图如图5-7所示:

 图5-7 按键电路图 四个按键的功能依次是: S1(设定键):在倒计时模式时,按下此键后倒计时停止倒计时,进入设置状态;如果已经处于设置状态则此键无效。 S2(减一键):在设置状态时,每按一次递减键,初始值的数字减1。 S3(增一键):在设置状态时,每按一次递增键,初始值的数字增1。 S4(确认键):在设置状态时,按下此键后,单片机按照新的初始值进行倒计时及显示倒计时的数字。如果已经处于计时状态则此键无效。 在实现键盘的扫描和运行模式的切换时,主程序在初始化一些变量和寄存器之后,需要不断循环地读取键盘的状态和动态扫描数码管显示相应的数字,根据键盘的键值实现设置状态、计时的切换。

  第六章 交通信号灯软件设计 软件设计应用汇编语言,以其较好的可读性和可移植性很好的完成了本次设计任务。程序设计上使用定时器0中断开控制交通灯的正常工作。定时器1中断控制特殊车辆的通行时间;外部中断INT1用于紧急情况、流量控制和恢复等,外部中断INT0用于特种车辆通行处理。系统采用两个状态标志位来记录交通灯的循环状态。 程序流程图如下:

 A道禁止B道警告 延时

 显示 置显示初始值 延时 显示 A道警告B道禁止 延时5s A道禁止B道放行 A到放行B道禁止 延时时 显示 开始

 初始化

 显示初始值设置 中断响应 保护现场 A道放行B道禁行 延时10s 恢复现场 返回 延时1ms 返回 显示个位数 延时1ms 显示次数=0? R2

 十位数 设置显示次数 秒个位数转字形码 R1个

 位数 秒十位数转字形码 拆分秒数 开始 显示秒数减1 秒数转十进制 Y 返回 显示个位数 延时1ms 显示次数=0? R2

 十位数 设置显示次数 秒个位数转字形码 R1个

 位数 秒十位数转字形码 拆分秒数 开始 显示秒数减1 秒数转十进制 Y 延时1ms 返回 显示个位数 延时1ms 显示次数=0? R2

 十位数 设置显示次数 秒个位数转字形码 R1个

 位数 秒十位数转字形码 拆分秒数 开始 显示秒数减1 秒数转十进制 Y N 延时1ms 显示十位数

 图6-1 程序流程图 红绿灯的8位LED动态显示子程序如下:

 显示子程序入口 延时1ms 取代显示数据查表换成相应端选码→P0口 右移一位,显示下一位

 动态显示初始化

 显缓指针加1

 89C51初始化 程序设计P2口位选码 8位显示完吗? 返回

 图6-2 程序流程图

 总结 经过这一个多的查资料、设计与思考,毕业论文已基本完成。 刚开始时头脑一片空白,没有一点思路,不知道从何插手,由于以前都是学一些书本上的死的知识,根本不会灵活应用,而且也没做过什么太接近现实的设计,所以那时一直很茫然,在网上查资料也不知道从何查起,原来学的东西跟实际操作有很大的脱节,开始时有过放弃的念头,后来辅导老师告诉我们怎么查资料,针对课题向哪个方向考虑,我们头脑中才有了个清晰的思路。后来开始做了,也往图书馆跑了好多次,但书面上的资料很少,很多都是从网上查的。开始那时查到的资料都是一些简单的材料堆砌,没有一个核心,后来经过我们小组的商量,我们大浪淘沙从其中挑选了一些很有价值的材料,再加上我们自己的一些思路,论文很快有了轮廓。然后就是根据各个环节再针对性的找资料,而且把一些学过的一些知识也很好的糅合在论文中。 整个过程中也遇到很多困难,不是芯片不合适就是接口不知怎么接,但在班集体这个知识的讨论的小集体里困难一个个都迎刃而解。整个过程让我明白了一句话“办法总比困难多”。 通过毕业论文我对原来学过的知识有了更深的理解,原来想着在大学里学不到很多东西,直到做完毕业,才知道是自己不会联系实际应用!当设计接近尾声的时候回顾设计的整个流程,才发现有好多东西都需要更深一步的学习。 原来听说自己的专业是个热门专业,同时也是当下市场分析中最受欢迎的一个,而且他的就业面相当宽,但自己对它了解的不是很多,做毕业设计的时候才知道自己掌握的东西有多么少。 现在已面临毕业,这次设计对以后我的学习态度,以及面以后走上工作岗位后的生活也有很大的影响。

  致

 谢 本设计历时一个月左右,经过资料的搜集、整理加工,最终基本完成。并对课题有了较深的理解。在这里首先感谢辅导老师xx老师对我的精心辅导。毕业设计是各门课程综合应用的一次锻炼,通过知识的回顾,结合本次毕业设计,提高了知识应用水平和科学思维方法,达到了学以致用的目的。 在本毕业设计期间,得到了XX老师耐心指导,学到了一定的设计方法,从而使我能够比较顺利地完成设计。我想以后的生活中我会充分应用老师所提供给我的经验和知识,达到学以致用的目的。经过多天的不懈努力终于完成了。 直到最后设计完成的时候才知道老师的良苦用心。

 参考文献 [1] 高泽溪,高成. 直接数字频率合成器(DDS)及其性能分析. 北京:北京航空航天大学出版社,2002, 187~191 [2] 白居宪. 低噪声频率合成. 西安:西安交通大学出版社,1995,224~230 [3] 褚振勇,翁木云. FPGA设计及应用. 西安:西安电子科技大学出版社,2003,219~263 [4] 房小翠,王金凤. 单片微型计算机与机电接口技术. 北京:国防工业出版社,2002,79~86 [5]皮红梅,李英顺. 单片机开发中的定时方法. 沈阳:石油化工高等专科学校学报,2002,171~192 [6]何利民. 单片机应用系统设计. 北京:北京航空航天大学出版社,1991,21~33 [7] 李珍. 单片机原理与控制技术. 北京:清华大学出版社,2002,149~158 [8] 范立南. 单片微机接口与控制技术. 沈阳:辽宁大学出版社,1996,69~77 [9] 张友德. 单片微型机原理、应用与实践. 上海:复旦大学出版社,1992,73~81 [10] 李华. MCS-51系列单片机实用接口技术. 北京:北京航空航天大学出版社,1993,23~31 [11] 何希庆,高伟.

 MCS-51单片机原理、实验、实例. 山东:山东大学出版社,1989,124~136 [12] 张毅刚,彭喜元,姜守达. 新编MCS-51单片机应用设计. 哈尔滨:哈尔滨工业大学出版社,2003,153~168 [13] 胡汉才. 单片机原理及接口技术. 北京:清华大学出版社,1996,66~78 [14] 廖焕霖. Protel 99电路板设计者必读. 北京:冶金工业出版, 2000,108~128

 [15] 张义和. Protel PCB 99设计与应用技巧. 北京:科学出版社,2000, [16]李云,杨玉峰,梅顺良.ITS系统中GPRS智能移动终端的设计.电讯技术,2006.044(004):96 [17]余发山. 单片机原理及应用技术. 中国矿业大学出版社. 2003 [18]杨凌霄. 微型计算机原理及应用. 中国矿业大学出版社. 2004 [19]张凯,马忠梅编著.MCS-51单片机综合系统及设计开发.北京:科学出版社,1996 [20]何立民编著.单片机高级教程.北京:北京航空航天大学出版社,2000

 附录A: 软件程序编程 主程序: ORG

 2000H MOV

 DPTR,#7F00H;

 MOV

 A,#0BH

  ;PA、PC口均为输出

 MOVX

 @DPTR,A; MAIN:

  SETB

 EA

  ;开中断

 SETB

 EX0;

 MOV

 50H, #1FH

  ;设置时间显示初值;

 MOV

 P1, @0CH

  ;A道放行B道禁止

 MOV

 R7, #19H

 ;延时秒数 MAIN1:

 LCALL

 DISP

 ;调1秒延时、及显示子程序

 DJNZ

 R7, MAIN1;

 MOV

 P1, #0AH

 ;A道警告B道禁行

 MOV

 R7, 05H

  ;延时秒数 MAIN2:

 LCALL

 DISP;

 DJNZ

 R7, MAIN2;

 MOV

 50H, #1FH

  ;设时间显示初值 MOV

 P1, #21H

 ;A道禁行B道放行 MOV

 R7, #19H

 ;延时秒数 MAIN3:

 LCALL

 DISP; DINZ

 R7, MAIN3; MOV

 P1, #11H

  ;A道禁行B道警告 MOV

 R7, #05H

  ;延时秒数 MAIN4:

 LCALL

 DISP; DJNZ

 R7, MAIN4; AJMP

 MAIN

  ;循环 ================= 计数器软件延时======================== 延时显示子程序: ORG

 2000H; DISP:

 MOV

 R6, #01H

  ; 设置显示位寄存器初值(右边一位) MOV

 TMOD, #01H

  ; 定时计数器T0设置为定时方式的模式1 MOV

 R5, #0AH

 ; 定时其操作循环10次 DEL1:

  MOV

 TH0, #3CH

  ; 定时器100ms计数器的初值 MOV

 TL0, #B0H ; SETB

 TR0

  ;启动定时器 DEL2:

  DEC

 50H

  ;显示秒数减1 MOV

 B, #0AH; DIVB

  ;拆分秒数 ADD

 A, #2BH; MOVC

 A, @A+PC

  ;查表个位数的字型码 MOV

 R1, A

  ;个位数字型码送R1 MOV

 A, B; ADD

 A, #25H; MOVC

 A, @A+PC

  ; 查表十位数的字型码 MOV

 R2, A

  ; 十位数字型码送R2 MOV

 A, R6

  ;位控码 MOV

 DPTR, #7F03H; MOVX

 @DPTR, A; MOV

 A, R1

  ;送个位数显示 MOV

 DPTR, #7F01H; MOVX

 @DPTR, A; LCALL

 DELAY

 ;延时1ms MOV

 A, R6; RL

 A

  ;位控左移 MOV

 R6, A; MOV

 DPTR, #7F03H; MOVX

 @DPTR, A; MOV

 A, R2

 ;送十位数显示 MOV

 DPTR, #7F01H; MOVX

 @DPTR, A; LCALL

 DELAY

  ;延时1ms JNB

 TF0, $

  ;检测100ms循环控制 CLR

 TF0; DJNZ

 R5, DEL1

  ; 100ms循环控制 RET

  ;返回 TABLE:

 DB

 COH, F9H, A4H, B0H, 99H; DB

 92H, 82H, F8H, 80H, 90H; DELAY:

 MOV

 R7, #02H

  ;延时1ms子程序 DEL3:

  MOV

 R6, #0F9H; DEL4: :DJNZ

 R6, DEL2; DJNZ

 R7, DEL1; RET END =======================中断服务程序========================== ORG

 0003H

  ;外中断0入口地址 LJMP

 INTER0; ORG

 2100H; INTER0:

  PUSH

 50H

 ;保护现场 PUSH

 P1; MOV

 P1, #00H

 ;两车道禁止 MOV

 R7, #0AH

  ;延时10秒 INT0:

 LCALL

 DISP

 ;调显示 DJNZ

 R7, INTO; POP

 P1

  ;恢复现场 POP

 50H; RET1

 ;中断返回 0.5秒延时子程序: DELAY:

  MOV

 R3, #0AH; MOV

 TH1, #3CH; MOV

 TL1, #0B0H; SETB

 TR1; LP1:

 JB

 CTF1, LP2; SJMP

 LP1; LP2:

 MOV

 TH1, #0B0H; DJNZ

 R3, LP1; RET END ====================独立式按键编程============================ KEY:

  ORL

 P1, #0F0H

 ;置P1.4~P1.7为输入状态 MOV

 A, P1

  ;读键值,键闭合相应位为0 CPL

 A

  ;取反,键闭合相应位为1 ANL

 A, #11110000B

  ;屏蔽低四位保留有键值的高四位 JZ

 GRET

  ;全0,无键闭合,返回 LCALL

 DLY10ms

  ;非全0,有键闭合,调10ms延时子程序 MOV

 A, P1

  ;重读键值,键闭合为0 CPL

 A

  ;取反,键闭合相应位为1 ANL

 A, #11110000B

  ;屏蔽低四位保留有键值的高四位 JZ

 GEET

  ;全0,无键闭合,返回,非全0确认有键闭合 JB

 ACC.4, KEY1

  ;转1#键功能程序 JB

 ACC.5, KEY2

  ;转2#键功能程序 JB

 ACC.6 KEY3

  ;转3#键功能程序 JB

 ACC.7 KEY4

  ;转4#键功能程序

 GRET:

  RET;

 =======================显示子程序================================== DISP:

  JNB

  P2.4, T02; DISP1:

 MOV

 B, #0AH;

 MOV

 A, R3

 ;R3中值二转十显示转换

 DIV

 AB;

 MOV

 79H, A;

 MOV

 7AH, B; DIS:

  MOV

 A, 79H

  ;显示十位

 MOV

 DPTR, #TAB;

 MOVC

 A, @A+DPTR;

 MOV

 DPTR, #0002H;

 MOVX

 @DPTR, A;

 MOV

 DPTR, #0001H;

 MOV

 A, #0F7H;

 MOVX

 @DPTR, A;

 LCALL

 DELAY; DS2:

  MOV

 A, 7AH ;

 ;显示个位

 MOV

 DPTR, #TAB;

  MOVC

 A, @A+DPTR;

 MOV

 DPTR, #0002H;

 MOVX

 @DPTR, A;

 MOV

 DPTR, #0001H;

 MOV

 A, #0FBH;

 MOVX

 @DPTR, A;

 RET;

 附录B 交通信号灯硬件设计电路图

 

推荐访问:信号灯 单片机 控制系统
上一篇:【观看《小巷管家》有感】 小巷管家电影感想
下一篇:【**乡党代会开幕词】 党代会开幕词

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有