导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→jeje

* 97927: 那位大虾帮帮小弟,超声波测距程序设计(mc51汇编)附电路图,谢谢!

   明明 
明明发表的帖子 

 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

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:你好,你第二次回我的贴了.我已经加了你的QQ你好,你第二次回我的贴了.我已经加了你的QQ,有机会咱们
[下一篇帖子]:有DS19901991TM卡任何问题可以找我[原创]产品质量高于一切,质量观在兰德华公司深入人心受到