超声波测距数码管显示Word文档格式.docx
《超声波测距数码管显示Word文档格式.docx》由会员分享,可在线阅读,更多相关《超声波测距数码管显示Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
把所测出的距离分范围,超出2米或小于0.1米蜂鸣器报警,当处于正常范围时立即停止报警。
2原理框图
数码管声超显示模单51模片报警模块
系统原理框图)图(1
三、电路设计
1.电路设计
图
(2)电路图
2.主要性能参数计算
(1)超声波测距模块
本测距系统采用超声波渡越时间检测法。
其原理为:
检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。
设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。
超声波接收器收到反射波就立即停止计时。
再由单片机计算出距离,送数码管显示测量结果。
超声波测距的算法设计:
超声波在空气中传播速度为每秒钟340米(15℃
时)。
t2是接收超声波时刻,t1是超声波声波发射时刻,t2-t1得出的是一个时间差的绝对值,假定t2-t1=0.03S,则有340m×
0.03S=10.2m。
由于在这10.2m的时间里,超声波发出到遇到返射物返回的距离如下:
如图2-2-1为测距原理。
.
图(3)测距原理
因为θ/2角度较小,可以忽略不计,所以L≈S。
超声波发出到遇到返射物返回的距离如下:
L=Cx(t2-t1)/2;
由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速增加0.6米/秒。
表2-1列出了几种温度下的声速。
表1声速与温度的关系表
温---12310度(摄氏0
30
0
20
10
00
度)声33333333(米/速86
25
23
1344
38
49
19
秒)在使用时,如果温度变化不大,则可认为声速c是基本不变的,计算时取c为340m/s。
如果测距精度要求很高,则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正。
(2)单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机
可以工作的系统。
对52系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
单片机最小系统电路介绍:
52单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
52单片机最小系统晶振Y1也可以采用12MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
52单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
图(4)单片机最小系统
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周个机器周期,2的下降沿需要0到1由于检测一个从期间装入计数器。
S3P1期的.
因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/12MHz,即计数脉冲的周期要大于2ms。
程序流程图3.
图(5)程序流程图
四、电路制作及调试
1.实物图
通过以上步骤,制作出实物图。
如图所示:
图(6)数码管在正常范围显示
)数码管测出的数值7图(.
2.电路调试
电路主要的模块有三个:
报警模块、单片机最小系统、超声波模块。
通过调节超声波模块与障碍物的距离,来显示出数据。
并与实际距离作对比,并计算误差。
3.元件清单
表2元件清单
器件
型号
数量
电阻
220,10k
三极管
8050NPN管
4
单片机芯片
STC89C52
1
四位数码管
CL3461-AC
杜邦线
20cm
若干
电容
30pF,10uF
各一个
蜂鸣器
有源蜂鸣器
晶振
11.0592MHZ
五参考文献
[1]潘永雄.沙河.电子线路CAD实用教程(第四版)[M].西安电子科技大学出版社,2012.
[2]高吉祥.电子技术基础实验与课程设计(第二版)[M].电子工业出版社,2005.
[3]王港元.电子设计制作基础[M].江西科学技术出版社,2011.
[4]彭介华.电子技术课程设计指导[M].高等教育出版社,2009
[5]李朝青.单片机原理及接口技术(第三版)[M].北京航空航天大学出版社,2006.
[6]阎石.数字电子技术基础(第五版)[M].清华大学电子学教研组出版,2006.
社
附录1:
超声波测距程序
************************************************************************************************/
#include<
AT89x51.H>
//器件配置文件
#include<
intrins.h>
#defineRXP0_1
#defineTXP0_2
sbitbeep=P3^7;
unsignedinttime=0;
unsignedinttimer=0;
unsignedcharposit=0;
unsignedlongS=0;
bitflag=0;
unsignedcharconstdiscode[]
={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x80,0x7c,0x39,0x5e,0x79,0x71/*-*/};
unsignedcharconstpositon[4]={0x20,0x10,0x08,0x40};
voidDisplay(void)//扫描数码管
{
if(posit==0)
{P1=(discode[disbuff[posit]]);
}
else
{P1=discode[disbuff[posit]];
P2=positon[posit];
if(++posit>
=4)
posit=0;
}
voidConut(void)
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100;
//算出来是CM
if(S<
10|S>
200)//判断蜂鸣器响的数值范围
beep=1;
elsebeep=0;
if((S>
=700)||flag==1)//超出测量范围显示“-”
flag=0;
disbuff[0]=10;
//“-”
disbuff[3]=11;
disbuff[1]=10;
disbuff[2]=10;
disbuff[0]=S_x0010_00/100;
disbuff[1]=S_x0010_00_x0010_0/10;
disbuff[2]=S_x0010_00_x0010__x0010_;
/********************************************************/
voidzd0()interrupt1//T0中断用来计数器溢出,超过测距范围
flag=1;
//中断溢出标志
voidzd3()interrupt3//T1中断用来扫描数码管和计800MS启动模块
TH1=0xf8;
TL1=0x30;
Display();
timer++;
if(timer>
=400)
timer=0;
TX=1;
//启动一次模块
_nop_();
TX=0;
/*********************************************************/
voidmain(void)
TMOD=0x11;
//设T0为方式1,GATE=1;
TL1=0x66;
//设置定时初值
TH1=0xFC;
//1ms
//TH1=0xf8;
//2MS定时
//TL1=0x30;
ET0=1;
//允许T0中断
ET1=1;
//允许T1中断
TR1=1;
//开启定时器
EA=1;
//开启总中断
while
(1)
while(!
RX);
//当RX为零时等待
TR0=1;
//开启计数
while(RX);
//当RX为1计数并等待
TR0=0;
//关闭计数
Conut();
//计算
赣南师范学院科技学院
2014-2015学年第二学期期末考试
《单片机课程设计》成绩评定表
:
姓名:
王学号:
班级:
xxx班专业dana电子信息工程
课题名称
超声波测距
设计任务与要求
1)利用超声波测量距离。
(2)使用数码管显示测出的距离。
(3)在超出一定的范围后进行报警。
(
评分标准
基本功能)(50
焊接制作10()
程序设计(10)
扩展功能20()
个人发挥)(10
总分
(100)
指导老师
日月年时间: