断0的中断方式为电平触发
voidserve_INT0i
terrupt0
外部中断0,用于检测接收信号
TR00
关闭定时器0
EX00
关中断
timelo
gTL0
timelo
gTH0256
CLflag1
fCTC1中断服务程序,中断一次用于发射voidCTC1_INTi
terrupt3
VOLCKVOLCKcshu
voidCTC0_INTi
terrupt1
TR00ET00
voidTimetojuli将测量的时间转换为距离
lo
giilo
gtimeii340
fii2
umber4i十米ii
umber4
umber3i1000000米ii
umber31000000
umber2i100000分米ii
umber2100000
umber1i10000厘米iilo
g
umber110000
umber0i1000毫米uchargetkey读键盘主程序voidmai
i
tikeyi
it_CTC初始化定时器
fi
it_INT
初始化外部中断
CLflag1
测量标志
fori6i4idispi0xff
cshu0
传数
delay200
延时
IE0x80
开中断
ET10
ET00
TR10
TR00
TL1T12usTH1T12us
while1
keygetkey读键盘
ifkey0x0feCLflag1测量
key0CLflag0
cshu0
fTL1T12usTH1T12us
TL00TH00定时器0的初始时间
TR01
启动定时器0,开始记时
TR11
启动定时器1,发送信号
ET11
whilecshu12
ET10
发十个脉冲串
TR10
delay95
EX01
whileCLflag
ifcshu10CLflag1
Timetojuli
dispfb
fuchargetkey
charflagucharkeykeytempflag0keytempP1ifkeytemp0xffretur
255elseflag1delay100keyP1ifkeykeytempretur
keyelseretur
255
f五、实验结果及分析
表2是利用本文的测距仪进行实际测量的结果。由表中数据可见在20~150cm范围内误差相对较小;小于20cm范围内误差较大,这是因为超声波距离测量存在一定范围的盲区盲区的出现是因为发出信号必须有一个上升时间当距离太近时计算机系统已不能处理迅速返回的反射波信号所以距离小于02米测量误差明显增加。
300cm以后的数据误差明显增大这是由于发射功率不够大接收到的信号很微弱引入了一些干扰因素。但电路引入温度补偿电路后总的实验结果误差在厘米级基本上可以满足测量要求。
实际距离
cm
测量结果19
31
39
51
60
69
88100
cm
误差
5
2
0
0
实际距离
cm
测量结果126
147195221235251270312
cm
误差
2
4
表2测距仪实测结果
结束语
本系统利用超声波传感器实现无接触式空气测距没有考虑环境温度对超声波传递速度的影响故本系统在常温下具有测量精度高、抗干扰能力强、反应速度快等特点可适用于各种水文液位测量、障碍物的识别以及车辆自动导航等领域因此具有广阔r