jeje
1、40khz 脉冲的产生与超声波发射
测距系统中的超声波传感器采用ucm40的压电陶瓷传感器,它的工作电压是40khz的脉冲信号,这由单片机执行下面程序来产生。
puzel: mov 14h, #12h;超声波发射持续200ms
here: cpl p1.0 ;输出40khz方波
nop ;
nop ;
nop ;
djnz 14h,here;
ret
前方测距电路的输入端接单片机p1.0端口,单片机执行上面的程序后,在p1.0 端口输出一?0khz的脉冲信号,经过三极管t放大,驱动超声波发射头ucm40t,发出40khz的脉冲超声波,且持续发射200ms。右侧和左侧测距电路的输入端分别接p1.1和p1.2端口,工作原理与前方测距电路相同。
2、超声波的接收与处理
接收头采用与发射头配对的ucm40r,将超声波调制脉冲变为交变电压信号,经运算放大器ic1a和ic1b两极放大后加至ic2。ic2是带有锁定环的音频译码集成块lm567,内部的压控振荡器的中心频率f0=1/1.1r8c3,电容c4决定其锁定带宽。调节r8在发射的载频上,则lm567输入信号大于25mv,输出端8脚由高电平跃变为低电平,作为中断请求信号,送至单片机处理。
前方测距电路的输出端接单片机int0端口,中断优先级最高,左、右测距电路的输出通过与门ic3a的输出接单片机int1端口,同时单片机p1.3和p1.4接到ic3a的输入端,中断源的识别由程序查询来处理,中断优先级为先右后左。部分源程序如下:
receive1:push psw
push acc
clr ex1 ;关外部中断1
jnb p1.1, right ;p1.1引脚为0,转至右测距电路中断服务程序
jnb p1.2, left ;p1.2引脚为0,转至左测距电路中断服务程序
return:setb ex1;开外部中断1
pop? acc
pop? psw
reti
right: ...? ;右测距电路中断服务程序入口
? ajmp? return
left:... ;左测距电路中断服务程序入口
? ajmp? return
3、计算超声波传播时间
在启动发射电路的同时启动单片机内部的定时器t0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在int0或int1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。其部分源程序如下:
receive0:push psw
push acc
clr ex0 ;关外部中断0
? mov r7, th0 ;读取时间值
mov r6, tl0?
clr c
mov a, r6
subb a, #0bbh;计算时间差
mov 31h, a ;存储结果
mov a, r7
subb a, #3ch
mov 30h, a?
setb ex0 ;开外部中断0
pop acc
pop psw
reti
发表时间:2006年9月19日23:24:20