超声波测距课程设计报告书.docx
《超声波测距课程设计报告书.docx》由会员分享,可在线阅读,更多相关《超声波测距课程设计报告书.docx(16页珍藏版)》请在冰豆网上搜索。
超声波测距课程设计报告书
.
河北联合大学
2009级本科课程设计
超声波测距仪
姓名:
任燕凯
学院:
电气工程学院
专业:
电气
(1)
学号:
10
指导教师:
刘丽萍
2011年12月
...
.
电气工程学院课程设计评审表
学生姓名
任燕凯
专业
电气工程及其自动化
年级
09学号
课程
数电
设计题目
超声波测距仪
评价内容
评价指标
有扎实的基础理论知识和专业知识;能正确设计实验方案(或正确建立
数学模型、机械结构方案);独立进行实验工作;能运用所学知识和技
业务水平
能去发现与解决实际问题;能正确处理实验数据;能对课题进行理论分析,得出有价值的结论
综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正论文(设计确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,说明书、图书写工整规范,图表完备、整洁、正确;论文结果有应用价值;图纸绘
纸)质量制符合国家标准,质量符合要求;计算及测试结果准确;工作中有创新意识;对前人工作有改进或突破,或有独特见解
工作量、按期完成规定的任务,工作量饱满,难度较大;工作努力,遵守纪律;
工作态度工作作风严谨务实
合计
指导
教师
评语
10
评分评定
权值成绩
50
50
100
...
.
1
2
1.1
2
1.2
2
2
2
3
2
3.1
2
3.2
3
3.3
5
3.4
5
4
6
7
...
.
超声波测距仪的设计
1设计任务与要求
1.1基本功能
完成2米以内的距离测量并通过数码管显示
1.2扩展功能
接收部分采用CX20106A红外接收芯片,使回波更容易被接收,使实验省去了繁琐的调试。
2超声波测距仪设计原理
超声波测距仪的总体框图如图1所示,主体电路完成超声波(40KHZ)的发射,接收及距离的显
示。
图1超声波测距仪总体框图
3各部分的电路设计
3.1显示部分
3.1.174HC138译码器的工作原理(如真值表所示)
...
.
表1译码器器的真值表
3.1.2译码电路与显示电路的工作原理
单片机控制段选,译码器控制位选,来完成显示部分
3.2发射部分
3.2.1波形的产生
利用单片机的T2定时中断产生40KHZ的脉冲,通过软件产生的脉冲,频率比较准确,
易于驱动超生波的发出。
...
.
3.2.2发射部分
输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极。
另一路经两级反向器
后送到超声波换能器的另一个电极。
用这种推挽形式将方波信号加到超声波换能器两端。
可以提
高超声波的发射强度。
输出端采用两个反向器并联。
用以提高驱动能力。
上拉电阻R10、R20一
方面可以提高反向器74LS04输出高电平的驱动能力。
另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。
3.3接收部分
使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。
其总放大增益80db。
电路如下图所示
...
.
CX20106A的引脚注释。
1管脚:
遥控信号输入端,该脚和地之间连接PIN光电二极管,该脚的输入阻抗约为40kΩ。
2管脚:
该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数
值能改变前置放大器的增益和频率特性。
增大电阻R1或减小C1,将使负反馈量增大,放大倍数下
降,反之则放大倍数增大。
但C1的改变会影响到频率特性,一般在实际使用中不必改动,推荐选
用参数为R1=4.7Ω,C1=1μF。
3管脚:
该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则
为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3
μf。
4管脚:
接地端。
5
管脚:
该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率
f0,阻值越大,中心频率越
低。
例如,取R=200kΩ时,f0≈42kHz,若取R=220kΩ,则中心频率
f0≈38kHz。
6管脚:
该脚与
地之间接一个积分电容,标准值为
330pF,如果该电容取得太大,会使探测距离变短。
7
管脚:
遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,
推荐阻值为22kΩ,没有接受信号是该端输出为高电平,有信号时则产生下降。
8
脚:
电源正极,4.5~5V。
最初,我们直接用
7脚输出,但用示波器发现无信号是其输出高电平
的同时夹杂这少量的低电平。
因此,我们在此处再加一个旁通电容,平均华其电压输出,以去除低电平信。
3.4单片机最小系统
最小系统由复位部分和晶振部分组成,原理图如下所示。
...
4程序设计
本设计采用T0定时器控制的计算。
程序流程图如下所示:
程序初始化
N
按键是
否按下
Y
T0开始计时
开始发超声波
N判断是
不是20
条波
.
20条脉冲的输出,用T2的捕获功能来完成回波信号的接收和时间
Y
T2开始计时
N检测
回拨
信号
...
.
YY
T2停止计时记
T0停止计时录时间
计算距离
数码管显示
5参考资料
数字电路第五版;
单片机及应用系统设计;
程序如下:
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeduma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbita=P3^0;
sbitb=P3^1;
sbitc=P3^2;
sbitfa=P1^0;
sbitz=P1^4;
ucharsign_failure;
ucharsign_success;
ucharqian,bai,shi,ge;
uints,t,count;
voiddelay(ucharx);
voidinit();
voidmeasure();
voiddisplay();
voidmain()
{
...
.
init();//程
序初始化
while
(1)
{
measure();//测
量函数
qian=s/1000;//为
显示计算数值
bai=(s/100)%10;
shi=(s/10)%10;
ge=s%10;
display();//显示函数
}
}
voiddelay(ucharx)//延时函数
{
uchari,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
voidinit()
{
fa=0;
count=0;
z=1;//指
示灯亮
s=0;
t=0;
EA=1;
TMOD=0x02;//T0
工作在方式1
T2CON=0x09;//T2
工作在捕获模式
ET0=1;
ET2=1;
...
.
}
voidT0_0()interrupt1//T0中断
函数
{
if(TH0==(256-12))
TH0=256-13;
else
TH0=256-12;
fa=!
fa;
count++;
}
voidT2_2()interrupt5//T2中断
函数
{
if(TF2)
{
TF2=0;//T2溢出
也没检测到波
sign_failure=1;//测量失
败位置1
}
else
{
EXF2=0;
t=RCAP2H*256+RCAP2L;//计算时间
sign_success=1;//测量成功
位置1
}
}
voidmeasure()//测量函数
{
sign_failure=0;
sign_success=0;
...
.
TR0=1;//开T0中
断
TR2=1;//开T2中
断
TH0=(256-12);
TL0=(256-13);
TH2=TL2=0;
//T2初值设为零
while(count<16);
TR0=0;//停止
发射
count=0;//关闭
T0
while(sign_success==0)
{
if(sign_failure)
{
TR2=0;//关闭
T2计时
z=0;//指示
灯灭
}
TR2=0;
s=t*0.157;//计算距离
}
}
voiddisplay()//显示函数
{
a=b=c=0;
P2=duma[qian];//显示第一位
delay(10);
a=1;
b=c=0;
P2=duma[bai];//显示第二位
delay(10);
...
.
a=c=0;
b=1;
P2=duma[shi];//显示第三位
delay(10);
a=b=1;
c=0;
P2=duma[ge];//显示第四位
delay(10);
}
...