基于单片机的身高测量仪

摘 要

本文以STC89C52单片机为核心,配合超声波模块、液晶模块,语音模块等,设计实现了一套身高测量装置。系
统用超声波模块实现身高测量,用LCD1602液晶显示测量结果,同时采用ISD4004语音播报模块对测量结果进行语音
播报。通过按键来控制测量的开始,按下按钮后,超声波模块会发出超声波,单片机会计算超声波从发射到接收所
需的时间,并且经过多次的测量来取平均值,从而通过算法得到具体物体的高度或人的身高,并且将身高值在LCD显
示屏上显示和在ISD4004上播报实际测量的身高值。经过实际测试,本系统实现了0.2~2.5m的测量范围,测量精度达
到±2cm。
  关键词:HC-SR04超声波模块;ISD4004语音播报模块;STC89C52单片机模块;LCD1602显示模块

1 引言

随着技术水平的提高,电子产品已经渐渐渗透到社会的各个领域内,现在的人对自己的身高、体重也越加的重
视。在这背景下,有许多厂家生产了不同方式的身高测量仪,如传统身高测量仪、红外身高测量仪、激光身高测量
仪等。传统身高测量仪测量的结果存在一定的误差,且易受到外界的干扰;红外身高测量仪因红外技术存在易受各
种热源以及光源等干扰的缺点;激光身高测量仪易受强光的影响,只能应于特定的场所内。因存在以上这些缺点,
所以更需要进一步的研究身高测量仪。功能多、小巧而便于携带、低功耗、智能化将会是身高测量仪接下来发展的
趋势。身高测量仪已经成为每个家庭生活中的必需品,特别是在医疗行业、学校医务室等一些领域都有广泛的需
求。
   现阶段电子式身高测量仪通常采用超声波测距原理,而超声波模块将越来越多地用于测量身高的仪器中。但,
在目前现有的技术水平上来说,测高技术产品还存在一些明显的不足,人们依然可以有针对性地使用。换句话说,
这无疑是一个正在蓬勃发展的技术市场和新工业部门,有着无限的发展前景。超声波已被普遍用在测高仪领域中且
成为了其中一种非常重要和有用的新型工具,在各方面应用都有很大程度的提升空间,将逐步朝着更高的精度和更
高的定位方向去发展,为了能满足社会发展进步的现实需求。超声波测高仪是某些行业领域内不可被替代的工具。
特别是在医疗、声纳的测量、家里等领域内显得尤为重要。如人们到医院进行体检是需要测量身高、体重,而精准
的身高以及体重数据对人们体检有着十分重要的意义[1]。这就是我设计超声波测身高仪的意义。本设计实现的方法
就是利用单片机设计用于自动测量身高的测量仪,超声波传感器发出波形等待信号的返回,然后单片机分析处理运
算后得到具体的身高值,最后驱动ISD4004语音播报模块自动播报和LCD1602显示模块自动显示出身高值。

2 总体设计

本文的目标是设计一个基于单片机的身高测量仪,该系统所测量的身高允许范围为0.1M-2.5M,精度±0.01 M。
测量结果能够显示在液晶屏幕上还可以通过语音播报出来。
2.1 设计方案的选定
  (1)本设计采用STC89C52单片机作为主控芯片。与传统的51系列微控制器相比,STC89C52提供更强大的功能和
更实惠的价格。
  (2)本设计采用LCD1602液晶显示器显示测量数据。LCD1602显示模块具有32位显示RAM(DDRAM),可以显示字
母、汉字和图形。
  (3)本设计选用ISD4004语音模块来播报测量的结果,首先通过录音的方式将0~9和“当前身高为”的音频录入ISD4004芯片,然后ISD4004芯片通过超声波计算出被测量人的具体身高值,最后通过spi通讯的方式,将具体播报的
数值送到ISD4004的对应位置上,从而达到正确的语音播报。
  (4)身高的测量采用超声波传感器,原理是超声发射器,发出声波,然后当声波触碰到人体头顶之后又反射回
去,最后被接收器接受。如果这个往返过程只花费了0.5S,说明声波行进了165M,又如果是往返,所有距离要÷2,
也就是82.5M,这也就是发射点之间和反射点之间的距离[2]。基于单片机身高测量仪的设计框图如图2-1所示。在这里插入图片描述

图2-1 基于单片机身高测量仪的设计框图
2.2 身高测量仪的工作过程
  本设计原理图采用单片机STC89C52芯片作为主要控制的芯片。首先通过单片机接口向HC-SR04超声波模块发送一
个超声波触发信号,超声单元将会输出8个40kHz的方波,然后等待触发信号返回,单片机记录时间差后算出距离,
同时单片机将驱动LCD1602液晶屏显示实际的距离,最后将具体的身高值发送给ISD4004芯片进行语音播报。

3 硬件设计

电路的主要组成部分有:单片机控制处理模块、HC-SR04超声模块、ISD4004语音播报模块、LCD1602显示模块、
按键模块等,单片机模块则由学生实验开发板以51芯片为核心定义。
3.1 单片机实现身高测量原理
  HC-SR04测量身高的方法首先是通过单片机进行不断的检测超声波发射后遇到障碍物所反射的回波,则测出发射
和接收回波的时间差为tr,然后在这用一个公式S=C*tr/2去计算所测出的距离,即(公式中的C(340M/s)为超声
波波速)。
3.2 单片机STC89C52最小系统
  本设计采用宏晶科技的STC89C52芯片来进行控制。STC89C52低压高性能51核8位CMOS单片机,8K字节闪存可编程
只读存储器,有在线编程的功能,易于方便使用且价格低廉。它可以采用ATMEL高密度非易失性存储器技术制造,并
与行业标准MCS-5指令集和输出引脚兼容。51系列的单片机的特点之一则是I/O端口的功能是采用软件配置来实现
的,因此,在STC89C52中I/O端口的通用基本输入输出特性与标准8051兼容,但I/O端口的其他功能则是由软件配置
实现,这样极大提高了端口配置的灵活性[3]。单片机的最小系统原理图如下图3-1所示,包括:11MHz微处理器的晶
振电路、测试工作组的下载电路及复位电路。
在这里插入图片描述
图3-1 SCT89C52最小系统原理图
3.3 HC-SR04超声波模块
  HC-SR04超声波测距模块可提供2cm至400cm无距离检测功能,测距的精度可达3mm左右;该模块设计包括超声波
发射器、接收器与控制电路[4]。HC-SR04超声波模块的最基本工作原理是:用IO TRIG口触发量程,要保证高信号电
平至少维持在10us内;模块将会自动地发送8个频率都为40kH以上的矩形波,且自动会检测到信号返回的信息。当信
号返回时,从IO ECHO口输出1(高电平)。1(高电平)的持续时间是超声波开始和返回之间的时间。那么测试的距
离=(1(高电平时间)*声速(340M/S))/2。HC-SR04超声波电路原理图如下图3-2所示。在这里插入图片描述

图3-2 HC-SR04超声波电路原理图
3.4 LCD1602显示模块
  为了使有更好的显示效果以及更加便捷的输入方法来显示中文,本设计则选择采用LCD1602显示模块。LCD1602
液晶显示器是一种目前应用最广泛的字符型液晶显示模块。它是由一块液晶屏(LCD)、HD44780控制器的主电路和
HD44100放大器的驱动电路,以及安装在PCB板上的若干电阻、电容和结构元器件构成。LCD1602显示模块具有体积
小、功耗较低、显示的内容较为丰富、超薄轻巧等优点,在当前许多嵌入式应用系统中得到越来越广泛的开发应用
[5]。
  LCD1602显示系统芯片(内置HD44780),可显示两行,每行都有16个字符,可组成8个字。也可采用正5V单电源
供电,外围电路配置较为简单,价格也较便宜,且性价比较高。单片机通过8位并行连接方式可连接液晶模块。
LCD1602电路原理图如下图3-3所示。在这里插入图片描述

图3-3 LCD1602显示电路原理图
  VL引脚是调整 LCD屏幕对比度的最终点,连接到正电源时对比度是最弱的,但连接到地时对比度是最高的。假
设对比度太高,就会容易产生“重影”。使用过程中可通过10K电位器来调节对比度。RS引脚是(高电平)数据寄存
器选择,为1(高电平)时选择数据寄存器、为0(低电平)时选择指令寄存器。R/W引脚是指令寄存器时选择读写信
号线,为1(高电平)时用来读操作,为0(低电平)时用来写操作。当RS和R/W共同为0(低电平)时可以作为写入
指令或者显示地址,当RS为0(低电平)R/W为1(高电平)时可以读忙信号,当RS为1(高电平)R/W为0(低电平)
时可以写入数据。E引脚:为使能端,当E端从1(高电平)跳到0(低电平)时,LCD1602显示模块则开始执行指令。
3.5 ISD4004语音播报模块
  本设计使用的ISD4004音源是美国ISD公司的新一代产品。ISD4004系列内置3V的工作电压,单片机录放时间约为
8-16min,音质极佳,特别适用于手机等一些中小型便携式数码电子产品。该系列音频芯片大部分采用CMOS工艺,包
括振荡器、抗混叠滤波器、抗混叠滤波器、音频放大器、自动降噪和多级阵列的高密度闪存[6]。芯片设计基于所有
操作必须由微控制器控制并且操作命令可以通过串行通信接口(SPI 或 Microwire)传输。采用多级直接模拟存储
技术,可以将每个模式直接存储在内置闪存中,可以再现声音、旋律、旋律、旋律、鼓和音效、数字噪音和“金属
噪音”。采样频率可为4.0,5.3,6.4kHz等,频率越低,录音和播放的时间越长,音质就越差,芯片中的信息都存
储在闪存中,在没电的正常情况下可以保存达100年(默认值)且可以重复录音100,000次[6]。
SCK是时钟输入;MISO是顺序输出;MOSI——串行输入;RAC是ISD4004地址串的脉冲输出;/INT0为录音满或放音结
束中断输出;NSS为SPI的片选信号,当它作为SPI从机的时候有用,是从器件,不是主器件;4004_CS为片选信号,
表中“-”为悬空。
3.6 本章小结
  本章主要介绍本项目的硬件部分,主要分为五个模块:基本高度单元、最小系统单元、超声单元、液晶显示单
元和语音传输单元。本章介绍了STC89C52芯片的特点和功能以及该芯片的最小系统电路,还介绍了ISD4004与超声波
模块的连接以及STC89C52芯片的最小外围电路,了解它们可以帮助我们使用开发板的时候更加方便。

系统实物图
在这里插入图片描述
电路原理图
在这里插入图片描述

4 软件设计

第三章对本项目硬件的每个模块进行了详细的分析,此章节就要开始介绍各模块的软件部分。明确整个项目目
标后,要实现项目目标,首先要先了解各个模块具有的程序功能。执行这些功能的是整个的程序模块,这些程序模
块可以链接在一起,形成一个整体程序,以实现项目的最终目标。
4.1 主程序软件编写
  程序开始时,首先初始化各个模块。其中包括对单片机、LCD1602及超声波模块和语音播报模块进行初始化设
置,之后读取按键,对于按键的设置我们分为两类:是和否。只有按下是之后才可以开始测量,然后就进行语音播
报和显示数据;若否,则重新读取按键。主程序流程图如下图4-1所示。在这里插入图片描述

图4-1 主程序流程图
整个程序的基本流程是:
(1)初始化所有端口(按键,SPI,IO口等)。
(2)按键检测是否被按下。
(3)启动超声波测量函数,并计算出实际身高。
(4)LCD显示实际身高。
(5)语音播报实际身高。
4.2 HC-SR04超声波模块操作描述
  在开发源程序之前,首先要了解各模块程序部分的功能,这在编写程序时非常重要。由于上述硬件电路设计中
已经介绍了超声波模块的特点,下面将介绍其软件上的操作。
4.2.1 触发输入接口
  使过程中(IO触发示波器会提供至少10us的高信号电平),模块能自动发射8个40kHz方波,还会自动检测是否
有返回信号,如果有信号返回、则模块会通过IO输出1(高电平)、1(高电平)持续的时间就是超声波发射到返回
的时间,通过公式:测试的总距离=(高电平时间声速(340M/s)/2)即可算出传播的距离[7]。
4.2.2 HC-SR04超声波模块测距程序
  根据触发输入接口章节所讲,超声模块程序如下:超声模块先拉高触发信号10us左右,然后激活定时器0开始计
数,然后等待回声波信号将由超声波模块拉高,此时停止定时器0的计数,最后通过计算得到实际的距离。超声波模
块流程图如下图4-3所示。将T0设置为16位定时器模式,当INT0引脚为高电平且 TR0 = 1 时,定时器将开始计数。
void Timer0Init(void)
{
  TMOD = 0x09; //当INT0引脚为高电平,而且TR0=1时定时器开始计时。
TH0 = 0;
TL0 = 0;
}
对以上代码进行描述:初始化定时器,将计数器清零用于计数时间。
函数作用:超声波触发。
说明:拉高电平至少10us。
void Trig_Init()
{
Trig = 0;
Trig = 1;
Delay10us(); Delay10us();//拉高电平至少10us
Trig = 0;
}
对以上代码进行描述:发送触发信号函数,将GPIO口先拉高再拉低,实现信号的触发。
函数作用:接收超声波并计算距离。
  提示:如果这样写:time = time * 12 /11.0592 ; time * 12可能会溢出,导致结果出错。
uint Get_Distance()
{
uint time,distance;
Trig_Init(); //初始化超声波触发脉冲
TR0 = 1; //打开定时器0,此时并不开始计时
while(Echo == 0); //等待回波变高平
while(Echo == 1); //当回波高电平,定时器0处于计时状态
TR0 = 0; //回波变低电平,停止定时器0
time = TH0
256 + TL0; //超声波从发出到收到回波所耗费机器周期数
  time = time /11.0592 * 12; //实际时间 = 时间 / 晶振频率 ×12个时钟周期
TH0 = 0;
TL0 = 0; // 340m/s = 0.340mm/us = 0.034cm/us,注意要除以2
distance = 0.017 * time; //S=VT;(cm = 0.017cm/us ×us)
return distance; //返回值 距离
}
  对以上代码进行描述:此函数先获得超声波一个来回的时间,再通过声波的传输速度和时间计算得到距离,最
后清除定时器内部的计数器值用于下一次。
4.3 LCD1602显示模块操作描述
  LCD1602显示器一般只显示字母、数字、符号等,这是一块用于可视化的矩阵液晶显示模块。其中1602指的是
LCD显示的内容为16
2,则可显示两行,每行有16个字符(1个汉字占用2个字符),其内部的驱动芯片一般都是
HD44780[8]。
  要对模块正确写入(读取)命令或数据,要保证:E=1。若RS=1,则写入的是数据(显示的内容);若RS=0,则
写入的是命令(模块实现什么功能)。液晶显示模块的相关命令列表如下图4-5所示。
在这里插入图片描述

图4-5 液晶显示模块的相关命令列表图
4.3.1 显示字符
1602里面的存储器一般有三种主要是:CGROM、CGRAM、DDRAM
  DDRAM(Display Data RAM)是指显示数据的RAM,是用来存储所要显示的字符代码。一共有80个字节,地址与
显示的对应关系如下图4-6所示。DDRAM就是我们通常所说的PC显存,如果要显示我们要显示的内容,可以直接将需
要的字符码发送到显存中,然后在屏幕上显示相应的内容。LCD1602显示模块共有80字节的显存,即DDRAM的内存,
但又由于LCD1602屏幕只开了16*2个窗口,不能做到同时显示全部信息,为此,模块设计开发了“显示或光标移动命
令”,可让字符慢慢平移到屏幕的可见区域,就可看到字符平移的效果[9]。在这里插入图片描述

图4-6 地址和屏幕的对应关系图
4.3.2 液晶显示模块程序
显示模块流程图如下图4-7所示。在这里插入图片描述

图4-7 显示模块流程图
液晶显示模块其程序如下:
第一步,对显示屏进行初始化配置,写入显示屏的灰度值等一些寄存器,具体代码如下实现:
void Initialize_LCD(void)
{
LCD_ENA = 0;
LCD_RS = 0;
LCD_RW = 0;
delay_ms(200);
IniSendCMD(C_BIT8); //set the data is 8 bits
delay_ms(20);
Write_CMD(C_L2DOT7); //tow lines 5*7 dots
delay_ms(6);
Write_CMD(C_CLEAR); //clear LCD RAM
Write_CMD(C_CUR_R); //Curror Shift Right
Write_CMD(C_ON); //turn on LCD
}
  第二步调用写一个字符的函数和写一个字符串的函数对显示屏的内容进行更改,实现具体身高的显示,具体内
容如下所示:
PutString(0, 0,”身高:”) 显示身高函数
PutString(0, 0,sg_num)
void WriteChar(uchar row, uchar column, uchar dat)//写入一个字节函数
{
  Write_CMD((((row & 1) << 6) + column) | 0x80);
Write_Data(dat);
}
  // 函数: void PutString(uchar row, uchar column, uchar *puts)
// 描述:写一个字符串,指定字符串的行、列、起始地址
// 参数:row:行(0或1),column:字符数(0~15),puts:要写入的字符串指针
  void PutString(uchar row, uchar column, uchar *puts)
{
  Write_CMD((((row & 1) << 6) + column) | 0x80);
for ( ; *puts != 0; puts++) //遇到停止符0结束
{
Write_Data(*puts);
if(++column >= LineLength) break;
}
}
对以上代码进行描述:显示一个字符串的函数,先发送写命令和地址,再将数值送到指定的地址。
4.4 ISD4004语音播报模块操作描述
  本设计所采用的ISD4004语音芯片是一个可以录8分钟左右的语音,它能通过一个SPI串行接口来与单片机进行连
接。ISD4004语音芯片内部分为2400段,其每分段地址范围为0000H~0960H,每段占用时间为200ms[10]。程序可以
选择任意一段作为录制和回放操作的起始地址。
4.4.1 ISD4004接口模式
  ISD4004语音模块是工作在SPI串行接口上。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移
位寄存器在SCLK的下降沿动作,因此对ISD4004语音模块而言,在时钟上升沿锁存MOSI引脚的数据,在下降沿将数据
送至MISO引脚[11]。协议规范包括:所有串行数据传输都从SS端下降沿开始;SS在传输期间必须为0(低电平),而
在命令之间必须为1(高电平);数据传输到时钟的上升沿并向外传输到下降沿;SS降低,输入命令和地址之后,
ISD4004语音模块就可以开始录放操作了;命令格式为(8位控制码)加(16位地址码);如果遇到EOM或OVF,任何
ISD操作(包括快进)都会产生中断,并在下一个SPI周期开始时清除中断状态;当使用“读”指令从ISD的MISO引脚
改变中断状态时,地址和控制数据也必须从MOSI侧同步改变;所有操作都从RUN位设置1时为开始,设置0时为结束;
所有命令都要在SS的上升沿为开始[12]。
4.4.2 ISD4004工作时序
  设备一般在开始工作之前会延迟TPUD(以8khz采样时大约25ms),因此,在用户发完上电指令之后,必须要等
待TPUD,才能发出一条操作命令[13]。。
4.4.3 语音播报模块程序
  第一步首先通过void RECORD_ISD4004(uint addr);这个函数,在ISD4004芯片flash内部指定地址录取13段语
音(当前身高,0,1,2,3,4,5,6,7,8,9,.米),并单片机通过定时器记录每段录音的时间。
  第二步通过超声波模块获取到人头顶到超声波模块的距离,然后求得实际的距离=总的高度-超声波模块测得的
高度,换算成米的单位保存在4位数组里面(由于M是固定在ISD4004的固定地方,所以不需要变成数组保存,在结尾
直接发送地址码播放即可,所以只要四位的数组)。
例如0.2M、0.4M;
0.2M对应的数组:H[0]=0,H[1]=.,H[2]=2;
0.4M对应的数组:H[0]=0,H[1]=.,H[2]=4。
  第三步通过第二步得到的身高数组,得到不同的数字的ISD4004的播放地址,最后通过SPI的方式将地址发送给
ISD4004,并且发送一个地址延时一会就可以得到连续的语音“当前身高0.2米”;“当前身高0.4米”。
语音模块其程序如下:
  首先通过单片机和按键对需要播放的语音进行录入,录入之后将实际的身高数值通过单片机处理解析通过SPI的
方式传输给ISD4004模块,实现不同的语音播放。
//从addr开始录音,地址范围0~2399。
void RECORD_ISD4004(uint addr)
{
SPIF=0; //清SPI中断标志P133
SPIbyte(POWERUP); //上电命令
Delay_ms(25);
SPIbyte(POWERUP); //上电命令//
Delay_ms(25);
SPIcmd(addr,SETREC); //发送地址为ADDR的set REC命令
SPIbyte(REC); //发送REC命令
}
  对以上代码进行描述:录音函数先要清除标志位再发送模块上电命令,延时一段时间后再发送一次上电命令,
最后通过函数SPIcmd写入录音地址和录音命令。
//从addr开始放音,地址范围0~2399
void PLAY_ISD4004(uint addr)
{
SPIF=0; //清SPI中断标志P133
SPIbyte(POWERUP); //上电命令
Delay_ms(25);
SPIcmd(addr,SETPLAY); //发送setplay命令
SPIbyte(PLAY); //发送play命令
}
  对以上代码进行描述:在指定地址播放音频,先上电模块,延时一段时间,SPIcmd发送播放的地址命令,最后
将指定地址的音频播放。
void On_ISD4004(void)
{
uchar i;
ISD4004_CS=0; //启动SPI
for (i=20;i>0;i–);
}
对以上代码进行描述:打开音频模块,将片选信号拉低
void Off_ISD4004(void)
{
uchar i;
ISD4004_CS=1; //结束SPI
for (i=20;i>0;i–);
}
对以上代码进行描述:关闭音频模块,将片选信号拉高。
//T0对ISD4004RAC信号计数,每个值表示录音长度为200ms
void Timer0_Init(void )
{
TMOD =0x05; //T016位计数器
TCON =0x10;
TR0=1;
TH0=0;
TL0=0;
}
对以上代码进行描述:定时器用于记录需要播放音频的时间,初始化为200ms,将计数器清零。
4.5 按键模块操作描述
按钮使用轮询扫描方式获取程序主循环中的状态,
  为了实现本项目的多功能,按键功能的模块程序非常重要。具体按键定义如下:按下测量按键,则开始测量;
按下取消按键,则停止测量。
if(key1==0)
{
key_val=1; LED =!LED;//指示按键是否成功按下
}
while(!key1) ;
}
4.6 本章小结
  本章主要介绍超声波模块的具体操作方法和各个模块的参数。首先要有一个项目的整体系统模块,然后将这个
整体模块细分为一个个小的模块,将小的模块分为以下模块:HC-SR04超声波模块、LCD1602显示模块、按键模块和
ISD4004语音模块。这就像画一幅完美的油画:先有一个大致的框架,然后艺术家用铅笔勾勒出画的轮廓,然后画出
线条的内部,整幅画就可以完成了。

一、作品名称
基于单片机的身高测量仪
二、作品功能
1、身高的测量
2、具有显示功能,会在显示屏上显示数值。
3、具有语音播报功能,会将测量出来的数值播报出来。
三、运行环境
硬件环境
学生实验开发板
软件环境
keik软件
四、操作步骤
1、被测者站在超声波模块的下方。
2、按下测量按键。
3、设备自动测量完成并计算出被测者实际身高。
4、液晶显示和语音播报身高。
5、结束测量。
五、注意事项
1、被测者必须站在超声波模块下,被超声波检测到。
2、被测者身高不得超过2.5M。
重复率检测报告
在这里插入图片描述

5 制作和调试

根据本设计的第三章硬件设计思路和第四章的软件硬件设计思路,在这个硬件调试中,学生实验开发板则用于
硬件测试和软件调试ISD4004语音模块和超声波模块,所搭建成品硬件实物图如下图5-1所示,ISD4004语音模块实物
图如下图5-2所示。在这里插入图片描述

图5-1 成品硬件实物图在这里插入图片描述

图5-2 ISD4004语音模块实物图
  通电之后,各个模块将会进行初始化,通过按下机器上的测量按钮,观察显示屏上的实际数值和语音播报实际
的数值。
5.1 物体高度测量
  例如测量一根长方形的木头实际高度为0.21M,将木头立在测试架的下方,测量后得出的实际高度为0.2M,此时
语音播报的是“当前身高0.2米”,误差在0.01M,测试播报结果如下图5-3所示。 在这里插入图片描述

图5-3 某物体高度语音播报图
5.2 人的身高测量
  例如某学生的实际身高为1.69M,让学生笔直站到测试架的下方,测量后得出的实际身高为1.70M,此时语音播
报的是“当前身高1.70米”,误差也是在0.01M,测试播报结果如下图5-4所示。
在这里插入图片描述

图5-4 某学生身高语音播报图
以上的测量结果都还存在一定的误差,但误差是在本次设计的要求范围内。

6 结论

根据设计任务要求,本文设计完成了一种单片机控制的测高仪。文章介绍了详细的设计思路和设计过程,包括
硬件电路的设计,软件设计与调试、系统测试等步骤,最后基本完成了预期设计目标。
  系统的主要特点:采用超声波模块实现身高测量,实现了非接触式测量,用ISD4004语音模块实现测量数据的语
音播报。经过实际测试,系统能够实现0.2m~2.5m的高度测量,测量精度在±2cm范围内。
  虽然总体上满足了设计指标的要求,但是在整个设计的调试过程中还是有不小缺陷的。主要是测量精度受被测
物体或身体反射面物理特性影响,有时测量数据不够准确。其次语音播报模块相对较老旧,使用不是太方便,今后
有待提高的空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值