超声波倒车雷达

发布时间 : 星期一 文章超声波倒车雷达更新完毕开始阅读

基于单片机的超声波倒车雷达系统设计-

SUBB A, #3CH MOV 30H, A

SETB EX0 //开外部中断0 POP ACC POP PSW RETI

4.3 主程序

主程序是单片机程序的主体,整个单片机端系统软件的功能的实现都是在其中完成的,在此过程中主程序调用了子程序及中断服务程序。程序首先完成初始化过程,然后是一个重复的控制发射信号的过程,即调用发射子程序几遍,而且每次发射周期结束都很判断在发射信号后延时等待的过程中是否发生了中断,即是否有回波产生来判断程序的流程。

工作时,微处理器AT89C51先把p1.0置0,启动超声波传感器发射超声波,同时启动内部定时器T0开始计时。要检测返回信号必须在启动发射信号后1.4毫秒才可以检测,这样就可以抑制输出的干扰。当超声波信号碰到障碍物时信号立刻返回,微处理器不停的扫描int0引脚,如果int0接收的信号有高电平变为低电平,此时表明信号已经返回,微处理器进入中断关闭定时器。再把定时器中的数据经过换算就可以得出超声波传感器与障碍物之间的距离。然后再根据现场情况进行声光报警。下图4-2为主程序流程框图;

第 9 页 共 30 页

基于单片机的超声波倒车雷达系统设计-

图4-2 主程序流程框图

4.超声波发送及接收中断程序

超声波发生子程序的作用是通过P1.1端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。主程序利用为中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入中断程序后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1即X=1。如果当计时器溢出是还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2,及X=2以表示此次测距失败。超声波发射程序比较简单,主要包括T0中断服务程序和超声波接收中断服务程序。

第 10 页 共 30 页

基于单片机的超声波倒车雷达系统设计-

图4-3 T0中断子程序

图4-4 超声波接收中断子程序

4.5 显示子程序和报警子程序

先进行动态显示初始化将指针指向缓冲区首地址,然后去显示位指针,取要显示的数,再将数变成段码,然后将段码送段控制器,位码送位控制器,在延时,然后判断是否是最后一位,是否显示完毕,没有的话修改该缓冲区指针和位码,直到显示完毕。

显示及报警子程序框图:

第 11 页 共 30 页

基于单片机的超声波倒车雷达系统设计-

初始化 取测量值

开位选

LED显示 查表送段码 位选左移一位 距离小于 1.5m Y 修正段码指针 N N 报警 返回 显示完毕 图4-6 报警子程序框图

Y

返回

图4-5显示子程序框图

外部中断入 报警子程序 4.6 报警刷新程序

在本设计中,使用单片机的三个端口控制三个发光二极管作为显示,每一个LED对应一个超声波测距模组,当探测到0.35~1.5M的范围内没有障碍物时,对应的LED是长灭的;当探测到0.35~1.5M范围内有障碍物时,对应的LED则以一定频率闪烁,而且距离越近则闪烁的频率越高。

系统以1HZ中断对显示进行扫描,并设置有三个变量保存对应传感器模组的频率设置数据,即Show-Freq-Set(0)、Show-Freq-Set(1)、Show-Freq-Set(2)。当频率设置数据为0时,系统则不对应的LED进行显示翻转,则对应的LED不会闪烁;此外,系统还定义有三个变量(Show-Counter-1HZ(x),x=0~2)作为1KHZ的计数器,对应三个LED,而当频率设置数据不为0时,计数器会不断地计数(以1KHZ),当计数器的计数值累加到与频率设置数据一样时,则会使对应的LED显

第 12 页 共 30 页

联系合同范文客服:xxxxx#qq.com(#替换为@)