地震勘探仪器课程设计报告.docx
《地震勘探仪器课程设计报告.docx》由会员分享,可在线阅读,更多相关《地震勘探仪器课程设计报告.docx(18页珍藏版)》请在冰点文库上搜索。
地震勘探仪器课程设计报告
地震勘探仪器课程设计
实验报告
题目名称:
汽车尾灯控制电路设计
小组成员:
一、选题介绍
汽车作为现代交通工具已大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路,也已从过去的全人工开关控制发展到了智能化控制。
汽车的尾灯是其运行方式的最直接表示方式,令行人或其他车辆清晰明白它将要发生的动态变化,从而避免交通事故的发生。
本课题介绍了一种新型的基于单片机的汽车尾灯控制电路的设计方法,本设计主要解决如何更加灵活的汽车尾灯控制器进行控制,左转,右转和急刹车信息等。
通过设计汽车尾灯显示控制电路,能很好的综合运用我们所学到的单片机,C语言,模拟电路知识,熟悉电子电路设计的基本方法。
这次我们主要是运用单片机的相关知识用硬件来设计制作一个16位汽车尾灯显示控制电路的。
它的特点是电路简单,制作方便,容易操作,可反复擦写,性能可靠。
二、设计系统实现的功能
本次设计的任务是根据已知条件,设计、制作一个汽车尾灯显示的51控制电路。
设汽车尾部左右两侧各有3个指示灯(用发光二级管模拟),设计要求为:
1.汽车正常行驶时,6个指示灯全部熄灭。
2.汽车右转弯时,右侧3个指示灯按右循环顺序依次点亮。
3.汽车左转弯时,左侧3个指示灯按左循环顺序依次点亮。
4.汽车急刹车时,所有指示灯同时闪烁。
三.设计流程规划
1.设计任务
设计一个汽车尾灯控制电路,用6个发光二极管模拟汽车尾灯,即左尾灯(L1-L3)3个发光二极管;右尾灯(D1-D3)3个发光二极管。
用两个开关分别控制左转弯尾灯显示和右转弯尾灯显示。
当右转弯开关被打开时,右转弯尾灯显示的3个发光二极管按右循环显示。
当左转弯开关被打开时,左转弯尾灯显示的3个发光二极管按左循环显示。
当急刹车时,6个发光二极管闪烁。
图3.1左转弯显示规律图
图3.2右转弯显示规律图
图3.3急刹车显示规律图
根据以上要求,要实现当左转弯开关打开时,左转弯尾灯显示的3个发光二极管按左循环规律显示,如图3.1;当右转弯开关打开时如图3.2;急刹车时如图3.3。
根据不同的状态,绘制汽车尾灯和汽车运行状态表如下表所示。
设左转弯按键为LEFT,右转弯按键为RIGHT,急刹车按键为STOP。
汽车尾灯和汽车运行状态表
开关控制
汽车运行状态
左转尾灯
右转尾灯
LEFTRIGHTSTOP
L3L2L1
D1D2D3
111
正常运行
灯灭
灯灭
011
左转弯
L1→L2→L3→L1
灯灭
101
右转弯
灯灭
D1→D2→D3→D1
110
急刹车
闪烁
闪烁
2.系统设计规划图
3.总体设计思想
经过以上所述的设计内容及要求的分析,可以将电路分为以下几部分:
(1)单片机扫描与3个按键相连的IO口的高低电平来确定是那个按键按下去了;按键直接连在高电位上,当没有按键按下去的时候,这3个IO口管脚都是高电平;当某一个按键按下去后,与该按键想连接的IO口管脚变成低电平
(2)根据不同的按键按下去的情况,控制与6个LED相接的IO口的高低电平来控制LED亮灭情况。
4.程序流程图
程序流程:
1、初始化,让单片机的P2口的所有IO管脚全部为高电平
2、键盘扫描:
3、判断P1口的低三位哪个管脚为低电平
4、如果全是高电平,说明没有开关按下
5、如果不是全为高电平,说明有一个开关按下去
6、根据P1口低三位哪一位的电平为低电平来判断是哪个开关按下去的
7、如果是右灯开关按下,通过赋值与计算后的再赋值,让P2口对应的右边3个LED灯按右循环依次点亮。
9、如果是左灯开关按下,通过赋值与计算后的再赋值,让P2口对应的左边的3个LED灯按左循环依次点亮。
10、如果是急刹车开关按下,通过赋值与计算后的再赋值,让P2口对应6个LED灯闪烁。
5、芯片介绍
我们组选用的是AT89C52型号单片机。
AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
优点是:
加密性强,超强抗干扰,高抗静电,宽电压,不怕电源抖动,而且单片机内部的电源供电系统、复位电路等经过特殊处理等;通过编写程序可以实现高可靠性,超低功耗;在系统可编程,无需编程器,可远程升级等。
图3.4AT89C52单片机引脚
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
下面分别介绍各管脚功能:
Vcc(40脚),GND(20脚)—单片机电源引脚,不同型号单片机接入对应电压电源,常压为+5V,低压为+3.3V。
XTAL1(19脚),XTAL2(18脚)—外接时钟引脚。
XTAL1为片内振荡电路的输入端,XTAL2为片内振荡电路的输出端。
RST(9脚)—单片机的复位脚。
PSEN(29脚)—全称是程序存储器允许控制端。
ALE/PROG(30脚)—在单片机扩展外部RAM时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现地位地址和数据的隔离。
EA/Vpp(31脚)—EA接高电平时,单片机读取内部程序存储器[6]。
I/O口引脚—P0口,P1口,P2口,P3口。
P0口(39脚—32脚)—双向8位三态I/O口,每个口可独立控制。
P1口(1脚—8脚)—准双向8位I/O口,每个口可独立控制,内带上拉电阻,这种接口输入没有高阻状态,输入也不能锁存。
P2口(21脚—28脚)—准双向8位I/O口,每个口可独立控制,内带上拉电阻,与P1口相似。
P3口(10脚—17脚)—准双向8位I/O口,每个口可独立控制,内带上拉电阻,并且具有第二功能。
四、电路图设计及程序分析
1、在仿真软件中设计的系统设计结构图
图4.1系统设计结构图
2、单元电路设计
1)按键电路:
图4.2按键电路图
最左边为左灯开关,中间为右灯开关,最右边为急刹车。
单片机在不停的扫描3个按键相连的IO口的高低电平,当没有按键按下的时候,这3个IO口管脚都是高电平;当某一个按键按下去后,与该按键相连接的IO口管脚变成低电平。
2)LED电路:
图4.3LED电路图
要在左转向的时候,左边的3个灯左循环(由右向左)点亮;右转向的时候,右边的3个灯右循环(由左向右)点亮,急刹车的时候全部的LED同时闪烁。
3)含有晶振的驱动的电路:
图4.4晶振驱动电路图
没有驱动电路的话,也就是晶振不起振,那单片机就不能工作。
使用的是12M的晶振,两个电容一般很小(小于30PF)。
4)复位电路的设计:
图4.5复位电路图
3、运行程序
#include
voiddelay(unsignedintz)
{
unsignedintx;
unsignedchary;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidkeyscan()
{
unsignedchara,b,c,i,d;
b=P1;
b=b&0x07;
if(b!
=0x07)
{
delay(10);
c=P1;
c=c&0x07;
if(b==c)
{
switch(b)
{
case0x06:
{
a=0xfe;
for(i=1;i<=3;i++)
{
delay(1000);
P2=a;
a=a-i;
if(a==0xf8)
a=0xfe;
if(i==3)
i=0;
d=P1;
d=d&0x07;
if(d==0x07)
{
P2=0xff;
i=4;
}
}
if(i==5)
break;
}
case0x05:
{
a=0xdf;
for(i=1;i<=3;i++)
{
delay(1000);
P2=a;
a=a+(16/i);
if(a==0xfc)
a=0xdf;
if(i==3)
i=0;
d=P1;
d=d&0x07;
if(d==0x07)
{
P2=0xff;
i=4;
}
}
if(i==5)
break;
}
case0x03:
{
P2=0xc0;
delay(1000);
P2=0xff;
delay(1000);
d=P1;
d=d&0x07;
if(d==0x07)
break;
}
default:
P2=0xff;break;
}
}
}
}
voidmain()
{
P2=0xff;
while
(1)
{
keyscan();
}
}
五、电路调试与仿真结果
1.左转向灯控制开关按下时的效果图
图5.1按下左转向按键时仿真图(a)
L1点亮
图5.2按下左转向按键时仿真图(b)
L2点亮
图5.3按下左转向按键时仿真图(c)
L3点亮
2.右转向灯控制开关按下时的效果图
图5.4按下右转向按键时仿真图(a)
D1点亮
图5.5按下右转向按键时仿真图(b)
D2点亮
图5.6按下右转向按键时仿真图(c)
D3点亮
3、急刹车控制开关按下时的效果图
图5.7急刹车时的仿真图(a)
所有灯同时点亮
图5.7急刹车时的仿真图(b)
所有灯同时熄灭
六、调试过程心得体会
汽车尾灯是汽车的重要部件之一,它在交通安全中扮演着重要的角色。
这次设计的是简易汽车尾灯,实现较简单的逻辑功能。
通过这次汽车尾灯控制电路的设计,我们了解和掌握了逻辑电路的设计、分析。
这次课程设计,使我们学会了AT89C52单片机中程序的运行流程,学会如何通过对其内部进行操作,来控制LED的循环点亮。
并且,在这个课设中我们也学会了这款单片机的驱动电路和复位电路的设计,通过这个设计加强了动手、思考和解决问题的能力。
设计中基本实现了题目要求中汽车在运行时候尾灯点亮方式的各种情况。
遇到的难题及解决方法:
本次课程设计中,由于尾灯显示输出电路的电压和电阻值选取不当,导致该设计不能达到预期的输出效果,具体问题及所做的改进如下:
1.初次连接电路时,在六个LED显示灯的输出末端连接了一个10k欧姆的限流电阻,由于阻值过大,导致LED灯无法被点亮。
经过改进后,去除10k欧姆的大电阻,改为在每个LED灯的线路上各接一个300欧姆的小限流电阻,此时,LED灯可按设计要求被点亮。
2.给六个LED供电的电源的电压影响灯的亮度。
电压较低时,汽车进行左、右转弯,对应的三个灯等可正常发光;汽车刹车时,由于电压较低,灯的亮度明显降低。
电压过高时,会使得六个LED灯无法熄灭,即使开关断开仍有一定的亮度。
因此,选择合适的电压对设计的正常进行起着重要的作用。
最终确定选择最佳的电压为5V或者6V。
另外,在确定哪一个开关控制左、右和刹车灯时出现了一些分歧。
因为三个开关从左到右连接的依次是P1.0、P1.1和P1.2,若按照高位到低位的顺序排列,则编程方便;但是开关从左到右依次对应刹车、右和左灯,不太符合人的习惯。
于是决定将刹车和左灯控制开关对调,程序不变,这样符合常识,方便控制。
而且,仿真电路中LED灯的标号未改正,与设计有些出入,但不影响电路功能。