基于STC89C52的交通灯电路设计课程设计Word下载.docx
《基于STC89C52的交通灯电路设计课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于STC89C52的交通灯电路设计课程设计Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
日期:
导师签名:
日期:
基于STC89C52的交通灯电路设计
摘要
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本系统采用STC89C52点单片机以及数码管为中心器件来设计交通灯控制器,实现了南北方向为主要干道,要求南北方向每次通行时间为30秒,东西方向每次通行时间为25秒。
启动开关后,南北方向红灯亮25秒钟,而东西方向绿灯先亮20秒钟,然后闪烁3秒钟,转为黄灯亮2秒钟。
接着,东西方向红灯亮30秒钟,而南北方向绿灯先亮25秒,然后闪烁3秒钟,转为黄灯亮2秒钟,如此周而复始。
软件上采用C语言编程,主要编写了主程序,中断程序延时程序等。
经过整机调试,实现了对十字路口交通灯的模拟。
关键字:
单片机STC89C52
数码管
交通灯发光二极管
Abstract
trafficinPeople'
sDailylifehasimportantposition,aspeoplesocialactivitieshavebecomeincreasinglyfrequent,thisalsoreflectincisivelyandvividly.Theemergenceofthetrafficlights,traffictoeffectivelycontrol,forfacilitatingtrafficflow,improvetrafficcapacity,reducethenumberoftrafficaccidentshaveobviouseffect.Inrecentyears,withtherapiddevelopmentofscienceandtechnology,theapplicationofSCMisunceasinglythorough,itcausesthetraditionalcontroltesttechnologyincreasinglyupdates.Inreal-timedetectionandautomaticcontrolofmicrocomputerapplicationsystem,oftenasacorecomponentsingle-chipmicrocontroller,onlytouseknowledgeisnotenough,shouldaccordingtospecifichardwarestructure,softwareandhardwarecombinedwithimproved.
ThesystemusesthemicrocontrolleranddigitaltubeSTC89C52pointsforcenterdevicetodesigningtrafficlightcontroller,realizedthenorth-southdirectionforthemainroadnorthandsouthdirection,requirementsfor30secondseachpassageoftime,timeforsomethingeverypassagedirectionof25seconds.Startswitch,thenorth-southdirectionafter25seconds,andaredlightgreenlightfirstthingsdirectionandblink20secondsto3seconds,yellowlightfor2seconds.Then,thingsdirection,andredlightis30secondsbeforethenorthandsouthdirectiongreenlight25seconds,thenflashinglightstokelly3seconds,twoseconds,sogoroundandround.
SoftwareprogrammedusingClanguage,themainprogrammainlyprepared,interruptionprogramdelayprocedures,etc.Afterthecommissioning,realizedthesimulationofintersectiontrafficlights.
Keyword:
SCMSTC89C52digitaltubetrafficlightemittingdiode
(1)引言---------------------------------5
1.1交通灯的历史和现状---------------------5
1.2单片机概述-----------------------------5
(二)硬件部分----------------------------6
2.1STC89C52芯片简介-----------------------6
2.2主要功能特性---------------------------7
2.3STC89C52芯片封装与引脚功能-------------7
2.4基于STC89C52交通灯控制系统的硬件电路分析及设计-------------------------------------------10
(3)软件部分----------------------------14
3.1交通灯的软件设计流程图-----------------14
3.2控制器的软件设计-----------------------15
(四)电路原理图与PCB图的绘制-------------16
4.1电路原理图的绘制(见附录二)----------16
4.2PCB图的绘制(见附录三)---------------16
4.3印刷电路板的注意事项------------------16
(五)调试及仿真---------------------------------------19
5.1调试----------------------------------19
5.2仿真结果------------------------------20
(6)实验总结及心得体会---------------------------21
6.1实验总结-----------------------------------------------21
6.2实验总结-----------------------------------------------22
(7)参考文献------------------------------------------22
附录一程序清单---------------------------22
附录二电路原理图(显示部分)-------------28
附录三电路PCB图(显示部分)-------------29
附录四实物图-----------------------------30
(一)引言
1.1交通灯的历史和现状
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;
另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.2单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。
本设计选用了市面上较为常见的STC89C52单片机,STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52的管脚图如图1所示。
图一:
STC89C52的管脚图
(二)硬件部分
2.1STC89C52芯片简介
STC89C52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及STC89C52引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。
STC89C52具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
2.2主要功能特性:
·
兼容MCS-51指令系统
8k可反复擦写(>
1000次)ISPFlashROM
32个双向I/O口
4.5-5.5V工作电压
3个16位可编程定时/计数器
时钟频率0-33MHz
全双工UART串行中断口线
256x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
表1-1-1
2.3STC89C52芯片封装与引脚功能
STC89C52芯片的尾缀第一个字母共4种,分别是A,J,P,Q,表示的是封装类型,A是TQFP封装(四方密脚扁平塑封封装),J是PLCC封装(塑封J形脚),P是PDIP也就是双列直插封装,Q是QPFP封装(四方扁平塑封封装)。
第二个字母共3种,分别是C,I,A,表示的是允许的环境温度,C为商业级,工作温度0至+70摄氏度;
I为工业级,工作温度-40至+85度;
A为汽车工业级,工作温度-40至+105度。
这两个字母前的数字表示最高主频,如12为12M,16为16M,20为20M,24为24M。
STC89C52
是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业STC89C52产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程FlashSTC89C52
2.3.1P0口介绍
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
2.3.2P1口介绍
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
2.3.3P2口介绍
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
2.3.4P3口介绍
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚的第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
2.3.5控制信号介绍
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp
2.4基于STC89C52交通灯控制系统的硬件电路分析及设计
2.4.1各部分电路分析
(1)电源电路
单片机工作时需要的+5V电压,本设计采用普通的电源接口,通过5V的电源适配器供电。
电源部分还连接开关和发光二极管,用于判断电源是否正常工作。
需要注意的是,滤波电容对于电路设计非常重要,不加滤波电容会导致系统不稳定。
因此在电源部分10UF铝电解作为滤波电容。
(2)复位电路
STC89C52的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开始执行,在STC89C52的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位操作。
只要RST保持高电平,则单片机循环复位。
只有当RST有高电平变为低电平以后,单片机才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路,如图二所示,当复位键按下时,系统自动切换到四个方向都只有黄灯亮的初始状态。
图二:
复位电路
(3)时钟电路
STC89C52的时钟可以有两种方式,一种是内部方式,利用芯片内部的振荡电路;
另外一种为外部方式。
本论文根据实际需要和简便,采用内部振荡方式。
89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入和输出端。
这个放大器与作为反馈元件的片外的片外晶体与陶瓷谐振器一起构成一个自激振荡器。
STC89C52虽然有内部震荡电路,但要形成时钟,必须外接元件所以实际构成的震荡时钟电路。
外界晶体以及电容C1和C2构成并联谐振电路接在放大器的反馈回路中。
对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性。
晶体频率可在1.2MHZ~12MHZ之间任选,电容C1和C2的典型值在20PF~100PF之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,所以采取比较廉价的12MHZ陶瓷谐振器。
如图三所示。
图三:
时钟电路
(4)显示电路
显示部分选用4位共阴数码管。
数码管的8位数据端通过1K的上拉电阻连接到单片机P0口,4位使能端分