INT0优先级为高
TCON0设置外部中断0得中断方式为电平触发
voidserve_INT0i
terrupt0
外部中断0用于检测接收信号
TR00
关闭定时器0
EX00
关中断
timelo
gTL0
timelo
gTH0256
CLflag1
CTC1中断服务程序12、5us中断一次用于发射
voidCTC1_INTi
terrupt3
VOLCKVOLCK
cshu
voidCTC0_INTi
terrupt1
TR00
ET00
voidTimetojuli将测量得时间转换为距离
lo
gi
ilo
gtime
ii340
ii2
umber4i10000000十米
ii
umber410000000
umber3i1000000米
ii
umber31000000
umber2i100000分米
fii
umber2100000
umber1i10000厘米
iilo
g
umber110000
umber0i1000毫米
uchargetkey读键盘
主程序
voidmai
i
tikey
i
it_CTC初始化定时器
i
it_INT
初始化外部中断
CLflag1
测量标志
fori6i4idispi0xff
cshu0
传数
delay200
延时
IE0x80
开中断
ET10
ET00
TR10
TR00
TL1T12usTH1T12us
while1
keygetkey读键盘
ifkey0x0feCLflag1测量
key0CLflag0
cshu0
TL1T12usTH1T12us
TL00TH00定时器0得初始时间
TR01
启动定时器0开始记时
TR11
启动定时器1发送信号
ET11
whilecshu12
ET10
发十个脉冲串
TR10
delay95
EX01
whileCLflag
ifcshu10CLflag1
Timetojuli
dispfb
fuchargetkey
charflagucharkeykeytempflag0keytempP1ifkeytemp0xffretur
255elseflag1delay100keyP1ifkeykeytempretur
keyelseretur
255
五、实验结果及分析
表2就是利用本文得测距仪进行实际测量得结果。由表中数据可见在20~
150cm范围内误差相对较小小于20cm范围内误差较大这就是因为超声波距离
测量存在一定范围得盲区盲区得出现就是因为发出信号必须有一个上升时间
当距离太近时计算机系统已不能处理迅速返回得反射波信号所以距离小于02
米测量误差明显增加。
300cm以后得数据误差明显增大这就是由于发射功率不够大接收到得
信号很微弱引入了一些干扰因素。但电路引入温度补偿电路后总得实验结果误
差在厘米级基本上可以满足测量要求。
实际距离20、030、040、050、0
cm
测量结果19
3
cm
误差
5
3、332、5
2
60、00
70、01、43
90、02、22
100、01000
实际距离cm
测量结果cm
误差
130、01263、08
150、0200、0220、0240、0260、0280、0300、0
5
251270312
22、50、452、083、463、574
表2测距仪实测结果
f结束语
本系统利用超声波传感器实现无接触式空气测距r