基于STC单片机的交通灯实训论文.docx
- 文档编号:3530591
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:23
- 大小:386.74KB
基于STC单片机的交通灯实训论文.docx
《基于STC单片机的交通灯实训论文.docx》由会员分享,可在线阅读,更多相关《基于STC单片机的交通灯实训论文.docx(23页珍藏版)》请在冰豆网上搜索。
基于STC单片机的交通灯实训论文
物理机电学院课程设计报告
课程名称:
单片机课程设计
系部:
物理与机电工程学院
专业班级:
09电子信息工程一班
完成时间:
2012、3、13
报告成绩:
评阅意见:
评阅教师日期
目录
摘要.............................................................................................................................3
引言.............................................................................................................................4
第一章设计任务与要求.............................................................................................5
第二章案论证与论证...............................................................................................5
第三章硬件电路设计....................................................................................9
第四章软件设计........................................................................................16
第五章仿真过程与仿真结果.................................................................................29
第六章安装于调试..........................................................................................29
第七章结论与心得...................................................................................................31
第八章参考文献...................................................................................................32
摘要
本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。
系统包括左转、右转、以及基本的交通灯的功能。
系统除基本交通灯功能外,还具有倒计时、时间设置、以及根据具体情况手动控制等功能。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
交通信号灯控制方式很多当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口
关键词:
单片机;交通灯;停车;89C51;交叉路口
引言
近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。
如何让利用当今计算机和自动控制技术,有效地疏通交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个话题。
目前,国内的交通灯一般设在十字路口,在醒目位置用红绿黄三种颜色的指示灯再加上一个倒计时的显示计时器来控制行车。
我国交通法规也对交通指挥信号灯做出规定:
(1)绿灯亮时,准行车辆,行人通行,但转弯的车辆不准妨碍执行的车辆和被放行的行人通行。
(2)黄灯亮时,不准车辆行人通行,但已越过停止线的车辆和已进入人行横道的行人,可以继续通行。
(3)红灯亮时,不准车辆,行人通行。
(4)绿色箭头灯亮时,准行车辆按箭头所示方向通行。
(5)黄灯闪烁时,车辆行人在确保安全的原则下可以通行。
信号灯的出现,使交通得到有效管制,对于疏导交通流量、提高道路通行能力和减少交通事故有明显效果。
交通灯实训论文
一、设计任务与要求
1.1交通灯设计
1.2设计基本要求
车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设东西方向通行时间为40秒,当剩余3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮。
东西、南北方向各用三个(绿、黄、红)LED表示,并用数码管显示东西、南北方向的剩余时间。
可利用按键修改时间参数。
二、方案设计与论证
2.1总体设计方案
根据十字路口交通灯的要求,可将本系统分为四个模块,第一模块是控制模块,主要负责整个系统的控制和运算,从而使各模块正常工作,第二个模块式显示模块包括led灯和数码管;第三是输入模块,对通行时间进行设置等;第四十电源模块给各模块提供电源,让各模块工作。
其系统设计结构如图:
2.2控制模块选择方案
方案一:
由计数器74LS161级联组成,配合译码器和秒脉冲信号发生器等器件组成交通灯系统,整个系统简单,控制简单,调试容易等优点。
方案二:
采用单片机STC89C52作为控制器。
单片机运算能力强,软件编程灵活,自由度大。
在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,使用时容易掌握;采用STC89C52单片机稳定可靠、应用广泛、通用性强,在系统/在应用可编程。
方案比较:
采用方案一来实现十字路口交通灯控制系统非常方便,电路结构简单,控制单一,但整个系统性能不是很高,倒计时不是非常精确,如果要求系统能设置不同工作时间不容易,因而对于完成题目较困难,而方案二完全能实现设计要求,容易掌握,利用编程,易控制,I/O接口很多,易于扩展外围电路,价格便宜,故选择方案二。
2.3显示模块选择方案
该系统要求完成倒计时、状态灯等功能。
基于上述原因,考虑了三种方案。
方案一:
完全采用数码管显示。
这种方案只显示有限的符号和数码字苻,无法胜任题目要求。
方案二:
完全采用点阵式LED显示。
这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。
方案三:
用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能。
方案比较:
方案一和方案二都不符合设计要求,实现较复杂,而方案三采用数码管与LED灯相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
权衡利弊,选择方案三。
2.4输入模块方案选择
方案一:
采用8155扩展I/O口及键盘,显示等。
该方案的优点是:
使用灵活可编程,并且有RAM,及计数器。
若用该方案,可提供较多I/O口,但操作起来稍显复杂。
方案二:
直接在IO口线上接上按键开关。
因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
2.5电源模块方案选择
电源是整个系统的“心脏”,它是系统稳定工作的保障,为使各个模块稳定工作,须有可靠电源。
下面考虑了两种电源方案。
方案一:
采用单片机控制模块提供电源。
该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高,不能驱动数码管。
方案二:
采用独立的稳压电源,采用开关电源作为整个系统的供电,它具有多路电源输出,此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,
方案比较:
方案一只采用单片机自身的I/O来驱动数码管显示是不行的,而方案二虽然要给各模块供电,但却能给各模块提供稳定可靠的电压从而达到显示明亮的程度。
故选择第二种方案。
2.6系统总体方案论证
经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机STC89C52作为整个系统的核心控制器件,主要负责整个系统工作的控制和运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;用触发按键构成系统的输入部分,它可以对系统进行状态设置,结合数码管,可根据交通情况对整个系统进行直观的控制;以开关电源作为系统电源部分,它有+12V、-12V、+5V、-5V电压输出,可方便对各个模块供电。
系统设计方框总图如图2所示:
三、硬件电路设计
3.1总体设计
本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:
单片机控制系统、键盘及状态显示、倒计时模块、电源模块等。
单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。
它由单片机振荡电路、复位电路等组成。
键盘及状态显示,开关键盘输入交通灯初始时间,通过单片机P3输入到系统。
系统采用一位共阳数码管倒计时计数功能,最大显示数字99。
在交通情况比较特殊的情况下,可以通过S1、S2、S3三个按键对对交通灯进行控制。
3.2STC89C52RC单片机简介
STC89C52RC是STC89系列单片机中应用较为广泛的一种型号,芯片内部有8KB的闪速存储器FlashROM。
内部的8KB存储器用于存放可编程控制器监控程序。
STC89C52RC单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。
STC89C52RC单片机原理图
89C52单片机引脚功能:
主电源及时钟引脚
此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。
(1)Vcc(40脚):
接+5V电源,为单片机芯片提供电能。
(2)Vss(20脚)接地。
(3)XTAL1(18脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的振荡器,可提供单片机的时钟控制信号。
(4)XTAL2(19脚)在单片机内部,接至上述振荡器的反向输出端。
控制引脚
此类引脚包括RESET(即RSR/VPD)、ALE、PSEN、EA,可以提供控制信号,有些具有复用功能。
(1)RSR/VPD(9脚):
复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位(REST)。
复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。
掉电期间,此引脚可接上备用电源(VPD),以保持内部RAM中的数据不丢失。
当Vcc下降到低于规定值,而VPD在其规定的电压范围内(5±0.5V)时,VPD就向内部RAM提供备用电源。
(2)ALE/PROG(30脚):
ALE为地址锁存允许信号。
当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。
即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。
但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。
ALE端可以驱动8个LSTTL负载。
(3)PSEN(29脚):
程序存储器允许输出控制端。
此输出为单片内访问外部程序存储器的读选通信号。
在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。
但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。
PSEN同样可以驱动8个LSTTL负载。
(4)EA(31脚):
EA功能为内外程序存储器选择控制端。
当EA端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器内的程序。
输入/输出引脚
此类引脚包括P0口、P1口、P2口和P3口。
(1)P0(P0.0~P0.7)是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位及数据总路线分时复用口,可带8个LSTTL负载。
(2)P1(P1.0~P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有内部上拉电阻,可带4个LSTTL负载。
(3)P2(P2.0~P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。
(4)P3(P3.0~P3.7)是一个8位准双向I/O口,除此之外每位还具有第二功能。
P3口功能表:
P3口各个位的第二功能
P3口的位
第二功能
说明
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
外部RAM写信号
P3.7
RD
外部RAM读信号
89C52单片机内部结构图:
图2-1单片机8051的内部结构
3.3单片机最小系统
1.时钟电路如图2-3所示
图2-3时钟电路
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
2.复位电路
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。
当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
复位操作不会对内部RAM有所影响。
常用的复位电路如图2-4所示:
图2-4复位电路图
3.LED显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一,如图2-5所示。
图2-5LED显示器的符号图
发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
图是共阳式、共阴式LED数码管的原理图和符号。
4.原理图
四、软件设计
4.1程序流程图
4.2具体程序
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitred1=P2^0;//定义六个灯分别为P1.0~7
sbityellow1=P2^1;
sbitgreen1=P2^2;
sbitred2=P2^5;
sbityellow2=P2^4;
sbitgreen2=P2^3;
sbitkey1=P3^0;//模式选择键
sbitkey2=P3^1;//数值+
sbitkey3=P3^2;//数值-
sbitkey4=P3^3;//暂停开始键
ucharaa,qian,bai,shi,ge,bb,shu1,shu2;
uintnum,key1num,key4num;
//定义数组0~9
ucharcodetable[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90};
//延时函数z毫秒
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//初始化函数
voidinit()
{
TMOD=0x01;//设置定时器T0为工作方式1
TH0=(65536-50000)/256;//赋初值
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;
TR0=1;//开定时器
num=40;//数码管初始显示40
qian=num/10;
bai=num%10;
red1=1;//起始状态为南北绿灯,东西红灯
yellow1=1;
green1=0;
green2=1;
yellow2=1;
red2=0;
bb=1;
key1num=0;
//key4num=0;
shu1=40;//南北通行时间初始为40s,东西通行时间初始为25s
shu2=25;
}
//数码管显示函数
voiddisplay(ucharqian,ucharbai)
{
P0=table[bai];
delay
(1);
P1=table[qian];
delay
(1);
}
//键盘扫描函数
voidkeyscan()
{
if(key1==0)
{
delay(10);//消抖
if(key1==0)
{
key1num++;
if(key1num==4)
{
key1num=1;
}
while(!
key1);
if(key1num==2)//按下第一次进入设置南北通行时间模式
{
TR0=0;
num=40;
qian=num/10;
bai=num%10;
display(qian,bai);
green1=0;
yellow1=0;
red1=0;
green2=1;
yellow2=1;
red2=0;
}
if(key1num==1)//按下第二次进入设置东西通行时间模式
{
TR0=0;
num=25;
qian=num/10;
bai=num%10;
display(qian,bai);
//key1num=0;
green1=0;
yellow1=0;
red1=1;
green2=1;
yellow2=0;
red2=0;
}
}
}
if(key1num!
=0)//当key1键被按下
{
if(key2==0)
{
delay(10);
if(key2==0)//按下key2键调整南北通行时间
{
num--;
qian=num/10;
bai=num%10;
display(qian,bai);
shu1=num;//将设置后的时间赋给shu1
if(shu1==0)
{
shu1=40;
num=shu1;
qian=num/10;
bai=num%10;
display(qian,bai);
}
}
while(!
key2);
}
if(key3==0)
{
delay(10);
if(key3==0)//按下key3键设置东西通行时间
{
num--;
qian=num/10;
bai=num%10;
display(qian,bai);
shu2=num;//将设置后的值赋给shu2
if(shu2==0)
{
shu2=25;
num=shu2;
qian=num/10;
bai=num%10;
display(qian,bai);
}
}
while(!
key3);
}
}
/*if(key4==0)
{
delay(10);
if(key4==0)
{
key4num++;
while(!
key4);
if(key4num==1)
{
TR0=1;
}
if(key4num==2)
{
TR0=0;
key4num=0;
}
}
}*/
if(key1num==3)
{
TR0=1;
}
}
//主函数
voidmain()
{
init();
while
(1)
{
display(qian,bai);
keyscan();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC 单片机 交通灯 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)