汪老师分享 - 51单片机一种简易声波测距仪的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机一种简易声波测距仪的设计

第3章 系统硬件电路选择与设计

3.1 单片机最小系统

3.1.1 STC89C52芯片

此次毕业设计采用单片机作为控制核心,本文的系统硬件设计采用一个STC89C52单片机控制,它是一种低电压、高性能的COMOS8微处理器。STC89c52单片机具有40各引脚,速度快、价格便宜,而且往里烧程序简单,只需要一个串口就可以下载程序,还可以在线编程。它主要是一种采用ATMEL高密度非易受损失存储器工艺技术设计生产,并且兼容国际工业应用标准的tmcs-51指令集及其输出引脚。STC89C52是把中央处理器(CPU)、内部存储器(RAM)、只读存储(ROM)、定时器/计数器和多功能I/O端口集成在一个电路板上。因为其内部结构和普通计算机相似,因此我们可以把单片机看成一个简单的计算机系统。下面是STC89C52单片机所包含的具体内容:8位的中央处理器、8KBFlash程序内存、256bRAM数据存储器、一个片上的振荡器和时钟电路和三个16位定时器/计数器。一种64KB外部数据存储器并且具有寻址功能和64KB的外部程序存储器空间的控制电路。可编程I/O线有32条(4组8位并行I/O端口)。一种采用全双工串口式无线可编程数据通信。具有8个自动中断源及两个不同的优先中断级别的嵌套式中断控制系统。stc89c52片机,内部接口总线把各种主要应用功能部分紧密地串联连接在一起。其引脚图如图3-1所示

图3-1 单片机引脚图

3.1.2 复位电路

为了有效确保该控制电路能够安全、稳定、可靠地正常运行,复位电路必须是其中不可忽视的重要组成部分。复位电路具有以下功能:在给控制系统加电或充电时,它的系统会自动提供一个复位信号,并且系统会自动取消这个复位信号,直到整个控制系统中的电源电路运行稳定。为了保证电源的稳定和可靠性,在确保电源运行稳定后,需延迟一段时间再取消复位信号。目的是有效防止其中的复位信号受到电源插头自动开合时的抖动。当单片机复位引脚的机器周期多于2个时,那么该引脚就会被快速复位。如果rst一直为高电平,那么单片机将可能会一直处于复位的状态。因此,复位引脚所链接的电容大了,影响很小,只会使复位的时间变长没有别的影响。但如果复位引脚所链接的电容太小的话,那么单片机就不能正常的工作,因为高电平持续的时间非常短,不能正常复位。电容通常为10uf或22uf的铝解电容。

电容具有充放电的功能,复位电路在刚通电的时候,电容两端是没有电的,当一段时间后电容两段的电压就会接近电源电压,这个时间也就0.3秒左右。此时单片机的复位引脚就由原来的低电平转换为高电平。单片机就发生了复位,然后电容就开始放电。准备进行下一次复位。其原理图如图3-2所示。

图3-1 单片机引脚图

3.1.2 复位电路

为了有效确保该控制电路能够安全、稳定、可靠地正常运行,复位电路必须是其中不可忽视的重要组成部分。复位电路具有以下功能:在给控制系统加电或充电时,它的系统会自动提供一个复位信号,并且系统会自动取消这个复位信号,直到整个控制系统中的电源电路运行稳定。为了保证电源的稳定和可靠性,在确保电源运行稳定后,需延迟一段时间再取消复位信号。目的是有效防止其中的复位信号受到电源插头自动开合时的抖动。当单片机复位引脚的机器周期多于2个时,那么该引脚就会被快速复位。如果rst一直为高电平,那么单片机将可能会一直处于复位的状态。因此,复位引脚所链接的电容大了,影响很小,只会使复位的时间变长没有别的影响。但如果复位引脚所链接的电容太小的话,那么单片机就不能正常的工作,因为高电平持续的时间非常短,不能正常复位。电容通常为10uf或22uf的铝解电容。

电容具有充放电的功能,复位电路在刚通电的时候,电容两端是没有电的,当一段时间后电容两段的电压就会接近电源电压,这个时间也就0.3秒左右。此时单片机的复位引脚就由原来的低电平转换为高电平。单片机就发生了复位,然后电容就开始放电。准备进行下一次复位。其原理图如图3-2所示。

图3-2 复位电路

3.1.3 晶体振荡器电路

单片机系统的正常运行需要通过晶振来辅助起振,因此需要一个晶振电路,晶振电路的设计除了需要用到晶振外,还需要配合电容和单片机芯片上的两个反向放大器组成。晶振的选取也是有要求的,需要根据实际开发设计中的需求来选取,并不是一味的选择晶振频率越高,运行就越快的原理来选择。根据前人的设计经验,在51单片机开发中,主要有用到11.0592MHz和12MHz两种晶振频率,而本次晶振电路的设计中将选用12MHz的晶振来完成起振工作。而电容的作用主要是用来,给晶振电路提供正负反馈,为保证晶振电路上所产生的正弦波波形不会出现异常现象,将尽量选取电容值相等的两个电容来配合晶振电路的震荡,此次选取两个电容值为20pF电容来完成。晶振电路下图3-3所示:

图3-3 晶体振荡器电路

3.2 电源电路

单片机系统需要电源来维持运行,因此需要设计一个电源电路。电源电路是根据系统所有模块上的供电要求,进行合理的设计,并尽量做到电路设计整洁。首先本次单片机STC89C52单片机的工作电压为5V,而单片机系统上的其他模块的工作电压也都为5V,因此根据供电需求,本次将利用一个电源插口,电源开关设计一个5V输出的电源电路,为单片机系统提供工作所需的电压。本次设计的电源电路使用起来非常的便利,通过电脑的USB,或者充电宝的USB等类型的恒流5V输出插口,都能为系统提供工作所需电压。

3.3 超声波测距模块

在此次的超声波测距系统的设计中,选用超声波探测模块HC-SR04来实现距离的测量。HC-SR04模块的工作电源以及工作温度范围广,兼容3.3V-5V电源,同时在负15摄氏度至100摄氏度的范围间都能正常稳定的工作。探测精度高达3mm,探测的距离范围在2cm-450cm,可以通过改变模块上的增益电阻来加强探测的距离,当把模块上的增益电阻替换为4.7k的时候,HC-SR04模块的最大探测距离能够增加的700cm。模块功耗低,待机状态下的电流功耗仅有1ma,属于低功耗、高精度探测模块超声波探测模块HC-SR04提供两种输出方式分为主动输出和被动输出,这两种输出可根据使用需求通过模块上的设置按键进行切换。主动输出方式,就是模块会主动的发送此刻探测的距离信息给外接的处理器,发送的时间间隔为0.5s。被动输出方式,就是要通过外接的处理器发出一个探测请求指令后,模块才会响应,并反馈当前探测的距离信息给处理器。HC-SR04是一款接收一体化的一体机,与外部处理器是通过检查输出引脚高电平持续时间来完成距离的探测与计算,模块工作时会在设定好探测距离范围内,通过模块上的控制端口输出一个高电平来进行探测,不在设定的探测距离范围内将输出一个低电平进入待机状态。超声波探测模块HC-SR04探测的原理框图如下。

图3-4 超声波探测模块HC-SR04探测框图

超声波探测模块HC-SR04内部自带有40khz的方波信号,当他收到单片机传来的脉冲信号时就会把这个40khz的超声波信号发送出去,发射出去的信号遇到测量范围内的障碍物时,就会发生反射,反射回来的超声波信号,会被超声波模块内部的接收器接收,接收后的反射信号,会经过模块内部的增益放大电路进行放大处理,最后把得到的超声波信号时长,也就是输出的高电平产生时长,传输回单片机,单片机再根据超声波探测公式,距离=高电平时间 (s)*v/2(v的计算方式要看是在那种模式下的工作方式),加以温度补偿算出具体的速度,然后就能计算出所探测到的距离。超声波探测模块HC-SR04电路图如下。

图3-5 超声波模块HC-SR04电路设计图

将超声波探测模块HC-SR04的1,4引脚分别接电源的正负极,超声波探测模块HC-SR04的数据传输引脚T和E分别连接到单片机的P16和P17端口。T用作控制端输出,E用作接收端输出,也在探测物体时,单片机通过T引脚输出一个高电平,这个高电平的持续时长,一直到E引脚接收到返回的超声波信号为止,然后根据高电平的持续时长,通过超声波探测公式就能计算出当前的探测距离

3.4 显示电路

液晶显示有很多种,例如TFT液晶屏,TFT屏上的各个组成像素都设置有一个半导体的控制开关,每一个节点上都是属于个体独立,因此每个都可独立控制,气反应速度、对比度都相比普通的液晶屏有提高,在显示的颜色上也有更多的色彩选择,还具备动态画面的显示能力,于此同时相比普通的液晶屏耗电要快,价格要高,程序控制难度要大。还有LCD1602液晶屏,LCD1602是由很多的点阵字符位组成,因此也叫做点阵字符型液晶屏,他能显示英文,数字,以及符号。虽然没有TFT屏那样丰富的色彩显示和动画显示功能,但程序控制、耗电方面,以及价格方面都比TFT屏更有优势。最大的缺点就是有且只能对字符进行显示,所以常用与只需要显示字符的显示交互界面。虽TFT屏的性能更高,但LCD1602液晶屏就能满足本次的显示需求,因此从成本、控制难度方面考虑,选用LCD1602液晶屏来显示参数。此屏幕共有16个引脚,下面是我对引脚功能的介绍。

LCD1602液晶屏管脚说明和寄存器控制如表3-1,3-2所示。

表3-1 管脚功能表

引脚

符号

功能说明

1

VSS

一般接地

2

VDD

接电源(+5V)

3

V0

液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

4

RS

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5

R/W

R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

6

E

E(或EN)端为使能(enable)端,下降沿使能。

7

DB0

底4位三态、双向数据总线0位(最低位)

8

DB1

底4位三态、双向数据总线1位

9

DB2

底4位三态、双向数据总线2位

10

DB3

底4位三态、双向数据总线3位

11

DB4

高4位三态、双向数据总线4位

12

DB5

高4位三态、双向数据总线5位

13

DB6

高4位三态、双向数据总线6位

14

DB7

高4位三态、双向数据总线7位(最高位)(也是busyflag)

15

BLA

背光电源正极

16

BLK

背光电源负极

表3-2 寄存器选择控制表

RS

R/W

操作说明

0

0

写入指令寄存器(清除屏等)

0

1

读busyflag(DB7),以及读取位址计数器(DB0~DB6)值

1

0

写入数据寄存器(显示各字型等)

1

1

从数据寄存器读取数据

本次设计液晶屏第一行显示实时的温度,第二行显示实时的测量距离,当测量值不在测量范围内时,距离会显示999。显示结果如下图3-6所示。

图3-6 显示结果

LCD1602液晶屏要有5V的电源和接地,RSWRE引脚分别接单片机P27、P26、P25,端口。DB0-DP7引脚分别接单片机的P00-P07端口。

第5章 系统软硬件调试

5.1 硬件焊接与组装

实物制作的过程中,器件的组装,是通过电路焊接来完成组装的,焊接过程如下。

(1)为保障件焊接和电路的组装工作效率,最好先绘制出相应的电路图,从而让焊接与组装变得更有条理。

(2)器件焊接和电路的组装过程中注意器件的正面和反面,将具有相应的标志出,应尽量放在视线比较易看到的地方,用以方便,之后对电路的检测以及调试

(3)器件焊接电路的组装过程中,注意器件的极性,用以保证器件的通电正常,防止器件不能正常工作。

(4)器件焊接和电路的组装过程中,单片机控制芯片和所有模块之间的地,都需要连接在一起。而单片与各模块的正极,则需要根据供电需求,连接到相对于的输出电压正极。

(5)电路焊接中,各个引脚之间一定要注意不要放过得的焊锡,避免短路,影响实验结果。在pcb的制作量让线粗一些,避免印版的时候线路断路,影响电路。还有注意焊接的时候一定不要让焊枪与元件接触时间过长,避免烫坏元件,在接通电源前仔细检查线路,避免短路烧毁元器件。

5.2 软件调试

本次程序的编写是依托在KEIL开发平台,编写完C语言程序,可以通过编译来验证编写的语法有无出错,语法有错时,KEIL开发平台上的编译框中就会出现语法报错提醒,解决方法就是通过鼠标左键点击编译框中的报错提示,光标就会跳转界面,跳到具有语法出错的相关程序行,利用该特点,我们就可以一一对错误程序修改,修改好后进行编译。然后下载到单片机中进行实物调试。根据实际情况可以修改代码以适应不同距离的测量需要。

5.3 实物图

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值