基于51单片机交通灯课设(内含程序和实物图).doc

上传人:土8路 文档编号:10005469 上传时间:2021-04-10 格式:DOC 页数:30 大小:13.02MB
返回 下载 相关 举报
基于51单片机交通灯课设(内含程序和实物图).doc_第1页
第1页 / 共30页
基于51单片机交通灯课设(内含程序和实物图).doc_第2页
第2页 / 共30页
基于51单片机交通灯课设(内含程序和实物图).doc_第3页
第3页 / 共30页
基于51单片机交通灯课设(内含程序和实物图).doc_第4页
第4页 / 共30页
基于51单片机交通灯课设(内含程序和实物图).doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于51单片机交通灯课设(内含程序和实物图).doc》由会员分享,可在线阅读,更多相关《基于51单片机交通灯课设(内含程序和实物图).doc(30页珍藏版)》请在三一文库上搜索。

1、单片机控制交通灯 摘 要随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉足。单片机的应用正在不断深入,单片机可以用来仿真各个系统。在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么

2、靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用单片机STC89C52为中心器件来设计交通灯控制器,实现了通过P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。 关键词:单片机 交通灯 数码管 看门狗目 录第1章 前 言11.1课题任务及主要实现内容11.2 原理分析11.2.1交通灯显示时序的理论分析11.2.2 交通灯显示的理论分析2第2章 设计方案分析32.1 单片机与外围接口部件3

3、2.2 倒计时显示界面42.3 交通灯4第3章 硬件系统设计43.1 单片机的选择43.2 STC89c52的看门狗设置83.3 硬件电路实现93.2.1 最小系统设计93.3.2 显示设计113.2.3 发光二极管模拟红绿灯133.2.4 按键模块14第4章 软件电路设计154.1 软件编译环境测试154.1.1 C语言介绍154.1.2 Keil uVision4介绍154.2软件总体设计15第5章 电路检测17结论.20参考文献21附录:22原理图22源程序:22第1章 前 言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域

4、,故称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3,三代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。1.1课题任务及主要实现内容本系统由单片机系统、数码管显示、交通灯显示系统组成。系统除基本的交通功能外,还具有倒计时。东西、南北两个干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状

5、态即将切换。程序开始运行先南北段通行、东西段禁止60s,后东西段通行、南北段禁止60s,依此循环。 系统分三种工作模式:正常模式、繁忙模式、特殊模式,并且通过三个按钮“正常”、“繁忙”、“特殊”可相互转化。正常模式:直行时间显示数码管显示60。此时南北段直行通行(绿灯)、东西段禁止(红灯)60s,倒计时到3s时,黄灯亮,提醒人们注意了。然后是东西段通行(绿灯),南北段禁行(红灯),一直循环下去。繁忙模式:南北段、东西段的通行时间改为30s,其它与正常模式类似。特殊模式:特殊模式红灯全亮,倒计时20s,到最后3秒黄灯闪3次后并转入正常模式。1.2 原理分析1.2.1交通灯显示时序的理论分析下图所

6、示为一种红绿灯规则的状态图:图1-1 南北直行通行 图1-2 东西直行通行 1.2.2 交通灯显示的理论分析倒计时显示的理论分析:利用定时器中断,设TH0=TH1(65536-50000)/256,即每0.05秒中断一次。每到第20次中断即过了20*0.05秒1秒时,产生一次参数传递,使时间的计数值减1,便实现了倒计时的功能。第2章 设计方案分析本次课程设计实现的交通灯是带有额外的功能,预期实现的主要功能如下。1.具有时间显示功能,就是数码管倒计时功能;2.红绿灯具有两种状态,南北直行,东西直行;3.具有模式转换功能,切换到不同状态,交通灯通行时间不一样;2.1 单片机与外围接口部件根据课题任

7、务的要求,该系统具有交通灯的显示功能,倒计时功能,改变时间设定功能,所以把系统分为几个模块,包括倒计时显示器、交通信号灯、控制模块。系统硬件框图如下图2-1: 图2-1 硬件框图该系统主控芯片单片机采用MCS-8052,它内部具有128个8位用户数据存储单元和128个专用寄存器单元,两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向,可以满足该控制程序系统的设计要求。2.2 倒计时显示界面本次课设较为简单,实现起来并不困难,所以选择led数码管就可以了,成本在可接受范围内。2.3 交通灯发光二极管简称为LED,在此处设计中我们用他来模拟红绿黄交通灯,普通单色发光二极管具有

8、体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。它属于电流控制型半导体器件,使用时需串接合适的限流电阻。第3章 硬件系统设计3.1 单片机的选择1 常用单片机的比较目前在单片机系统中,应用较广泛的微处理器芯片主要为8XC5X系列单片机。该系列单片机均采用标准MCS-51内核,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。若采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM存储空间,能于3V的超低电压工作,而且与MCS-51系列单片机完全兼容

9、,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次插拔会对芯片造成一定的损坏。若采用STC89C52单片机则不同,STC89C52是一个低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元。可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的

10、Flash存储器可有效的降低开发成本。2STC89C52简介(1) STC89C52基本特性STC89C52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。(2) 功能STC89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电

11、路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节点模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,指导下一个中断或硬件复位为止。(3)引脚说明图3-1 STC89C52引脚图引脚如图3-1所示:VCC:40号管脚 供电电压。 GND:20号管脚接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码

12、输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P2口当用于外部程序存储器或16

13、位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流这是由于上拉的缘故。 P3口也可作为STC89C52的一些特殊功能口,如下表3-1所示: 表3-1 P3口管脚特殊功能P3口脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行

14、输出口)P3.2/INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注

15、意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H- FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内

16、部程序存储器。在FLASH 编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.2 STC89c52的看门狗设置在单片机构成的系统中,由于单片机的工作有可能受到外界的干扰,造成程序跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入瘫痪状态,发生不可预料的后果,所以出于对单片机程序的运行的状态进行实时的监控,便考虑一种的专用的监测芯片用于监测单片机程序运行状态的芯片,俗称“看门狗”(Watch Dog)。加入看门狗电路的目的是使单片机可以在无人的

17、状态下实现连续的工作,其工作的过程如下:看门狗的芯片和单片机的一个I/O口连接,每隔一定的时间单片机给芯片送个脉冲,是看门狗的定时器复位;如果超过时间不送脉冲,看门狗的芯片会使单片机复位,从头开始执行程序,这样便实现了监视单片机的目的。通常,看门狗电路是通过将一个专门的看门狗芯片连接到单片机来实现的,不过这样会给电路设计带来复杂性,STC系列单片机内部自带了看门狗,通过对相应的特殊功能寄存器的设置就可以实现看门狗的功能的应用。STC系列的单片机内部有一个专门的看门狗定时器,Watch Dog Timer 寄存器,气功能见如下的知识点:知识点:看门狗定时器寄存器(WDT_COUNTER)STC系

18、列的单片机看门狗定时器寄存器在特殊功能寄存器中的字节地址为E1H,不能位寻址,该寄存器用来管理STC单片机的看门狗控制部分,包括启/停看门狗,设置看门狗的溢出时间等。单片机复位时该寄存器不一定全部清零,在STC下载程序界面上可以选择复位关看门狗或只有停电关看门狗的选择,根据需要可以做出自己的选择。其各位的定义如表。表3-2-1 看门狗定时器寄存器(WDT_COUNTR)各位设置位序号D7D6D5D4D3D2D1D0位符号EN-WDTCLR-WDTIDLE-WDTPS2PS1PS0EN-WDT-看门狗允许位,当设置为1时,启动看门狗。CLR-WDT-看门狗清零位,当设置为1时,看门狗定时器将重新

19、计数,硬件自动将此位清零。IDLE-WDT-看门狗IDLE模式位,当设置为1时,看门狗定时器在单片机的“空闲模式”计数:当该位清零时,看门狗定时器在单片机的“空闲模式”时不计数。PS2、PS1、PS0-看门狗的溢出时间设置,不同的值,预分频不同。 表3-2-2 12MHZ晶振看门狗的定时时间预分频PS2PS1PS0预分频数看门狗溢出时间000265.5ms0014131.0ms0108262.1ms01116524.2s100321.0485s101642.0971s1101284.1943s1112568.3886s看门狗的溢出时间与预分频数有直接的关系,公式如下:看门狗的溢出时间=(Nx预

20、分频数x32768)/晶振频率式中,N表示STC单片机的时钟模式。STC单片机有两种时钟模式,一种是单倍速,也就是12时钟模式,在此模式下,单片机与其他公司的单片机具有相同的机器周期,及12个震荡周期为一个机器周期:另一种是双倍速,又称6时钟的模式,在该时钟模式下,STC单片机比其他公司的51单片机快一倍。在下载程序软件界面可以有单倍速与双倍速的设置选择,可以自行下载测试程序运行的速度。预分频数的值由PS2,PS1,和PS0的组合确定。本程序中设计看门狗的寄存器为WDT=0xe1;溢出时间设为1.0485s,即对WDT赋值为0x34(启动定时器,定时器重新计数,空闲模式不计数),在程序开始时,对WDT=0x34,在中断中(过了1s)再对WDT=0x34操作,清空计数器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1