新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用MC68HC705J1A实现超声波汽车倒泊防撞报警器的设计

用MC68HC705J1A实现超声波汽车倒泊防撞报警器的设计

作者: 时间:2013-01-19 来源:网络 收藏

探测头选频频率为40kHz方波,由软件在单片机的发送管脚PA6和PA7上直接产生20个方波脉冲,再通过变压器升压变换,经探测头发射出去。由于传感器本身的恢复过程,发射结束后仍有不大于500μs的阻尼震荡。发射信号同时回送到接收电路。

发射信号遇到障碍物后反射回来,由同一探测头接收并送到接收电路。接收电路对反射信号进行多级放大和检波,最后通过开关电路到达单片机的接收管脚PA0或PA1。当接收电路有信号时,开关三极管Q1导通,PA0或PA1为低电平;否则,三极管截止,PA0或PA1为高电平。检测PA0或PA1的管脚状态,就可以得到超声波探测头接收到第一个反射信号的时刻,从而计算出从发送信号到接收到第一个反射信号的时间,再进一步计算出障碍物与汽车的距离。发射信号波形、接收电路信号波形和单片机接收管脚信号波形如图4所示。

44.jpg

4 超声波汽车的软件设计

超声波汽车的软件采用汇编语言。程序流程如图5所示。

55.jpg

系统联调时发现,当检测环境比较复杂时,检测值会出现常数0或随机数的现象,因此,实际检测并不是以一次检测值进行计算的,而是将本次检测值与之前连续9次的检测值(共10次)进行比较(取平均值),从而得出一个最终检测结果,再计算出距离,根据距离所属的范围报警。检测一次所需时间为50ms。

一般报警程序中所需的时间参数都是由定时器通过硬件计数进行中断控制,但是超声波检测中,在发射信号期间不允许中断,否则导致发射信号频率不精确;同时在检测过程中如果产生定时器中断,也会给计数带来误差。因此,报警程序不采用中断方式,而是将检测报警所需的时间参数与单次检测时间(50ms)结合起来,将蜂鸣器的鸣响频率和LED的闪动频率规定为500ms,即检测10次的时间。报警时间参数与检测次数之间的关系如表1所示。

1.jpg

检测主程序如下:

org 0300h

lda #00

sta counta ;报警计数器清0

lda #$fd

sta portad ;设置A口输入/输出方向

lda #$ff

sta portbd ;设置B口输入/输出方向

ldx buffer ;缓冲区首地址 → x

transmit: jsr transp ;调用发射20个脉宽为250μs方波子程序



评论


相关推荐

技术专区

关闭