交通灯控制系统模拟设计

上传人:仙*** 文档编号:32449733 上传时间:2021-10-14 格式:DOC 页数:31 大小:651.25KB
收藏 版权申诉 举报 下载
交通灯控制系统模拟设计_第1页
第1页 / 共31页
交通灯控制系统模拟设计_第2页
第2页 / 共31页
交通灯控制系统模拟设计_第3页
第3页 / 共31页
资源描述:

《交通灯控制系统模拟设计》由会员分享,可在线阅读,更多相关《交通灯控制系统模拟设计(31页珍藏版)》请在装配图网上搜索。

1、交通灯控制系统模拟设计附件1:学 号: 0121018700XXX课 程 设 计题 目交通灯控制系统模拟设计学 院物流工程专 业物流工程班 级物流工程卓越1001姓 名XXX指导教师朱宏辉2013年6月28日交通灯控制系统模拟设计XXX武汉理工大学 物流工程卓越1001摘要:随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉

2、足。本系统采用AT89C51单片机为中心器件来设计交通灯控制器,实现了红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管);以及实现3种工作模式:正常情况、繁忙情况、特殊情况及报警功能。本系统实用性强、操作简单、扩展功能强。关键字:交通灯;AT89C51;数码管;三种工作模式Design of traffic light control system simulationZhiming GuoLogistics Engineering College Logistics zy1001Abstract: With the developmen

3、t of economy, the sharp increase in the number of cars, increasingly crowded city roads, traffic congestion has become an international problem. Therefore, multi-function traffic light control system design of reliable, safe, convenient and of great practical necessity. According to the characterist

4、ics of traffic lights in the actual control, combined with the control function of single chip, this paper presents a simple method for automatic control of traffic lights with single chip microcomputer. In the design of hardware circuit design and program design includes two steps, on several impor

5、tant single-chip learning have to get involved in. The system centric devices to design the traffic light controller AT89C51, realizes the cycle traffic lights lit, countdown 5 seconds left when the yellow light flashing warning (traffic light signal output, display time through the output port P0 t

6、o two digital tube through the P1 port); 3 work modes: normal, busy and implementation situation, special circumstances and alarm function. The system practical, simple operation, strong function expansion.Key words: raffic lights, AT89C51, LED, three work modes目录课程设计任务书1第1章 前 言21.1交通灯发展概述21.2 课题背景及

7、意义21.3课题任务及主要实现内容31.4 原理分析41.4.1交通灯显示时序的理论分析41.4.2 交通灯显示的理论分析5第2章 设计方案分析62.1 单片机与外围接口部件62.2 倒计时显示界面62.3 交通灯6第3章 硬件系统设计83.1 单片机的选择83.1.1 AT89C51单片机简介83.1.2 AT89C51单片机的主要特性83.1.3主要引脚功能93.1.4 C51的中断源113.2 硬件电路实现113.2.1 最小系统设计113.2.2 显示设计133.2.3 发光二极管模拟红绿灯163.2.4 按键模块16第4章 软件电路设计174.1 软件编译环境测试174.1.1 C语

8、言介绍174.1.2 Keil uVision4介绍174.2软件总体设计17结论20参考文献21源程序:22课程设计任务书学生姓名: XXX 专业班级: 物流工程卓越1001 指导教师: 朱宏辉 工作单位: 物流工程 题 目: 交通灯控制系统模拟设计 初始条件:1. 熟悉背景资料和任务:熟悉给定的背景资料和数据,明确系统设计的任务要求;拟订设计计划和初步方案。2单片机应用系统硬件结构设计:分析背景资料给定的相关技术要求和功能指标,采用自上而下的设计方法,完成系统硬件结构的规划设计,并详细设计单片机应用系统的电路原理图。对于相对简单的应用系统,可设计出PCB图。要求完成的主要任务: 交通灯控制

9、系统采用AT89C51单片机为中心器件来设计交通灯控制器,实现了红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管);以及实现3种工作模式:正常情况、繁忙情况、特殊情况及报警功能。本系统实用性强、操作简单、扩展功能强。时间安排:十六周到十七周设计,十七周答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日0第1章 前 言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器

10、、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3,三代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。1.1交通灯发展概述早在1850年,城市交叉口处不断增长的交通就引发了人们对安全和拥堵的关注。世界上第一台交通自动信号灯的诞生,拉开了城市交通控制的序幕,1868年,英国工程师纳伊特在伦敦威斯特敏斯特街口安装了一台红绿两色的煤气照明灯,用来控制交叉路口马车的通行,但一次煤气爆炸事故致使这种交通信号灯几乎销声匿迹了近半个世纪。1914年及稍晚一些时

11、候,美国的克利夫兰、纽约和芝加哥才重新出现了交通信号灯,它们采用电力驱动,与现在意义上的信号灯已经相差无几。1926年英国人第一次安装和使用自动化的控制器来控制交通信号灯,这是城市交通自动控制的起点。 伴随着城市交通信号控制系统的迅速发展。人们认识到,要更好地提高城市管理水平,不仅仅依靠硬件设备的更新和改进,还必须同时在控制逻辑和方法上有所突破,即城市交通的区域协调控制。传统的城市道路交通控制指的是区域交叉口信号灯控制,而城市交通的区域协调控制,是在整个城市范围内对交通进行控制,这无论是从理论角度还是实践角度,都是一个极其复杂的大系统控制问题。 可以说,在近百年的发展中,道路交通信号控制系统经

12、历了无感应控制到有感应控制、手动控制到自动控制再到智能控制、单点控制(点控)到干线控制(线控)再到区域控制和网络控制(面控)的过程。1.2 课题背景及意义当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受

13、伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968

14、年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。如果将每个交通十字路口的多余交通警察撤回,安排在最不利于管理和事故高发的地方,不但可以大大的降低交通事故的发生率,而且可以节省大量的人力财力。所以,采用单片机自动控制交通灯有现实的社会意义。1.3课题任务及主要实现

15、内容本系统由单片机系统、数码管显示、交通灯显示系统组成。系统除基本的交通功能外,还具有倒计时,时间设置。东西、南北两个干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,此外,每个路口加入一个新的左转绿灯,以区别直行路灯,指挥车辆安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换。程序开始运行先南北段通行、东西段禁止60s,后东西段通行、南北段禁止60s,依此循环。 系统分三种工作模式:正常模式、繁忙模式、特殊模式,并且通过三个按钮“正常”、“繁忙”、“特殊”可相互转化。正常模式:直行时间显示数码管显示60。此时南北段直行通行(绿灯)、东西段禁止(红灯)4

16、0s,同时南北段和东西段方向的数码管分别从40s和60s开始倒计时,至最后5s时南北段绿灯变成黄灯闪烁;此后南北段左拐(左拐灯亮)通行、东西段禁止(红灯)20s,同时南北段和东西段方向的数码管都从20s开始倒计时,至最后5s时南北段左拐灯变成黄灯闪烁;再后东西段直行通行(绿灯)、南北段禁止(红灯)40s,同时东西段和南北段方向的数码管分别从40s和60s开始倒计时,至最后5s时东西段绿灯变成黄灯闪烁;最后东西段左拐(左拐灯亮)通行、南北段禁止(红灯)20s,同时东西段和南北段方向的数码管都从20s开始倒计时,至最后5s时东西段左拐灯变成黄灯闪烁。繁忙模式:南北段、东西段的通行时间改为45s,其

17、中左拐的时间改为15s,其它与正常模式类似。特殊模式:特殊模式灯亮,南北段、东西段的通行时间改为0s,禁止左转和直行,东西南北四个方向都亮红灯。1.4 原理分析1.4.1交通灯显示时序的理论分析下图所示为一种红绿灯规则的状态图: 图1-1 状态S1南北直行通行 图1-2 状态S2南北左拐通行 图1-3 状态S3东西直行通行 图1-4 状态S4东西左拐通行 交通灯状态转化图:图1-5 交通灯状态循环图依据上述车辆行驶的状态图,可以列出各个路口灯的逻辑表如下表所示(其中逻辑值“1”代表直行通行,逻辑值“0”代表禁止通行,逻辑值“L”代表左拐通行): 表 1-1 逻辑值ENWNS10101S20L0

18、LS31010S4L0L01.4.2 交通灯显示的理论分析倒计时显示的理论分析:利用定时器中断,设TH0=TH1(65536-50000)/256,即每0.05秒中断一次。每到第20次中断即过了20*0.05秒1秒时,使时间的计数值减1,便实现了倒计时的功能。 状态灯显示的理论分析:黄灯闪烁同样可以利用定时器中断。每到第10次中断即过了10*0.05秒0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。第2章 设计方案分析本设计实现的交通灯是一款的多功能交通灯,预期实现的主要功能如下。1.具有时间显示功能,数码管倒计时功能;2.红绿灯具有四种状态,南北直行,南北左拐,东西直行,东西左拐;3.

19、具有模式转换功能,切换到不同状态,交通灯通行时间不一样;2.1 单片机与外围接口部件根据课题任务的要求,该系统具有交通灯的显示功能,倒计时功能,改变时间设定功能,所以把系统分为几个模块,包括倒计时显示器、交通信号灯、控制模块。系统硬件框图如下图2-1: 图2-1 硬件框图该系统主控芯片单片机采用AT89C51,它内部具有128个8位用户数据存储单元和128个专用寄存器单元,两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向,可以满足该控制程序系统的设计要求。2.2 倒计时显示界面该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了二种方案:方案一:完全采用数码管显

20、示。显示简单,程序简单,端口用的少。 法案二:完全采用点阵式LED显示。这种方案实现复杂,且须完成大量的软件工作。但功能强大,可方便的显示各种英文字符,汉字,图形等。权衡利弊,第一种的方案适合于此题,我们决定采用方案二实现系统的时间显示2.3 交通灯发光二极管简称为LED,在此处设计中我们用他来模拟红绿黄交通灯,普通单色发光二极管具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。它属于电流控制型半导体器件,使用时需串接合适的限流电阻。第3章 硬件系统设计3.1 单片机的选择3.1.1 AT89C51单片机简介 AT89C51是一

21、种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵

22、活性高且价廉的方案。3.1.2 AT89C51单片机的主要特性 与MCS-51 兼容 ,4K字节可编程闪烁存储器 ,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0Hz-24Hz,三级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源(两个外部中断源和3个内部中断源) ,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。 时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。 中断系统:中断系统的作用主要是对外部或内部的终端请求进行管理与处理。AT89S51共有5个中断源,其中又2个外部中断源和3个内部中断源。图3

23、 AT89C51系列单片机的内部结构示意图3.1.3主要引脚功能图4 AT89C51引脚图VCC:电源电压GND:接地P0口:P0口是一组8位双向I0口。P0口即可作地址数据总线使用,又可以作为通用的I/O口使用。当CPU访问片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。在访问期间激活要使用上拉电阻。P1口:Pl 是一个带内部上拉电阻的8准位双向IO口,P1作为通用的I/O口使用。P2 口:P2 是一个带有内部上拉电阻的8 位准双向IO 口,P2即可作为通用的I/O口使用,也可以作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存

24、储器单元地址。P3 口:P3 口是一组带有内部上拉电阻的8 位准双向I0 口。P3 口除了作为通用的I/O口使用之外,每个引脚还具有第二功能,具体分配如下表具有第二功能的P3口引脚:端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外中断0)P3.3/ INT1(外中断1)P3.4T0(定时计数器0外部输入)P3.5T1(定时计数器1外部输入)P3.6/ WR(外部数据存储器写选通)P3.7/ RD外部数据存储器读选通)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR

25、AUXR的DISRT0 位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALE:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活

26、。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。程序储存允许()输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的信号。VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vcc。XTAL1:振荡器反相放大器及内部时钟发生

27、器的输入端。3.1.4 C51的中断源C51有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址如下表所示:中断源的服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外中断10013H定时/计数器0001BH串行口中断0023H3.2 硬件电路实现选用设备8051单片机一片,共阴极的七段两位数码管两个,红、黄、交通灯各四个,绿发光二极管8个,按键三个、电容两个22pF,电阻十六个470,晶

28、体振荡器一个,连线若干。3.2.1 最小系统设计单片机最小系统有一个单片机加上一个复位电路和振荡电路组成。如图3-2所示。 1复位电路单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。复位电路由手动复位和上电复位两部分组成。(1)上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单

29、片机就可以进行复位操作。(2)手动复位:手动复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这表明单片机复位期间不会有任何取指操作。本设计的复位电路,如图3-2所示图3-2 复位电路图2.振荡电路单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。单片机晶振的作

30、用是为系统提供基本的时钟信号。单片机的时钟电路设计有两种方式,一种是内部时钟方式,一种是外部时钟方式。在内部时钟方式下单片机内部的高增益、反相放大器通过XTAL1、XTAL2外接作为反馈元件的外部晶体管振荡器与电容组成的并联谐振回路构成一个稳定的自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率。MCS-51单片机的晶体振荡频率可以再1-12MHz范围内选择,电容C1、C2的选择范围是15-45pF,电容的大小会影响振荡器的稳定性和起振速度。外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多片单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的

31、持续时间大于20s,且为频率低于12MHz的方波。本设计采用内部时钟方式,采用11.0592MHz的晶振和两个22pF的电容。如图3-所示。图3-3 振荡电路图3.2.2 显示设计LED显示器由七个发光二极管组成,因此也称之为七段LED显示器,此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管的不同组合,可以显示多种数字、字母或者其他符号。LED显示器中的发光二极管共有两种连接方法。如图3-3所示。(1)共阳极接法把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 (

32、2)共阴极接法把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。图3-3 LED引脚图及两种连接方法此设计用共阴级的2位数码管,如图3-4所示:图3-4 二位数码管经过万用表测定,此设计所用的数码管的引脚图,如下图3-5所示: 图3-5 实物数码管引脚图LED显示分为动态显示和静态显示(1)静态显示,是指显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。这种显示方法每一位都需要有一个8位输出控口控制,占用硬件资源多,一般用于显示位数较少场合。静态显示时,较小的驱动电流就可以得到较高的显示亮度,所以可由接口芯

33、片直接驱动。 (2)动态显示,是一位一位地轮流点亮各位数码管。对于多位LED显示器的接口电路来说,需要有两个输出口:各位数码管的段控线相应并联在一起,由一个8位的I/O口控制,还学要一个输出口输出位控制信号,“位控”实际上就是对LED显示器的公共端进行控制,位控信号的数目与显示器个数相同。这种电路的特点是节省I/O口线,硬件电路相对静态显示方式简单。动态显示方式的硬件电路简单,动态显示采用多路复用技术的动态扫描显示方式,利用人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。静态显示程序简单,且CPU占用率低,但每个LED数码管需要一个锁存器来锁存每一个显示位的代码,硬件开销大,仅适合

34、显示位数较少的场合。本设计采用两个二位一体共阴数码管,不管将几位数码管连在一起,数码管的显示原理都是一样的,用P0口来控制LED数码管的段控线和和利用P2口控制位控线,动态显示采用动态扫描的方法进行显示及循环点亮每一个数码管,虽然任何时刻都只有一位数码管被点亮,但由于人眼存在暂留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。图3-6 二位数码管3.2.3 发光二极管模拟红绿灯 它是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子

35、,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。 发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。3.2.4 按键模块 程序开始运行先南北段通行、东西段禁止60s,后东西段通行、南北段禁止60s,依此循环。 系统分三种工作模式:正常模式、繁忙模式、特殊模式,并且通过三个按钮“正常”、“繁忙”、“特殊”可相互转化。 正常模式下东西南北直行通行时间为40S

36、,左转为20S,繁忙模式下直行时间改为20S,左转为15S,特殊模式下四个方向都亮红灯,禁止通行,3个按键可以互相转化。按键图如3-7所示:图 3-7 按键模块 这里用到了二极管做开关,是为了防止有一按键被按下3根线同时被低,中断无效。二极管在正向电压作用下电阻很小,处于导通状态,相当于一只接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同一只断开的开关。利用二极管的开关特性,可以组成各种逻辑电路。 第4章 软件电路设计4.1 软件编译环境测试4.1.1 C语言介绍C语言是一种通用的计算机程序设计语言,它既可以用来编写计算机的系统程序也可以用来编写一般的应用程序。以前计算机的系统软件主

37、要用汇编语言编写,单片机应用系统更是如此。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用程序不但周期长,而且调试和排错也比较困难,为了提高单片机应用程序的开发效率,改善程序的可读性和可移植性,采用高级语言无疑是一种最好的选择。C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也较强,许多以前只能采用汇编语言来解决的问题现在都可以用C语言来解决。综上所述,C语言在功能上、结构性、可读性、可维护性上有明显的优势,故本课题采用C语言实现软件功能。4.1.2 Keil uVision4介绍本课题采用Keil uVision4软件开发系统,Keil uV

38、ision4是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil uVision4是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision4还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision4提供逻辑分析器,可监控基于MCU的I/O引脚和外设状态变化下的程序变量。4.2软件总体设计主程序流程图如下图4-1所示,开始单片机初始化SN直行EW禁

39、行EW禁行SN禁行通行35s通行35sSN黄灯闪EW黄灯闪闪5s闪5sSN左拐EW禁行通行15sEW左拐SN禁行SN黄灯闪通行15s闪5SEW黄灯闪闪5S图 4-1 主程序流程图本设计中用到了定时器T0中断来控制灯的闪烁和数码管的倒计时功能,定时器中断流程图如下图4-2所示,外部中断流程图如4-3所示:图 4-2 定时器中断流程图图4-3 外部中断0中断流程图本设计用外部中断来控制按下键之后的情况,上图4-3 为外部中断的流程图。结论经过两周的努力工作,终于完成了自己的单片机课程设计。虽说忙碌了点,但我觉得这样的生活充实且有成就感,当然,也获益匪浅。本设计是一款的多功能交通灯,采用AT89C5

40、1单片机为核心,2位LED数码管显示,本设计采用模块化的设计方法,硬件设计包括单片机模块、显示模块、发光二极管模块、相关控制模块等的模块化设计与制作;整个设计过程是硬件和软件相结合的,并采用C语言编写实现。根据要求用单片机对其进行控制,取得了以下研究成果:(1)控制系统接线图 (2)控制系统工作原理的阐述(3)硬件电路的完成由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,达到了预期设计要求的结果,实现了交通灯4个状态的转化,数码管的倒计时功能,和特殊情况下的交通灯的变化。 至于软件设计与调试,我觉得它主要考验你的思维逻辑能力及你对指令的熟悉程度。可以说再整个软件设

41、计过程中,我不仅学会了延时的两种方法,即软件延时和硬件延时,还掌握数码管的两种显示方式(即动态显示与静态显示)及其如何选择。当然,通过几次反复调试过程,使得我对汇编指令有了更深刻的理解。在整个课程设计过程我还掌握了一下几点:(1)掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法。(2)理解了最单片机的各部分组成及特性。(3)熟练使用了各种计算机辅助设计工具完成设计,充分掌握了这些工具的使用。(4)学会了利用Keil uVision4对C语言进行编译过程.更进一步加深了对PROTEUS软件的学习。还有,我还发现自身一些毛病。一,前期准备工作做的不够好,想的还算多,可就是没落实。先说选

42、题,就表现自己有畏难情绪,其实当时找到好几个题目,但交通灯最熟悉,所以就选了它。就这,还没做的很理想,还有好些功能可以加上去,像通过测流量来自动调整通行时间,加个监控电路,看门狗电路等。二,行动起来不是很卖力,虽说动手还算早,但每天的进展却不大,可以说做与玩相伴而行。通过本次的课程设计,充分意识到自己所学的东西还是非常有限的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的学习起了很大的帮助。就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些

43、主要问题而逐步得到解决。同时我也懂得,在整个设计过程中,生活中也一样,一定要意志坚定,克服自己的畏难情绪,这样才能将事情做好,才能干出一番成就。 我觉得类似这种课程设计的实践真的不错,通过这些项目练习,我自学能力,解决实际问题的能力得到提高,可以说是对综合素质全面提升,我想这也是我们上大学应真正学到的。参考文献1胡汉才.单片机原理及接口技术.清华大学出版社,20042张培忠.单片机C程序设计实验/实训指导书.浙江工商职业技术学院,20083 刘同法,陈忠平.单片机基础与最小系统实践M.北京:北京航空航天大学出版社,2007.4周坚.单片机C语言轻松入门M.北京:北京航空航天大学出版社,2006

44、5肖金球.单片机原理与接口技术.肖金球.清华大学出版社,出版日期:20046梅丽风.单片机原理及接口技术.梅丽风.清华大学出版社,20047李泉溪.单片机原理及应用实例仿真.2010附录:原理图:源程序:/* 十字路口交通灯控制C语言程序*/#define uchar unsigned char /定义无符号字符型#define uint unsigned int /定义无符号整型#include /调用reg51.h头文件/*定义数码管端口*/sbitE_LED1=P20; /E_LED1控制位sbitE_LED2=P21; /E_LED2控制位sbitW_LED1=P20; /W_LED1

45、控制位sbitW_LED2=P21; /W_LED2控制位sbit S_LED1=P22; /S_LED1控制位sbit S_LED2=P23; /S_LED2控制位sbit N_LED1=P22; /N_LED1控制位sbit N_LED2=P23; /N_LED2控制位/*定义控制位*/ sbit E1_LED=P13; /E1_LED红灯sbit E2_LED=P12; /E2_LED黄灯sbit E3_LED=P11; /E3_LED绿灯sbit E4_LED=P10; /E4_LED绿灯sbit W1_LED=P13; /W1_LED红灯sbit W2_LED=P12; /W2_LE

46、D黄灯sbit W3_LED=P11; /W3_LED绿灯sbit W4_LED=P10; /W4_LED绿灯sbit N1_LED=P17; /N1_LED红灯sbit N2_LED=P16; /N2_LED黄灯sbit N3_LED=P15; /N3_LED绿灯sbit N4_LED=P14; /N4_LED绿灯sbit S1_LED=P17; /S1_LED红灯sbit S2_LED=P16;/S2_LED黄灯sbit S3_LED=P15; /S3_LED绿灯sbit S4_LED=P14; /S4_LED绿灯sbit NOM_LED=P26; /交通灯正常指示灯sbit BUSY_L

47、ED=P27; /交通繁忙指示灯sbit SPE_LED=P25; /交通特殊指示灯sbit SPK=P24; /定义喇叭端口/*功能键*/sbit NOM_BUTTON=P33; /交通正常按键 sbit BUSY_BUTTON=P35; /交通繁忙按键sbit SPE_BUTTON=P36; /交通特殊按键 /*黄灯闪烁*/bit Flag_S2_LED; /N黄灯标志位bit Flag_E2_LED; /E黄灯标志位char T_EW; /东西方向倒计时单元char T_SN; /南北方向倒计时单元 uchar EW=60,SN=40,EWL=19,SNL=19; /程序初始化赋值,正常

48、模式uchar EW1=60,SN1=40,EWL1=19,SNL1=19; /用于存放修改值的变量uchar code table10=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90; /19段选码/*延时子程序*/voidDelay(uchara)uchar i;i=a;while(i-);/*显示子函数*/voidDisplay(void)char h,l;h=T_EW/10;l=T_EW%10; P0=tablel;E_LED2=1;W_LED2=1;Delay(2);E_LED2=0;W_LED2=0; P0=tableh;E_LE

49、D1=1;W_LED1=1;Delay(2);E_LED1=0;W_LED1=0;h=T_SN/10;l=T_SN%10;P0=tablel;S_LED2=1;N_LED2=1;Delay(2);S_LED2=0;N_LED2=0; P0=tableh;S_LED1=1;N_LED1=1; Delay(2);S_LED1=0;N_LED1=0; /*外部0中断服务程序*/voidEXINT0(void)interrupt 0 using 1if(NOM_BUTTON=0) /测试按键是否按下,按下为正常状态 EW1=60; SN1=40;EWL1=19;SNL1=19;BUSY_LED=0;

50、/关繁忙信号灯SPE_LED=0; /关特殊信号灯 NOM_LED=1; /开正常信号灯 if(BUSY_BUTTON=0) /测试按键是否按下,按下为繁忙状态 EW1=30; SN1=20;EWL1=9;SNL1=9;NOM_LED=0; /关正常信号灯SPE_LED=0; /关特殊信号灯BUSY_LED=1; /开繁忙信号灯 if(SPE_BUTTON=0) /测试按键是否按下,按下为特殊状态 EW1=0; SN1=0;EWL1=0;SNL1=0;P0=0XFF; P1=0X77;NOM_LED=0; /关正常信号灯BUSY_LED=0; /关繁忙信号灯 SPE_LED=1; /开特殊信号

51、灯 SPK=0; /*T0中断服务程序*/void timer0(void)interrupt 1 using 1static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=10) if(Flag_S2_LED=0) /测试南北黄灯标志位 S2_LED=S2_LED; if(Flag_E2_LED=0) /测试东西黄灯标志位 E2_LED=E2_LED; if(count=20) T_EW-; T_SN-; if(Flag_S2_LED=0) /测试南北黄灯标志位 S2_LED=S2_LED; i

52、f(Flag_E2_LED=0) /测试东西黄灯标志位 E2_LED=E2_LED; count=0; /*主程序开始*/voidmain(void) NOM_LED=1;BUSY_LED=0;SPE_LED=0;IT0=0; /INT0低电平触发 TMOD=0x01; /定时器工作于方式1TH0=(65536-50000)/256; /定时器赋初值TL0=(65536-50000)%256;EA=1; /CPU开中断总允许ET0=1; /开定时中断EX0=1; /开外部INTO中断 TR0=1; /启动定时 while(1) /*S0状态*/ Flag_E2_LED=1; /EW关黄灯显示信

53、号 T_EW=EW; T_SN=SN; while(T_SN=5) P1=0xD7; /SN通行,EW红灯 Display(); /*S1状态*/ while(T_SN=0) Flag_S2_LED=0; /SN开黄灯信号位 E1_LED=0; /SN黄灯亮,等待左拐信号,EW红灯 W1_LED=0; Display(); /*S2状态*/ Flag_S2_LED=1; /SN关黄灯显示信号 T_SN=SNL; S1_LED=0; N1_LED=0; while(T_SN=5) P1=0xe7;/SN左拐绿灯亮,EW红灯 Display(); /*S3状态*/ while(T_SN=0) Flag_S2_LED=0;/SN开黄灯信号位 E1_LED=0; /SN黄灯亮,等待停止信号,EW红灯 W1_LED=0; Display(); /*赋值*/ EW=EW1; SN=SN1; EWL=EWL1; SNL=SNL1; /*S4状态*/ Flag_S2_LED=1; /SN关黄灯显示信号T_EW=SN; T_SN=EW; while(T_EW=5) P1=0x7d; /EW通行,SN红灯 Display();

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