图4.1 主程序流程图4.3 超声波接收和发射子程序
超声波每过60ms发送一次,通过定时器T0中断发送超声波,超声波发送后延时一段时间后返回,防止余波被接收头接收误判。超声波发生子程序包括定时中断服务子程序(如图4.2所示)和外部中断服务子程序(如图4.3所示)。
图4.2 定时中断服务子程序
图4.3 外部中断服务子程序
它们的作用是通过P1.0端口发送2个左右的超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功[15]。部分C语言程序如下: AT89C51单片机的身高自动测量系统设计+Proteus仿真图(8):http://www.youerw.com/zidonghua/lunwen_9261.html