断允许位EA。进行程序主程序后,进行定时测距判断,当测距标志位cl1,即进行测量一次,程序设计中,超声波测距频度是2次秒。测距间隔中,整个程序主要进行循环显示测量结果。当调用超声波测距子程序后,首先由单片机产生68个频率为3846kHz超声波脉冲,加载的超声波发送头上。超声波头发送完送超声波后,立即启动内部计时器T0进行计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机需要延时约152ms时间(这也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后,才启动对单片机P37脚的电平判断程序。当检测到P37脚的电平由高转为低电平时,立即停止T0计时。由于采用单片机采用的是12MHz的晶振,计时器每计一个数就是1μs,当超声波测距子程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(2)计算,即可得被测物体与测距仪之间的距离。
设计时取15℃时的声速为340ms则有:dc×t2172×T010000cm其中,T0为计数器T0的计算值。测出距离后结果将以十进制BCD码方式送往LED显示约05s,然后再发超声波脉冲重复测量过程。
42超声波测距子程序
voidcsbcj
ifcl1
TR10TH00x00TL00x00i20whilei
csboutcsboutTR01i150whilei
超声波测距子程序超声波脉冲个数10个
5
f00学院00学院
i0whilecsbi
t
iifi2450csbi
t0TR00TH10x9ETL10x57tTH0tt256TL0stcsbc2TR11cl0
基于AT89C2051的超声波测距系统毕业设计论文
判断接收回路是否收到超声波的回波如果达到一定时间没有收到回波则将csbi
t置零退出接收回波处理程序
计算测量结果
6
f00学院00学院
43超声波测距程序流程图
显示值
基于AT89C2051的超声波测距系统毕业设计论文
开始
初始化
启动定时器
测量标志0
超声波测距
距离上限值
N
距离盲区值
N0
测量段码转换
1
Y显示值CCC设定段码转换
显示
距离报警值
NY
报警输出
7
f00学院00学院
基于AT89C2051的超声波测距系统毕业设计论文
44超声波测距程子序流程图
超声波测距程子序流程图如图()所示。超声波测距
N
时间1s
Y发送超声波
启动计时器T0延时避开盲区
收到回波否?Y
停止计时
N
预设时间?N
Y
计算测量值
图()
结束
8
f00学院00学院
基于AT89C2051的超声波测距系统毕业设计论文
五调试及性能分析
51调试步骤
我们的步骤是先焊接各个模块,焊接完每个模块以后,再进行模块的单独测试,以确保在整个系统焊接完能正常的工作,原件r