基于单片机的超声波测距系统的毕业设计 - 图文 下载本文

基于单片机的超声波测距系统的设计

主程序流程图:

开始 系统初始化 位置回波接收标志位 发射超声波脉冲开定时器 延时0.1mS 开外部中断 计算距离 显示 N 回波标志位是否为1 Y 图4-2 主程序流程图

18

基于单片机的超声波测距系统的设计

4.2 系统中断程序设计

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

定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时间值的读取,距离计算,结果的输出等工作。

定时中断入口 定时器初始化 发射超声波 三方发射完否 Y 停止发射 N 返回 图4-3 定时中断服务子程序

19

基于单片机的超声波测距系统的设计

4.2.1超声波测距子程序设计

超声波发射子程序在P3.7口产生40kHZ方波脉冲宽度约12us,作为超声波发射器的输出信号。一旦接收到超声波返回信号后,就立即进入中断程序。进入中断程序后就立即关闭定时器,T0停止计时,并将接收到的标志位为1,,然后在主函数里调用计算距离公式,在显示出来,流程图如图4-4所示。

开始 发生超声波 停止发射,启动计数器开始计数 N 外部0是否有中断 Y 计数器停止 计算检测结果 结束 图4-4 超声波测距流程图

20

基于单片机的超声波测距系统的设计

4.3超声波温度补偿子程序设计

温度补偿流程图如图4-5所示。

开始 启动温度检测电路 得出对应的温度值 返回 图4-5 温度补偿流程图

21