成都电子机械高等专科学校毕业设计(论文)
用单片机编程产生40kHz方波,可用延时程序和循环语句实现。先定义一个延时函数delays(),然后可用for语句循环,并且循环一次同时改变方波输出口的电平高低,从而产生方波。部分程序如下:
void delays() {} //延时函数 void main() {
for(a=0;a<200;a++) //产生100个40KHz的方波 {
P36=!P36; //每循环一次,输出引脚取反 delays() ; } }
单片机每隔一段时间产生一串40kHz方波,同时定时器开始计时,当收到回波,产生中断信号后,单片机执行中断程序。在中断程序中,先让定时器停止计数,然后读取时间,通过时间计算出所测距离,输出结果。
中断程序如下:
void intersvro(void) interrupt 0 using 1 //INTO中断服务程序 {
uint bwei,shwei,gwei; uchar DH,DL; ulong COUNT; ulong num;
TR0=0 ; //停止计数 DH=TH0; DL=TL0;
COUNT=TH0*256+TL0;
num= (344*COUNT)/20000; //计算距离 bwei=num/100; //取百位 gwei=(num-bwei*100)/10; //取十位 shwei=num; //取个位 P1=tab[bwei]; //输出百位 P0=tab[shwei]; //输出十位 P2=tab[gwei]; //输出个位 TH0=0;
10
成都电子机械高等专科学校毕业设计(论文)
TL0=0; }
本系统的LED显示采用了静态显示方式,并用单片机内部软件译码。这样简单方便,省去了复杂的外部译码电路。
软件译码只需要定义一个数组便可,程序语句如下: uchar
tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
这是共阳LED显示从0到9的字形码。
data
1.4本章小结
本章是该课题的重点,全面介绍了超声波测距系统的原理和设计思路,给出了硬件电路和软件的设计。在硬件电路的设计中,分别详细介绍了发射电路,接收电路及显示模块的设计方法。软件编程部分,给出了整个程序的思路以及程序流程图。
11
成都电子机械高等专科学校毕业设计(论文)
第2章 绪论
2.1 课题背景,目的和意义
传感器技术是现代信息技术的主要内容之一。信息技术包括计算机技术、通信技术和传感器技术,计算机技术相当于人的大脑,通信相当于人的神经,而传感器就相当于人的感官。比如温度传感器、光电传感器、湿度传感器、超声波传感器、红外传感器、压力传感器等等,其中,超声波传感器在测量方面有着广泛、普遍的应用。利用单片机控制超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且测量精度较高。
超声波测距系统主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以及一些工业现场例如:液位、井深、管道长度等场合。因此研究超声波测距系统的原理有着很大的现实意义。对本课题的研究与设计,还能进一步提高自己的电路设计水平,深入对单片机的理解和应用。
2.2两种常用的超声波测距方案
2.2.1基于单片机的超声波测距系统
基于单片机的超声波测距系统,是利用单片机编程产生频率为40kHz的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波波经反射物反射回来后,由传感器接收端接收,再经接收电路放大、整形,控制单片机中断口。其系统框图如图2-1所示。
图2-1 基于单片机的超声波测距系统框图
这种以单片机为核心的超声波测距系统通过单片机记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,在单片机的外部中断源输入口产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离,结果输出给LED显示
[1]
。
利用单片机准确计时,测距精度高,而且单片机控制方便,计算简单。许多
超声波测距系统都采用这种设计方法。
12
成都电子机械高等专科学校毕业设计(论文)
2.2.2基于CPLD的超声波测距系统
这种测距系统采用CPLD(Complex Programmable Logic Device)器件,运用VHDL(Very High Speed Integrated Circuit Hardware Description Language)编写程序,使用MAX+plusII软件进行软硬件设计的仿真和调试,最终实现测距功能。
CPLD器件内部的宏单元是其最基本的模块,能独立地编程为D触发器、T触发器、RS触发器或JK触发器工作方式或组合逻辑工作方式。它的这种特性非常适用于本系统,可将本系统所需要的分频功能、计数功能、振荡器、七段码显示全部由MAX来实现,而只需在外部配上适当的超声波传感器、接收和发送电路,即可组成一个测量精度高、性能稳定、响应速度快且具有显示功能的超声波测距仪。
本系统利用CPLD器件控制超声波的发射,并对超声波发射至接收的往返时间进行计数,将计算结果在LED上显示出来。配合使用MAX+plusII开发软件,可集设计输入、设计处理、设计校验和器件编程于一体,集成度高,开发周期短。其系统框图如图2-2所示。
图2-2 基于CPLD的超声波测距系统框图
超声波发射器向某一方向发射40kHz的超声波,在发射超声波的同时,MAX7128S内的计数器开始计数。超声波在空气中传播,途中碰到障碍物就会立即返回来。超声波接收器收到反射波后就将回波信号送到CPLD,CPLD立即停止计数。CPLD所计的时间就是超声波从传感器到被测物的往返时间。超声波在空气中的传播速度如设定为332m/s,根据计数器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=332t/2。CPLD开始计数后,只要传感器收到回波,CPLD就立即停止计数,即只有最先返回的超声波才起作用,也就是说超声波测距仪总是测得离传感器最近的物体的距离[2]。
本系统采用先进的CPLD器件,高性能、低成本地实现了距离的测定。
13
成都电子机械高等专科学校毕业设计(论文)
2.3课题主要内容
通过上节介绍我们知道,以单片机为核心的超声波测距系统设计简单、方便,而且测精度能达到工业要求。本课题研究的测距系统就是用单片机控制的。
通过超声波发射器向某一方向发射超声波,单片机在发射时刻同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为V,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离。
本系统利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。接收电路的输出端接单片机的外部中断源输入口。系统定时发射超声波,在启动发射电路的同时启动单片机内部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,在单片机的外部中断源输入口产生一个中断请求信号,单片机响应外部中断请求执行外部中断服务子程序,读取时间差,计算距离,结果输出给LED显示。
利用本测距系统测量,范围应在30cm~200cm内,其最大误差控制在10cm。
14