基于STC89C52单片机的交通灯设计讲解.docx
《基于STC89C52单片机的交通灯设计讲解.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的交通灯设计讲解.docx(27页珍藏版)》请在冰豆网上搜索。
基于STC89C52单片机的交通灯设计讲解
基于STC89C52单片机的交通灯设计
摘 要
一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。
信号灯控制的实现是通过电路与汇编程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了延时程序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。
电路部分原理图是通过用DXP软件绘制设计,汇编程序的设计与调试都在KEIL上完成。
最后使用DXP软件上的虚拟元件来代替所有的电路元件完成整个系统的调试和仿真,这样就大大保证了焊制硬件实物能正常运行。
本系统功能设计完善,采用AT89C51单片机为核心,具有实用,方便,灵活的特点。
随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。
本设计以单片机AT89S52为控制核心,以红、绿、黄三种LED发光管作为直行和左右拐弯以及行人通行的指示,以LED数码管作为倒计时指示,完成了题目要求的所有功能。
在此基础上增设了LED灯和数码管实时显示系统各种状态,还可根据交通拥挤情况分别设置主干道和次干道的通行时间以及紧急情况时可根据需要手动设置某干道车辆通行状态,紧急情况结束后再转成自动状态,并对系统机械结构进行了优化设计,整体性好,人性化强、可靠性高。
关键词:
单片机;交通灯;显示
摘要.....................................................................2
1绪论.....................................................................5
1.1交通灯的历史和现状.....................................................5
1.2单片机相关介绍.........................................................5
2系统设计.................................................................6
2.1课程内容..............................................................6
2.2系统硬件设计部分..........................................................6
2.2.1单片机系统..........................................................6
2.2.2复位电路......................................................7
2.2.3晶振电路......................................................8
2.2.4交通灯演示系统.............................................................8
2.2.5电源供电电路..........................................................9
2.2.674HC573的功能.....................................................9
2.2.7发光二极管......................................................11
2.2.8数码管............................................................12
3软件设计...............................................................124设计结果与分析..........................................................16
4.1proteus简介..............................................................16
4.2proteus仿真过程..............................................................16
4.3制板印制电路板PCB.............................................................18
4.3.1DXP简介..........................................................18
4.3.2电路原理图制作......................................................18
4.3.3PCB制作......................................................19
5实物图............................................................................22
5.1印制电路板概述..............................................................22
5.1.1印制电路板..........................................................22
5.1.2印制电路板结构......................................................22
5.1.3印制电路板的种类......................................................22
5.2印制电路板流程..............................................................23
5.3元器件安装与焊接.............................................................24
5.3.1手工安装......................................................24
5.3.2手工焊接...................................................................24
6系统调试................................................................26
6.1断电调试..............................................................26
6.2通电调试..............................................................26
6.3基本要求部分的测试与分析..............................................27
7结论................................................................27
参考文献...............................................................28
1绪论
今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。
道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。
现在交通系统已不能满足经济发展的需求。
由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。
智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。
使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用
2系统设计
2.1课题内容
本课题的主要内容包括如下几个方面:
(a).设计交通灯状态的管理方案;
(b).设计单片机最小系统和周边电路;
(c).设计交通灯系统、不间断供电系统以及中断系统的电路结构;
(d).设计整个系统的电路分布和接线;
(d).使用C语言编写整个系统运行所需要的程序,重点是分时管理系统和紧急中断系统的程序。
2.2硬件设计部分
根据本设计交通灯的模型和实现的功能,硬件部分可以分为以下两个大的系统:
单片机系统、交通灯演示系统、电源供电系统。
2.2.1交通灯系统电路
根据功能,交通灯的演示系统从功能上则分为:
倒计时电路、红绿灯功能电路。
交通灯演示系统电路图2.2.1如示。
倒计时电路主要是由双位共阴数码管和74HC573N驱动模块组成,控制信号通过单片机的端口P1口进行信号的传输。
倒计时电路负责的是显示红绿灯持续显示的时间。
当绿灯或者红灯持续显示时,数码管显示该状态的持续时间,在黄灯闪烁显示时,起到倒计时秒数的作用。
红绿灯功能电路主要是由各色的发光二极管和74HC573N驱动模块组成,控制信号跟数码管一样都是通过P1口进行传输。
红绿灯电路负责的是各个车行道和人行道通行状态的显示。
图2.2.1交通灯的电路图
2.2.2单片机系统
本设计单片机主要是用于控制交通灯的演示系统,故只需要单片机最小系统即可完成。
单片机的最小系统是指能够驱动单片机工作的最小电路。
此电路由单片机、时钟电路、电源、复位电路4个组成部分组成。
图2.2.2为单片机最小电路的电路图。
图2.2.2STC89C51最小系统图
2.2.3复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。
地址锁存信号ALE也为高电平。
图2.2.3为单片机复位电路的电路图
图2.2.3复位电路图
2.2.4晶振电路
STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按下图2.3所示方式连接。
晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在30pF左右。
根据实际情况,本设计中采用11.0592MHZ做系统的外部晶振。
电容取值为33pF。
图2.2.4为单片机晶振电路的电路图
图2.2.4晶振电路图
2.2.5电源供电电路
供电电路由主电源和备用电源组成。
主电源主要是由变压器、6A整流桥、4个二极管,2个104pf电容,二个电解电容以及7805三端稳压管组成。
这个部分为系统提供主要的供电,输出电压为5V直流。
备用电源主要是由4位的5号电池盒组成。
这个部分在主电源断电时能够几乎瞬时的为系统提供电源,输出电压也是5V直流。
该电源直接接到单片机的电源端。
图2.2.5主电源和备用电源切换功能电路
假设二极管处于截止状态,此时二极管阴极电位为4V,阳极电位为5V,所以电压差为1V,此时二极管一定处于导通状态,所以假设不成立。
当主电源工作时电池组也提供电源,这会造成两个不同电压的电源并联,造成干电池组给主电源充电。
而当选用两个二极管串联时,假设二极管处于截止状态,此时电压差为0.5V,0.5V<0.7V二极截止,假设成立。
而当主电源断开时,能提供电压为6V减去2个二极管的压降为3.6V,此电压能保证单片机正常工作。
3.2.674HC573的功能
图2.2.6
SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
×输出能直接接到CMOS,NMOS和TTL接口上
×操作电压范围:
2.0V~6.0V
×低输入电流:
1.0uA
×CMOS器件的高噪声抵抗特性
·三态总线驱动输出
·置数全并行存取
·缓冲控制输入
·使能输入有改善抗扰度的滞后作用
原理说明:
M54HC563/74HC563/M54HC573/74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出
将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,
新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
图2.2.6为74HC573引脚图。
HC573引脚功能表:
引脚号
符号
名称及功能
1
OE
3态输出使能输入(低电平)
2,3,4,5,6,7,8,9
D0toD7
数据输入
12,13,14,15,16,17,18,19
Q0toQ7
3态锁存输出
11
LE
锁存使能输入
10
GND
接地(0V)
20
VCC
电源电压
2.2.7发光二极管
半导体发光器件包括半导体发光二极管(简称LED)、数码管、符号管、米字管及点阵式显示屏(简称矩阵管)等。
事实上,数码管、符号管、米字管及矩阵管中的每个发光单元都是一个发光二极管。
图2.2.7是发光二极管图
图2.2.7发光二极管图
2.2.8数码管
1.LED数码管分类:
按其内部结构可分为共阴型和共阳型;
导通时正向压降一般为1.5~2V,额定电流为10mA,最大电流为40mA。
2.数码管工作原理
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。
通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。
根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
图2.2.8是数码管图
图2.2.8数码管图
3软件设计
相较于C语言,汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。
对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编语言很多。
综合以上C语言的优点,本设计在编程的时候选择了C语言。
本设计在编程环境上也选择了KeilμVision2.0。
这款软件支持众多不同公司的MCS51架构芯片,它集编辑、编译、仿真为一体,同时还支持PLM、汇编和C语言的程序设计,界面友好、简单易学,在调试程序。
软件仿真方面都有很强大的功能。
在初期的软件调试阶段,KeilμVision会提供非常便利的环境。
在本次设计中,采用了C语言作为程序编程的语言。
程序如下
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2^6;
sbitwela=P2^7;
sbitbeep=P2^3;
unsignedintpp;
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
ucharj,k,l=255;
uchara1,a0;
ucharshijian,deng=2;
voiddelay(unsignedinti)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
voiddisplay(unsignedcharsh_c,unsignedcharg_c)
{
dula=0;
P0=table[sh_c];
dula=1;
dula=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[g_c];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
}
voidmain()
{
TMOD=0x01;
TR0=1;
TH0=(65536-46080)/256;//由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。
TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12
ET0=1;
EA=1;
while
(1)
{
if(shijian==0)
{
switch(deng)
{
case0:
shijian=50;//红灯
deng=1;
break;
case1:
shijian=15;//黄灯
deng=2;
break;
case2:
shijian=50;//绿灯
deng=3;
break;
case3:
shijian=15;//黄灯
deng=0;
break;
}
}
if(pp==20)
{pp=0;
shijian--;
}
a0=shijian%10;
a1=shijian/10;
display(a1,a0);
switch(deng)
{
case1:
P1=0X00;//红灯
break;
case2:
//黄灯
if(shijian%2==0)
P1=0x00;
if(shijian%2==1)
P1=0xff;
break;
case3:
//绿灯
if(shijian%2==0)
P1=0x55;
if(shijian%2==1)
P1=0xaa;
break;
case0:
if(shijian%2==0)//黄灯
P1=0x00;
if(shijian%2==1)
P1=0xff;
break;
}
}
}
voidtime0()interrupt1
{TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
pp++;
}
4设计结果与分析
4.1Proteus简介
此次仿真使用的Proteus仿真软件,Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
目前来说,它是最好用的仿真外围器件及单片机的工具。
虽然在我国,对于它的使用才刚刚起步,但是已经受到了很多人是喜爱,如:
学生、教师、单片机爱好者以及一些从事于单片机开发人员。
Proteus是世界上著名的EDA仿真软件,从原理图的设计布图、代码的调试再到单片机与外围电路仿真,可一键切换到PCB设计,真正实现了从概念到产品的完整设计。
从目前来说,是世界上唯一将PCB设计软件、电路仿真软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持PIC10/12/16/18/24/30/DsPIC33、8051、AVR、HC11、8086、ARM和MSP430等,2010年又新增了DSP和Cortex系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持MPLAB、Keil和IAR等编译器。
4.2Proteus仿真结果
图2.2.1是在Proteus下做出仿真原理图,如图4.2.1所示,然后把.hex文件写入单片机AT89C51,运行并得出如下4.2.1仿真图,4.2.2为不同时刻的Proteus仿真图.