#基于STC89C52的超声波测距系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

接口实验报告

题目:基于STC89C52的超声波测距系统设计

一.实验目的

通过本次实验,掌握单片机的C语言程序设计,利用VC设计界面程序,实现单片机和PC机的通信。深入了解单片机内部结构,增强分析能力,并在实践过程中发现问题、解决问题,提高设计和调试微机应用系统的能力。

二.实验方案论证

本实验采用了三个定时器和串口直接下载,在本科使用过的AT89S52只要两个定时器,并且只能用专门的下载器去下载程序,所以它已经不能满足本次实验所设计的系统的要求。而微处理器STC89C52单片机内部有三个定时器。还支持ISP下载,只要一个MAX232和一些廉价的元件就能写程序,就不用专门的下载口和下载器,直接用串口下载。并且它是一款增强型51单片机,完全兼容MCS-51,价格较低,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B数据存储器,8K程序存储器等,这大大方便了本系统的设计。

本实验设计的系统选用的超声波传感器为T/R40,可以通过控制产生40kHz 的方波,来人工控制超声波传感器对超声波的收发。产生40kHz的方波我首先想到的是用NE555产出,经过实践调试特难。通过在网上查阅资料,发现用单片机的定时器产生既避免了调试困难,又精确。所以本系统由单片机使用定时器1编程产生40kHz的方波。由P1.6口输出,再经过74LS04驱动超声波传感器T40发

四.系统软硬件设计

1 系统硬件设计

1.1 RS232电平转换电路

52单片机的串口是RS-232C标准串口.RS-232标准时在RS-232标准的基础上经过改进形成的。其适合于数据速率在0至20kb/s范围内的通信,本次实验传送数据时波特率为9600,8位数据,无校验。

具体电路图如下:

图1 RS232电平转换电路

1.2 单片机及电源接口部分电路

单片机部分的复位及晶振电路都是常见的接法,电源用一个按键控制接通与断开,使得程序下载变得方便。

具体电路如下:

图2 单片机部分电路

图3电源部分电路

1.3超声波发射电路

为了提高发射强度,发射电路由反相器74LS04和超声波换能器构成,用推免形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反相器并联,用于提高驱动能力。图4是数字电路构成的超声波发射电路,它有单片机输出的40KHZ的方波信号一路径一级反相器后送到超声波换能器的一个电极,另一路径两级反相器后送到超声波换能器的另一个电极。

具体电路如下:

图4超声波发射电路

1.4超声波接收电路

超声波接收电路主要由CX20106A构成。集成电路CX20106A是日本索尼公司的一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。CX20106A用于在输入信号过强时防止前置放大器过载,内部设有带通滤波器,频率f0可由5脚的外接电阻或电位器调节。使用时调节方便,抗电磁干扰能力强。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,实验证明,用CX20106A接收超声波(无信号时输出高电平)具有很高的灵敏度和抗干扰能力。适当的更改电容C11的大小,可以改变接收电路的灵敏度和抗干扰能力。具体电路如下:

图5超声波接收电路

1.5温度修正电路

电路主要采用MAXIM 公司的DS18B20作为温度传感和测量装置,测量分辨率可选9位或12位。因此完全可以满足普通条件下的测温要求。DS18B20采TO 一92型封装只有3个引脚,一根电源线,一根地线,一根数据线,每片DS18B20有一个64位串行代码存储器。这里用P3.6口作为与DS18B20的数据输入输出口。

具体电路如下:

图6温度修正电路

1.5出错报警电路

若上位机和下位机传输数据时出错则通过P1.7控制蜂鸣器产生报警。

具体电路如下:

图7出错报警电路

2. 系统软件设计

软件设计主要包括两个部分,一是单片机程序设计,二是上位机程序设计。单片机部分主要包括两部分,一是超声波发射程序的设计;二是超声波接收程序的设计。

2.1.1超声波发射程序的设计

超声波发射所需的40KHZ的方波脉冲是通过单片机定时器/计数器T1工作在定时器工作方式2下产生的。定时器/计数器工作方式2具有自动重装计数初值的功能。不但省去了用户程序中的重装指令,而且也有利于提高计时精度,非常实用与循环定时或循环计数的应用。超声波的发射频率f0=40KHZ即周期T=1/f0=25us 那么超声波发射口P1.6口的输出电平经过1/2T即1/2*25us=12us就要跳变一次,可以使用定时器/计数器T1定时12us产生中断,在中断程序中改变P1.6口的输出电平。正因为在工作方式2下当计数溢出后可以将计数初值重新加载到TL0中重新计数,所以可以通过软件对超声波脉冲数进行控制,产生一串符合要

求的超声波脉冲。

2.1.2超声波接收中断程序的设计

与超声波发射程序相比,接收程序的设计要简单的多。主程序用外部中断0检测超声波返回信号,一旦接收到返回的超声波(P3.2引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0,T1停止计时,并将计数值赋给

1.如果当回信号,闭,

波的

下位

集超

将数

上位

保数

系统

值,

最后

送过程中单片机先发送0xff、0xaa作为握手信号,然后再将两字节定时器定时数据和两字节温度数据进行传送,最后传送校验和。系统运行中,单片机还要接收来自PC机的报警控制信息以及校验出错重传信息。单片机串口接收采用中断方式。下位机软件主流程图如下图7所示:

2.2 上位机程序设计

相关文档
最新文档