毕业设计、毕业答辩的要求和难度不断提高,传统的毕业设计题目缺乏创新性和亮点,往往达不到毕业答辩的要求。近两年来,学弟学妹们屡屡向学长反映,自己做的项目体系不符合老师的要求。
为了帮助大家顺利、用最少的力气完成毕业设计,学长们分享了优秀的毕业设计项目,今天给大家分享:基于51单片机温度补偿的超声波测距设计
1 系统硬件电路设计 1.1 总体方案设计 1.1.1 系统概述
以STC89C52单片机为核心组成最小单片机系统,以HC-SR04超声波传感器为基础采用距离传感器的传感模块、基于多通道的温度采集模块,采用1602液晶作为显示模块和按键模块,以NV020C语音芯片作为语音模块和5VUSB电源模块。
1.2 MCU最小系统电路
单片机最小系统是使单片机能够进行简单操作的最小部件。晶振电路一般采用复位电路和电源组成的系统。晶振为单片机提供稳定的时钟,其大小取决于单片机的时钟周期要求。复位电路由电容串联电阻组成,使单片机程序恢复到初始状态,并从初始状态开始运行。电源用于供电,一般采用USB接口供电或5V直流源电压供电。
1.3 HC-SR04模块
HC-SR04使用IO接口的TRIG触发范围,决定变量为:使用DC-5V电压,待机电流小于2mv,输出电平大于5V小于0V,探测角度小于等于15度,探测距离2cm-5cm。
1.3.1 HC-SR04模块使用的设备
(1)MAX232
MAX232的电源系统主要为+5v单电源方案,在断电模式下可将功耗降至5uW以下,适合电池供电系统。RS-232技术标准是最基本的要求,必须全部满足,只需要+5V电源即可。片内电荷泵具有升压、电压极性反转、低功耗等特点。系统集成了两个串联的RS-232控制器。
(2)TL074
TL074是一块低噪声4JFET输入运算放大器,在单片集成电路上集成了高压双极晶体管。1/4运算放大器是一个比较器,当3脚信号大于电源电压的1/2时,产生高电平。2/4和3/4运算放大器是带升压功能的带通放大器。4/4运算放大器是第一级放大,反向放大倍数约为4.7倍。
1.4 LCD显示电路
LCD1602液晶显示器是由字符液晶显示器、主控电路、扩展控制电路组成的字符液晶显示模块。给操作区加电压即可正常工作。它的原理主要是利用液晶的物理特性,使其正常工作,开机即屏即可正常工作。
1.5 DS18B20传感器电路 1.5.1 DS18B20简介
典型的数字温度传感器有DS18B20——本节主要介绍这种传感器。在与微处理器连接器连接时,它主要采用单总线接口,即为了解决微处理器与DS18B20之间双向通信困难的问题,只用一根端口线就可以完成。它的温度测量范围很广,使用过程中不需要任何外围元件。它的供电方式灵活,可以通过寄生电路获得电源。它体积较小,适应电压范围宽,性价比高,适合构建经济型测温系统。
1.5.2 时序描述
DS18B20 上的初始化序列首先根据所有通信中的一组复位脉冲启动主机,发送初始序列,然后发送 DS18B20 发送的响应脉冲。
在初始化序列期间,总线上的主机在总线上发送一个至少持续 480us 的复位脉冲。然后总线释放总线并进入接收模式。释放总线后,4.7k 上拉电阻将单总线的电平返回到更高电平。当 DS18B20 检测到上升沿时,它会等待 1560us。随后,它会沿着 60-240us 的总线线发送响应脉冲。
读取时间分为读取时间0us和读取时间1us,单总线从主机移除后,15us内释放总线,数据线传输到单总线,这是一个时间读取过程,我们至少需要60us才能完成。
写入时间依然分为两个过程:0us写入时间和1us写入时间。但是写入时间为0时,非常有必要将单总线放低至少60us,这样才能在15us到20us之间正确采样到电平“0”。15us。通过写入45us.1同步,如果需要值在15us范围内,前提条件是释放单总线放低。
1.5.3 DS18B20模块电路图
DS18B20的模块电路图1如下所示:
图1 DS18B20模块电路图 1.6 语音模块
本设计不仅可以通过超声波测量距离,还可以添加语言模块,为系统添加语音播报功能,使系统功能更加完善,更加全面。为系统设定一个临界值,当系统检测到小于这个临界值时,语音模块就会发出提醒。
1.6.1 NV020C 简介
NV是一款功能强大的一次性可编程芯片,可选的控制方式包括按键控制方式、并口方式、串口方式等,具有灵活的分段播放操作,音质好,性能高,有灵活的多种操作模式可供选择,音频输出时电流在20mA-120mA之间。
1.6.2 NV020C 引脚描述
语音芯片NV020C的引脚图如图2所示。
图2 NV020C引脚图
该芯片的8个引脚功能如下表1所示:
表1 引脚功能表
封装引脚
密码
简要描述;简介
功能说明
PB0
I0 端口
KEY按钮/BUSY信号输出
帕诺
I0 端口
钮扣脚
PA1
I0 端口
按钮引脚/串口数据输出
PWM1/DAC
喇叭
扬声器直接驱动0.5W,DAC输出
PWM2
喇叭
扬声器直接以0.5W驱动,DAC输出需要连接到VDD
电压源
电源
正电源2V-5.5V
地线
土地
土地
虚拟专用网络
编程电源
编程电源
1.6.3 控制方法
NVC系列语音芯片的激活方式有多种,单线串口触发、2线串口触发、3线串口触发、并口触发,按键模块组只能与单线串口触发、2线串口触发、3线串口触发共存。
1.6.4 控制时序
单线串口控制序列称为单线串口控制序列,由多种类型的数据位多级控制,复位信号为RESETB,在发送数据前先复位芯片。
1.6.5 语音模块电路
语音模块电路图如图3所示,第一脚与第三脚作为控制脚,第三脚与第四脚之间接的电阻为内置功放反馈电阻,调节该电阻可以控制音量。
图3 语音模块电路图
1.7 按键模块
根据这种结构,按钮又可分为触电开关按钮和非接触开关按钮。在单片机中,除了具有专门复位功能的复位按钮外,其他按钮都用于设定控制功能或输入有关开关状态的数据。在单片机中,常见的是独立键盘或矩阵键盘。如果控制系统只需要几个功能按钮,可以采用独立按钮结构。独立按钮采用I/O口组成的单一按钮电路,配置灵活,结构简单。如果系统按键较多(例如10个以上),可以采用矩阵键盘。矩阵键盘以4行I/O为行,4行I/O为列组成键盘,工作效率高。因此本系统中按键有3个,采用独立键盘按键连接方式。
2 软件设计 2.1 编程语言及开发环境
C是一种通用的、面向过程的、抽象的编程语言。C具有一定的处理能力和表达能力,可以轻松完成任意体系结构的构建,包含了其他编程语言所不具备的广泛的数据类型,并且可以直接对物理地址进行操作。
2.2 程序流程图 2.2.1 总体流程图
流程图如图3所示,首先进入液晶显示屏的初始化,使液晶显示屏状态为初始显示状态。然后进入定时器的初始化,使定时器状态进入初始状态。然后温度传感器检测环境温度,并传输到液晶模块进行显示。系统必须
根据传感器检测到的温度值和计时器记录的时间值计算出超声波速度,计算完成后显示在LCD模块上。若计算出的距离小于等于临界值,语音模块会发出语音报警提醒,然后进入下一个环节。若计算出的距离大于临界值,语音模块不会发出语音报警,直接进入下一个环节。当计算出的距离小于等于临界值时,语音模块会发出语音报警提醒。按下按键,立即进入临界值操作界面。至此一个循环结束,可以通过按键模块控制重复操作或者结束循环。
图3 程序流程图
2.2.2 1602 LCD 编程
液晶模块在开始显示之前需要确定行列坐标,比如系统需要确定显示在第2行第3列的位置,这样在确定显示位置之后,就可以在固定的位置显示所需的内容。液晶模块显示的字符是一个一个显示的,显示完一个字符之后,如果数据没有显示完所有内容,就会进入一个循环,确定下一个字符的行列坐标,确定位置之后,就可以显示内容了,显示数据的时候系统关闭,如果没有,就返回到循环中。
图5 LCD显示流程图
2.2.3超声波模块HC-SR04程序流程图设计
启动信号是第一个操作,单片机通过触发引脚向超声波模块发送启动信号,超声波模块接收到启动信号后,发出超声波开始测量,此时回波又回到高电平,如果此时引脚还是低电平,说明超声波模块还未完成测量范围,此时如果引脚由低变高,说明超声波测距结束。然后开启定时器,记录回波高电平的持续时间,记录完成后关闭定时器。定时器记录的时间就是超声波测距所用的时间。由于这只是超声波往返障碍物的时间,所以需要除以二,才表示超声波单程所用的时间。根据超声波的传播速度,结合相关公式,可以解出单片机距离物体的空间长度。
图6 超声波模块程序流程图 图7 温度传感器程序流程图
2.2.4 温度传感器编程
首先初始化传感器使其复位,其次发送Oxcc命令跳过ROM命令并发送Ox44命令给温度传感器使传感器进行温度转换,然后重新初始化传感器使其复位,然后发送Oxcc命令跳过ROM命令并发送Ox44命令给温度传感器使温度值可以读取。
示意图
PCB 图
如果您有任何疑问、需要建议或故障排除,请随时向我寻求帮助或支持。我擅长 MCU 相关知识,可以在电子设计、嵌入式系统、编程和硬件方面提供宝贵的帮助。无论您的问题属于哪个领域,您都可以向我咨询,获得有针对性的建议和指导。祝您在 MCU 设计领域取得巨大成功!