摘要
人们日常的生活中会发出很多生物信号,而且生物信号与人体的身体健康有着非常大的联系。根据这些生物信
号能够提前预防人体的疾病和提早发现疾病,不让疾病由小病积累成大病,造成不可挽回的悲剧或者巨额的医疗成
本。制定好完善的规则和法律,这样我们才更容易去管理这些东西。随着电子领域和医学领域的不断高速发展,人
们的生活水平在不断的提高,对于健康监测电子产品的需求也日渐增加,在生物信号方面,心率、体温、步数都能
够反映人的健康状况,在电子领域方面,单片机也是发展得非常迅速,将生物信号和单片机的结合也非常可行,所
以随着社会的发展和大量需求,而且现在疫情防控压力也是非常的大,这些方面的研究就变得非常之有必要。因
此,本次毕业设计根据现在的实际发展情况,决定设计一个基于单片机的人体健康监测系统。
本设计采用STC89C52最小单片机系统为主要控制模块,硬件方面主要由DS18B20温度传感器、Pulse Sensor心率
传感器,ADXL345传感器、LCD1602显示屏和BT06蓝牙模块组成,ADXL345传感器收集数据并经过步数算法可以测出用
来计算步数,和走路的距离。。温度传感器检测人体的温度或者周围的环境温度,心率传感器也是收集数据经过心
率算法得出检测人体的心率,LCD1602显示屏可以显示数据。人体的步数、体温、心率。在显示软件方面由主程序和
各种子程序组成。控制模块方面主要是复位按钮、启动按钮,复位按钮用于把步数进行重置,启动按钮主要是负责
电源的开关。经过调试,硬件电路没有问题,程序编译也没有报错,监测到的数据在LCD1602显示分两行显示。第一
行是步数(Step)、心率(H),第二行是温度(TeMp)。然后能够通过BT06蓝牙模块和手机的蓝牙串口助手进行连接可以把检测到的数据传送到手机app,并经过蓝牙通信协议,在蓝牙串口助手实时显示最新数据。手机通过蓝牙进行连
接,并在手机app显示最新的数据。
关键词: STC89C52单片机,心率,计步,温度,蓝牙,健康,监测;
第一章 绪论
1.1课题背景及其意义
随着社会的不断变更,随着现在科技的不断地快速发展,广大人民的生活水平不断提高,人们对自己的身体健
康方面也开始变得非常重视,对于人体健康方面的生命科学也和信息科学之前的关系也日渐紧密,也出现了许多很
多新型测量人体健康的仪器,况且监测是日常生活中最常见的监测项目,但是人体身体状监测的设备误差大,实时
响应性差等缺点。而且大多数是用人工的方法去监测,耗费的时间和人工成本都非常大。监测脉搏能发现对于身体
健康有影响的非常多的疾病。比如心脏等。本文利用单片机为主等器件设计一套能自动去测量和又报警功能的人体
健康监测器,相对于其他系统来说,单片机本身具有体积小、科技强、易操作等优势,为智能化电子产品的发展提供
更广阔的空间。单片机作为集成电路芯片在工业生产和电子设备中被广泛应用,且在嵌入式系统中发挥着重要的功
能[9]。与此同时,单片机与电子技术融合应用的价值作用显著。完成软件和硬件的结合设计,实现对人体的脉搏的
测量,而且能够当测量的数值超过阈值能够自动的发出报警的声音。本系统又监测准确,操作简单,便于携带,查
看方便等优点。能够实现对人体健康监测的智能化,让监测的效率大幅度提高,对预防重大身体疾病发生能够发挥
非常大的作用。蓝牙技术,是一种无线数据传输技术,在短距离无线数据传送中有很大的应用需求[10]。能够借此来
把信息传输给其他设备。以单片机为控制核心,借助蓝牙技术,能够实现。其使用效果分析可知,系统操作简单,实用
价值较高,值得推广使用。
1.2 国内外的研究状况
随着现在的医疗水平和科技监测水平的发展,在测量人体生命体征和生理信息研究中受到越来越多的关注,在
疾病诊断、康复治疗和日常健康评估领域具有广阔的应用前景[1]。人们对身体健康的关注度也是日渐增高,都想把
身体存在的健康隐患早点去发现,发现健康问题的原因所在,是由什么引起的,所以身体健康的监测变得非常的有
必要,通过监测把身体里存在的一些小病探查出来,并及时的去治疗或针对性的预防,这样就会起到出乎意料的效
果。目前临床常用的检测生理参数的医疗设备(动脉硬化检测仪、医疗心电监护仪等)测量准确度较高,但由于体积
庞大、操作复杂等各种条件限制,通常不能实现便携式人体生理参数的监测[2]。心率的数值能反应人体的健康状
况,在古代的时候,人们都是用手去监测人的脉搏,心率。这样虽然也能测出心率,但是效率不是很高,而且检测
的数值也是很准确,受各种因素的影响太大,在现代社会,为了提高测量的速度,和监测出来数值的精确度,采用
了很多精密的电子监测设备,这样虽然解决这些问题,但是价格贵,设备也比较笨重,不便于携带。目前,随着智能
手机的普及,以及手机数据处理能力不断提高和图像处理技术快速发展,使得人体一些基本生理参数的测量以及健康
状态的监测可在一部手机上得以实现[3]。监测到的数据可以通过的蓝牙或者wifi模块使监测系统与手机的连接,这
样监测到的数值,能在手机上显示,这样显得更加方便和智能化。医疗器械行业在国家经济发展中扮演着越来越举
足轻重的地[4]。医疗器械的战略地位已经是收到了世界上的重视,这种重视是普遍的,这对于科技地位和医疗水平的衡量标准。研究并开发一种无创且连续的心率检测仪产品,以用于心血管病患者的日常监护[5]。这算是一种心率
仪器,主要是用来一些医院和健康监测使用,随着社会的不断发展和进步,心率的监测也是变得非常的有必要,比
如给病人监测、运动比赛、健康监测、治疗疾病方面都有有着非常大的作用,在未来的不断发展前景中,将会朝着
灵敏度高、便于携带、智能化等普通条件下的使用,融于人们的日常生活中。 计步器是一种较为简单实用的体力活
动测量装置,通过感应垂直加速度来进行运动量的测量,为运动者提供数据参考。随着人们健康意识的逐渐增强,
计步器在众多群体中得到了广泛应用[6]。最计步器的历史 计步器最早是由意大利的伦纳德·达芬奇酝酿的[7]。早
的计步器是机械式的,是由着在之前的使用的意义也是非常的大,但是随着现在科技水平的高速发展,这种机械的
计步器已经开始被电子计步去替代了。现在的计步器已经开始融入人们的日常生活中,大大方便了人们,主要是用
于人们跑步走路的计算,和其他运动的监测,然后把这些数据记录下来,用于进行数字的分析。 体温检测是疫情检
测的第一关口,红外人体表面温度快速筛查系统(红外人体测温仪)在公共场所可在甄别疑似患者方面发挥重要作用,
是打赢疫情防控战的重要装备[8]。现在的疫情在国内外的形势都是非常的严肃,为了增强防控的水平,体温检测是
最为常见的形势之一,不管去到什么场所都需要去检测人的体温,只有体温正常了的情况下才给你进入,国外的疫
情也是非常的严重,这就需要了增强防控的力度,在体温检测方面下功夫是最有成效的,体温的正常与否能够反应
人的身体健康情况。
1.3本文的主要研究内容及论文结构安排
基于单片机的人体健康监测系统是一个很重要的研究方向,在很多地方都能派上用场,作用非常的大。比如:
防疫测温、医疗监测、身体健康状况监测、运动监测等方面,这些在人们的日常生活中都是很常见的,为人们的生
活提供很多便利。因为在实际生活中会存在着许多影响监测的因素,所以在的监测数据中,会对实际的数据和测量
出来的数据进行误差分析,来观察实际的监测效果。全文共有六个章节,章节的安排为:
1.主要介绍了基于单片机的人体健康监测系统的研究背景于意义,目前人体健康监测系统在国内外的研究状况,论
文的主要研究内容和结构安排。
2.主要介绍基于单片机的人体健康监测系统选用不同元器件,分析不同元器件的优缺点,性价比如何,进行论证,
最终选用最合适本设计的元器件。
3.主要介绍了基于单片机的人体健康监测系统硬件电路的设计,对系统的总体进行功能分析,系统总体框图,
不同测量模块的电路设计图分析。
4.主要介绍了基于单片机的人体健康监测系统的软件的主程序和子程序的设计和各个程序的流程图,以及一些
算法。
5.主要介绍了基于单片机的人体健康监测系统的制作和功能的测试,系统能够采集信息,并在显示屏显示,能通过
上位机连接进行通信传输。、
6.介绍了基于单片机的人体健康监测系统总结和不足之处和未来的一些展望。
第二章 方案的比较与论证
2.1引言
随着科技的快速发展发展,市场上的元器件也是有很多,功能丰富种类又多,如何挑选适合本设计的元器件就
变得非常之重要,选用元器件的好坏直接能够影响本次设计的成功与否,所以就需要去熟悉能实现同种功能却不同
类型的元器件,去发现元器件的优缺点、性价比高低、采用这种元器件可能会遇到什么问题等,这就需要不断的进
行方案的比较和论证,挑选出最合适本设计的元器件。
2.2方案的确定
2.2.1 单片机芯片的选择
方案一: STM32单片机
选用单片机STM32单片机,STM32采集并发送控制指令理器[11],非常的强大,适用于各种开发,性能非常的强
大,而且集成度非常的不错,工作频率非常的高,能适应于各种算法,能快速处理许多数据,但是接口多,价格
贵,所以采用此方式。
方案二:STC89C52单片机
本次选用STC89C52单片机最小单片机系统,这个做为主要的控制器,有着自己的完整操作系统,称为处理器,
能对很多寄存器进行处理,接口多,价格相对于便宜,性能高,性价比高。
综上所述,所以选择方案二。
2.2.2显示方案的选择
方案一:采用LED数码管
数码管是用多个发光二极管组成,abcdefg气段组成的笔段,只要接通对应的发光二极管,就能用笔段显示相应
的数字或字母,一端连接正极,另一端负极分别连接a,b,c,d,e,f,g dp端,就能成功去点亮,LED价格比较便宜,电
路相对来说比较简单,性价比相对来说比较高。LED显示屏在防护工程内已得到广泛应用[12]。但是本次显示数据有
点多,所以不采用LED数码管。
方案二:采用点阵式数码管
相对于LED数码管,如果用来显示汉字的话,就合适,但是单纯的显示英文和数字来说,显得过于浪费,而且价
格也过高,性价比不高,所以不采用点阵式数码管。
方案三:采用LCD 1602液晶
,由单片机进行驱动,它相比较于数码管来说,显示 LCD1602液晶显示屏是一种专门显示字符的液晶显示器[13]
的位数比较多,数据显示也比较多,显示效果也非常清晰,编写显示的c程序也比较简单,价格也非常便宜,使用寿
命长,功耗也比较低。
方案四:采用OLED液晶显示
显示屏的显示效果比较清晰,色彩度比较好。它采用的材料的也非常特殊,能够自行进行发光,因为这个的独
特设计,使得只要由电流通过,有机材料就会进行发光。这样能够使OLED的显示功耗非常低,而且显示效果和手机
的效果差不过,视角非常广,而且体积小,轻薄,但是价格比较昂贵,引脚也非常多,编程的显现代码也非常繁
琐,会在显示的编写上耗费大量的时间,而且非常容易损耗,替换的价格也划不来,所以不采用OLED显示屏。
故选择方案三。
2.2.3倾角传感器的选择
方案一:选用陀螺仪
陀螺仪具有小尺寸、低功耗、低沉本的特点,更容易商用化、民用化[14]。现在很多手机产品都是采用陀螺仪,
比如现在的手机枪战游戏和平精英就是采用陀螺仪进行操作,实际效果非常好,误差也非常低,但是复杂度高,成
本高,故不采用陀螺仪。
方案二:采用ADXL345模块
ADXL345这个模块是ADI公司生产的,ADXL345倾角传感器实时采集在日常活动中产生的倾角数据,然后将数据送
到单片机STC89C52进行处理[15],然后让传感器完成特定的功能。能够测量一些活动性或非活动性的检测,也支持
敲击检测,根据产品手册来看,尺寸为3mmx5mmx1mm,由此来看,尺寸是非常的小的。由于ADXL345的低功耗设计,
所以它能灵活的放置在我们的移动设备中,比如手机,医疗设备,工业仪器仪表等。电源电压范围在2.0V到3.6V之
间,I/O电压范围在1.7V到VS,重点是宽温度范围在负40摄氏度到正85摄氏度之间。因为它温标非常的稳定,它能放
置在一些工业环境中去,它的主要功能是测量物体x轴,y轴,轴的加速度,它内置很多寄存器,而且成本低,在控
制方面比较简单。
故选择方案二。
2.2.4心率监测模块选择
方案一:采用压力传感器
它主要偏向于压力的测试,如果用来去测试心率的话,测量的难度将非常的高,如果采用这种传感器将给我们
的设计带来非常大的挑战,实现难度将会非常的大,所以本次不采用压力传感器。
方案二:采用Pulse Sensor心率传感器
经单片机和A/D转换,采集数据经蓝牙通信芯片与手机进行无线通信[16]。而且采集信号的能力非常的 该传感器
强大,稳定性好,而且在传输过程速率也很快,所以本次设计采用Pulse Sensor心率传感器。
故选择方案二。
2.2.5 蓝牙模块的选择
方案一:采用HC-08蓝牙模块
HC-08的AT指令有一点非常有趣的是,它是不需要进行回车的,也不需要加上一些换行的参数,只需要把AT指令
编辑好,然后发送出去就好,这种模式下是不能直接与手机进行连接的,需要官方的一些软件进行连接,所以不采
用HC-08模块。
方案二:采用BT06蓝牙模块
这里采用BT06蓝牙模块,蓝牙模块中集成了蓝牙芯片,能够在近距离内发送接收无线电信号,故能够起到信息传
输的作用[17]。价格也非常便宜,体积也非常的小,不会占用过多的空间,能源功耗也非常的低,在灵敏度方面也
非常的高。而且BT-06的驱动模块也非常简洁,仅仅只需要4根线就能去控制,去驱动使用。BT-06采用的不是并行的
方式,而是采用串口的方式去连接,只需要将蓝牙对应的RXD,TXD接口接到相对于的串口上就可以了,这样便可以
把数据传输出去。
2.2.6 电路板的选择
方案一:采用覆铜板
覆铜板的核心材料是树脂构成的,由TFz-62或1TZ-63配合树脂经过热加工制成的的。在两个表面将用一张胶布
去覆盖,有趣的是,在这两面的其中一面或者两面都用用铜箔去覆盖,主要作用是用来根据一些设备的要求去打印
电路板。也能通过设计好的pcb电路图经过腐蚀,达到预计的效果。所以也是PCB的主要材料。覆铜的作用主要是用
来减少阻抗,和提高电源的利用效率,使其抗干扰能力大大的增强,这也是为什么很多PCB的商家都喜欢在PCB的空
闲的地方填充一些类似与蜘蛛网的地线或再覆多一层铜。这也使其覆铜板有着很多优秀的特点,比如加工性好,质
量轻便,导电性能好等。它的颜色一般是淡淡的黄色,有些因为固化剂的不同,会导致是淡绿色。因为使用的树脂
材料,会有一定的透明度。但是这就也就造成了加工非常的麻烦。而且一旦焊接完成,修改焊接的难度和拆卸的难
度将会非常的大,对于焊接人员的焊接水平要求比较高,所以本次设计不采取这种方法。
方案二:采用万用板
采用万用板,因为其表面都是一些孔,密密麻麻的,所以平时我们也叫其叫做“洞洞板”,相对于覆铜板,虽
然没有那么专业,但是优势也是非常的明显,入门和使用的门槛是非常的低的。万用电路板由于具有适用面广、价
钱便宜、使用方便的特点[18]。价格也非常的便宜,即使焊接过程出现问题和失误也能重新购买材料去焊接。不用
因为此造成大量的损耗,使用非常的方便快捷。灵活度和自由度也非常高。比如在一些设计比赛中,一些比赛作品
是有制作时间限制的,而且时间也不会很长,所以时间就会变得非常之紧张,因为洞洞板的优良的特性,大多数情
况下会采取洞洞板。所以本次设计采取洞洞板。
第三章 系统硬件电路的设计
3.1系统的功能分析及体系结构设计
3.1.1系统功能分析
采用STC89C52单片机最小系统为主控模块,用与控制整个监控系统的运行,ADX345三轴加速器模块能够用于采
集步数,DS18B20温度传感器模块能够采集人体的温度,Sensor心率采集模块能够完成心率的采集,LCD1602能够通
过STC89C52把各个模块的数据进行收集,并成功显示在显示屏上,STC89C52单片机能够通过自己编程的代码拷录进
去,并成功实现控制这些ADX345三轴加速器模块,DS18B20温度传感器模块,Sensor心率采集模块。在添加一个蓝牙
模块BT06,用于把收集到的数据通过蓝牙把数据传输到手机app,这样更加智能化,更加便于查看。蓝牙作为一种时
尚的通信方式,近年来应用范围越来越广泛,具备蓝牙功能已成为许多电子产品吸引用户的一大亮点[19]。蓝牙传输
的便捷度非常的高,能够很好的保护传输的信息,不会被窃取,所以安全性就会非常的高,而且蓝牙连接也不会老
是因为周围的环境影响老是断开连接,这样实用性就会大大的折扣,蓝牙的抗干扰性是非常的强的,通过STC89C52
最小单片机对蓝牙BT06的控制,实现蓝牙与手机app的连接。
3.1.2系统总体结构
本系统目的是采集人体的步数、心率和体温。计划采用单片机最小系统STC89C52作为主控模块,控制整个监控
系统的运行,实现对单片机及模块的前期控制。可以用ADX345三轴加速度计模块采集步数,DS18B20温度传感器模块
采集人体温度,传感器心率采集模块完成心率的采集,单片机采集各模块采集的数据,LCD1602液晶屏显示。加入蓝
牙BT06模块,通过蓝牙模块连接手机。系统总体框图如下图3.1所示:
图3.1 系统总体框图
3.2单片机最小系统
STC89C52芯片管脚有40个,内部资源也非常的丰富,它是属于一个8位的cpu,他有一个4k字节的存贮空间,还
有一个数字存储的容量,是128字节,有32个IO,分别是P1.0到P1.7、p0.0到P0.7、P2.0到P2.7、P3.0到P3.7,主要
是用来配置一些功能,还有两个可用于编程的电时计数器,T0和T1这两个,有5个中断源,有全双工的串口,主要是
RXD和TXD,可以通过串口进行下载程序和串口通信。
STC89C52最小单片机系统是系统的总核心,需要一些外部电路才能去运行的,不能单独的去运行。它需要电
源、复位电路、晶振电路、组成,只有这样它才能正常的去工作。XTAL1和XTAL2连接的就是晶振电路,C3和C5是电
容。晶振电路非常的重要,晶振的震动能够去传递信息,让单片机能够执行其他的动作。下图的k2是复位电路,这
个可以用来发现触发电路的复位。因为本次设计有蓝牙BT06,为了让波特率更加的准确,采用的是11.0592MHZ晶
振,让蓝牙能够正确通信和更加的精准。以下是STC89C52最小单片机系统电路图如下图3.2所示:
3.3信息采集电路设计
3.3.1 ADXL345倾角传感器电路设计
本设计使用ADXL345倾斜传感器来检测步数。它是一款体积小、非常薄的3轴加速度计,功耗超低,最大测量范
围可达16g左右。你可以直接使用SPI(三线或四线)或I2C数字接口来访问内部寄存器,然后让传感器完成特定的功
能。而且传感器的精度也很高,可以测量非常小的倾斜角度变化。它可以测量一些主动或被动的检测,输出数据是
一个16位二进制代码。可以通过G-Cell传感器检测X轴、Y轴、Z轴交线上的加速度。然后经过放大、滤波、补偿、交
换,以电压的形式输出。U2用于稳定电压,并将5V DC转换为3.2V DC。R2和R3电阻(上拉电阻)用于稳定信号。D1是
指示灯,R1电阻器主要用于保护LED灯D1。该ADXL345模块内部电路改模块已经是设计好的了,把对应的引脚正确连
接单片机并通电使用就行。ADXL345模块的内部电路图如下图3.3所示:
VCC供电为3.2V到5V之间就可以了,本次ADXL345模块采用的是IIC接口作为通信,所以引脚2(SDA)和引脚1(SCL)
去连接STC89C52芯片的I/O接口实现IIC的通信。上拉电阻R3,R2在内部是已经设计好了的,只需要把连接直接连接
就行,IIC的地址选择脚是SDO,引脚6(CS)作为片段端,接地地址显示为0x6A,当接入高电平的时候,则代表的是
3.3.2 Pulsesensor脉搏心率传感器电路设计
本设计采用Pulsesensor脉搏心率传感器模块,该模块主要是用来检测人体的心率是怎么样的,它主要由两种电
路构成,分别是噪音消除电路、放大电路,主要是通过光来检测,算得上是一种光学传感器,供电为3.3V到5V之
间,其主要原理是利用光进行检测把采集到的脉搏信号转换成电信号,使用方法就是把手指靠近Pulsesensor脉搏心
率传感器的发光表盘,并停留一段时间,当脉搏发生跳动的时候,手指处的血液血压会发生规律性的变化,所以会
导致光透过去效果和强度就会不一样,就会将收到的的光信号转换成电信号。Pulsesensor脉搏心率传感器模块接口
脉搏信号的频带在0.05200Hz范围内波动,幅度非常的小,一般在mV左右,所以导致容易受到其他信号的异常干
扰,所以加了放大器MCP6001和滤波器,将信号扩大几百倍,使信号更容易被STC89C52最小单片机系统的AD采集。心
率传感器结构图如下图3.6所示
传感器的电源负责供电。输出端的电压信号由A/D采集,经过心率算法后得到心率。而最小单片机STCSTC89C52
不具备A/D转换的功能,所以这次采用的方法是电压比较法,这样的目的是将模拟量转换成脉冲量(数字),将采集到
的信号进行滤波,传输到最小单片机系统的p3.2引脚(外部中断),然后一起使用一个定时器。如下图3.8所示,P3是
心率传感器的三个引脚,输出引脚连接到LM393的反向输入。通过调整滑动电阻(R5)的电阻值,比较LM393的IN+引脚
和IN-引脚的电压。每当心脏跳动的时候,LM393的OUT1(引脚1)会输出下降沿的信号。这个时候电路图中的D1指示灯
会闪烁一下。
3.3.3 DS18B20温度传感器电路设计
DS18B20温度传感器是目前常用的东西,其输出信号是数字信号,与传统的热敏电阻相比,体积比较小,不占用
空间,价格低廉,抗干扰能力强等特点。DS18B20温度传感器接线也变得更加得方便快捷。它会根据不同得应用场景
而改变它的外观,适用于各种测温场景。比如机房、锅炉房、温室大棚等场景的测温。适用于各种狭小领域的测
温。电压的范围是3.0V到5.5V之间,测温的范围是-55℃~+125℃,误差不到1度。DS18B20温度传感器可编程在编程
的时候的分辨率为9位到12位之间,DS18B20采取的是单线接口,为了增加最小单片机系统I/O口驱动的可靠性,总线
上增加了上拉电阻。本次设计DS18B20芯片主要是用来人体的温度,DS18B20传感器实物图如下图3.9所示。
其温度传感器DS18B20引脚接口表如下表3.1所示:
表3.1 温度传感器DS18B20引脚接口说明表
编号 符号 引脚说明
1 GND 地信号
2 DQ 数据输入输出(I/O)引脚
3 VDD 电源输入引脚,当工作于寄生电源模式的时候,此引脚一定要接地
这不仅可以测量人的体温,还可以测量环境温度。DS18B20是单总线数据传感器,温度传感器只有一条数据线。
利用最小单片机系统访问此引脚成功实现数据通信,最终得到温度值。它内部有一个唯一的ID号,所以它可以与多
台计算机通信。如下图3.10所示的DS18B20的电路设计图所示,P6是DS18B20温度传感器。数据引脚接单片机的同一个I/O,接一个10k的上拉电阻。通过写入不同的id,可以通过最小的单片机系统的引脚(P2.0)成功读取不同温度的
数据。
图3.10 DS18B20电路设计图
3.4液晶显示电路设计
LCD1602显示屏可以显示一些数字、ASCII码等。显示屏有两行显示东西,每行可以显示16个字符,使用5X7矩
阵,可以通过代码定义实现在任意地方显示任意字符在Keil集成开发环境中采用C51语言进行系统软件设计,联合调
试直至成功[20]。
LCD1602的类型有两种,本次设计采用的类型是16个脚的,也就是显示的时候背部会发光那种。
(1)LCD1602的主要参数
芯片工作的电压:4.6V—5.5V
模块最佳的工作电压:5.0V
字符的尺寸:4.35x2.95(H×W)mm
(2)引脚功能说明
LCD1602芯片和引脚说明表如下表3.2所示:
表3.2 LCD1602引脚接口说明表
编号 符号 引脚说明 编号 符号 引脚说明
1 VSS 电源地 9 D2 数据
2 VDD 电源正极 10 D3 数据
3 VL 液晶显示偏压 11 D4 数据
4 RS 数据/命令选择 12 D5 数据
5 R/W 读/写选择 13 D6 数据
6 E 使能信号 14 D7 数据
7 D0 数据 15 BLA 背光源正极
8 D1 数据 16 BLK 背光源负极
(3)LCD1602电路设计图如下图3.11所示:
GND接地,正极接电源,负极接地,VSS电源接地,VDD电源正。引脚4为低电平时,代表命令的选择,为高电平
时,代表数据的选择。让LCD1602直接显示数据,引脚6(E)写入数据命令,这样液晶显示就能正常的去工作。
LCD1602的指令码说明表如下表3.3所示:
表3.3 LCD1602指令码说明表
初始化 指令码 功能
0 0 1 1 1 0 0 0 设置16X2显示,5X7点阵,8位数据接口
开关
0 0 0 0 1 D C B
D=1 开显示;D=0 关显示
C=1 显示光标;C=0 不显示光标
B=1 光标闪烁;B=0 光标不闪烁
0 0 0 0 0 1 N S
N=1 当读或写一个字符后地址指针和光标加一
N=0 则反之
S=1 写入字符时候,得到光标不移动而屏幕移动的效果
S=0 当写一个字符,整屏显示不移动
数据指针设置 80H+地址码(0-27H,40H-67H) 设置数据地址指针
其他设置 01H 所有显示清零
1602 LCD的控制器中有11条控制指令,LCD1602控制指令说明表如下表3.4所示:
表3.4 LCD1602控制指令说明表
序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 清显示 0 0 0 0 0 0 0 0 0 1
2 光标返回 0 0 0 0 0 0 0 0 1 *
3 置输入模式 0 0 0 0 0 0 0 1 I/D S
4 显示开/关控制 0 0 0 0 0 0 1 D C B
5 光标或字符移位 0 0 0 0 0 1 S/C R/L * *
6 置功能 0 0 0 0 1 DL N F * *
7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址
8 置数据存贮器地址 0 0 1 显示数据存贮器地址
9 读忙标志或地址 0 1 BF 计数器地址
10 写数到CGRAM或DDRAM) 1 0 要写的数据内容
11 从CGRAM或DDRAM读数 1 1 读出的数据内容
3.5蓝牙通信电路设计
本次设计采用的是BT06蓝牙模块,主要是用来作为无线传输的,蓝牙规范协议也是遵循V3.0的,价格低,消耗
功率低,接受和发送的灵敏度高,蓝牙BT06元器件也是很小,并且能够支持蓝牙串口协议(SPP),使用起来也是非常
的方便,外围元件只需要配合起来就能够实现很多功能。
BT06蓝牙模块引脚接口说明表如下表3.5所示:
表3.5 BT06蓝牙模块引脚接口说明表
编号 符号 引脚说明
1 RXD 串口数据的接收
2 TXD 串口数据的发送
3 VCC 电源3.5~6V
4 GND 接地线
采用的BT06蓝牙模块功能非常的强大,能够作用于很多地方去使用,主要是用于距离很短的的场景去使用,可
以用于连接其他设备或者蓝牙模块之间的互联,蓝牙的好处是不用再受线的限制,不仅占用空间,也不便于携带,
让使用起来非常的便捷,并且内部采用的是V3.0蓝牙协议用来通讯,这样是蓝牙连接的时候传输数据变得非常的简
单且快速,效率非常的高。
模块能够支持AT指令的控制,能够用串口的RXD和TXD这两根线和蓝牙进行通信,波特率支持1200、2400、
4800、9600、14400、19200、38400、57600、115200、230400、460800和921600,芯片手册里面默认的是9600,单
位是bps。可以支持从机和主机的设定。
本次的BT06蓝牙模块可以实现监测系统和手机的连接,并进行通信,BT06蓝牙模块和STC89C52的串口之间进行
连接,并成功通信,实现数据的接受和发送。在下图3.14的蓝牙电路设计图中,P2的RXD用来串口数据的接受,TXD
用于串口数据的发送,并分别于STC89C52最小单片机系统的P3.1引脚(TXD)和P3.0(RXD)引脚连接,GND用来接地,VCC
用来提供电源是5V.使其能够正常的工作运行。
3.6电源电路的设计
本次设计的电源采用的是USB电源进行供电,可以保持完整的供电。 如下图3.15是电源开关控制开关图,,可
以通过开关P5控制电源的开启和关闭,VCC端就用来供电,P7是作为电源DC的插口,引脚2、引脚3接GND底线。这就
是完整的电源电路。
图3.15 电源DC接口和开关电路图
第四章 系统软件设计
根据设计的电路原理,根据预计的功能实现软件的编程,主要设计的功能如下面所示:
1.能够使用ADXL345加速度传感器进行步数的收集,并由LCD1602在液晶屏显示
2.能够使用DS18B20温度传感器对周围的温度或人体的温度进行采集。也能在液晶屏上显示
3.能够通过Pulse Sensor心率传感器对人体的心率进行收集,并成功在液晶屏显示屏显示。
4.可以通过BT06蓝牙模块与手机app连接,显示采集的实时数据,通过app查看步数、温度、体温等信息。
本设计的开发环境是Keil uVision4,因为整个程序计算量相对比较大,而且编程起来也相对于耗费时间,所以
采用的是C语言作为编程语言,这样编程起来会相对的简单,这样调试起来的时间也会大大的缩短,而且与人的思考
思维也比较接近,而且C语言的稳定性,结构性也是非常的强大,而且认识C语言的人也是非常的多,移植性也非常
的好,它也因此适用于各种环境和在各种编译器下使用。用Keil uVision4进行编程,采用STC89C52最小单片机系统
作为主要控制,配合ADXL345加速度传感器、DS18B20温度传感器、Pulse Sensor心率传感器、BT06蓝牙模块进行软
件和硬件的结合,最终能够实现各种功能的测量。
本章节主要是软件程序的介绍,主要是一些主程序、子程序、软件流程图的说明。
4.1系统程序主流程
为了实现预计的功能,软件程序的流程图如下图4.1所示,从开始然后到系统的初始化,这是最基本的步骤,然
而初始化了什么东西呢,初始化主要执行LCD1602显示屏初始化配置、DS18B20温度传感器初始化、ADXL345加速度传
感器初始化、脉搏传感器心率传感器初始化、定时器(0,2)、外部中断(0)、串口初始化。EEPROM用于读取数据。初
始化后,下一步是循环主程序。主程序循环主要包括脉搏传感器的心率采集、DS18B20温度传感器的温度采集和
ADXL345加速度传感器的步数。首先,温度、步数、ADXL345加速度传感器收集到步数信号之后,通过步数算法,然
后就可以得到步数的数值,并存储到EEPROM中,如果需要将步数清零的话,可以按下复位按钮或者重新打开电源都
是能够实现的,然后利用定时器(0)和外部中断(0)的对信号的收集,每收集5次心率信号,就配合心率算法计算一
次,并得出实时的心率数值,然后每隔5秒中,BT06蓝牙模块会发送数据到手机app上,这个通过内部定时器来实
现。下图4.1是系统软件的流程图:
图4.1总体程序流程图
4.2步数子程序设计
ADXL345是一个利用加速度来传感的处理器,主要原理是利用测量的加速度来计算出步数是多少。测量的加速度
有三个不同的方向,分别是x轴、y轴、z轴。当人进行运动的时候,就会产生加速度,然后通过IIC接口读取数值,
查看加速度在x轴、y轴、z轴的什么位置上,就可以得出加速度的角度,人的运动一般是向前走,向后走,或者像螃
蟹一样纵向走,通过这些就可以判断是否走了路,并不断的增加步数(有步数产生就增加一次)。每产生一次步
数,STC89C52会让EEPROM存贮一次,这个子程序是先让ADXL345进行初始化,然后去读取EEPROM的数值,然后再去检
查ADXL345的数值,然后经过步数算法判断是否产生了新的步数,如果产生了,存入EEPROM当中,并在显示屏中显示
出来,如果没有产生就返回上一步继续进行这个ADXL345检测数值这个循环。STC89C52最小单片机系统的EEPROM的字
节是2k,有8个扇叶,计步子程序流程图如下图4.2所示:
图4.2计步子程序流程图
4.3温度子程序设计
本次用的是DS18B20温度传感器测温,DS18B20非常的独特,内部都有ROM,为什么说它独特呢,它的ID号都是与
众不同的,所以编程起来就会非常的方便,可以利用这一个特性,用来识别来自哪里的温度。首先也是进行DS18B20
温度传感器的温度初始化,主要是为了获取DS1820的ID,这个ID是唯一的,获取后需要将这个id记下来,主要是让
温度有唯一的id,这样方便的分辨不同的温度,前奏完成后,就可以开始正式的温度采集了。STC89C52最小单片机
系统开始的时候会对DS1820温度传感器发送一个脉冲信号(复位),发送完成后,会静静的等待DS18B20的反应,如果
有了反应,就会发送ROM指令,这代表匹配成功了,如果没有反应就不断的执行上个步骤,不断的发送脉冲信号,直
到DS18B20有了反应才会进行下一步,成功执行ROM指令后,发送一个0x55指令,再发送唯一的ID号去等待反应,有
了反应后在发送0x44,这个主要是为了让温度的转换成功的启动,然后等待转换的成功,成功之后就进行下一步,
读取ID的温度是多少,因为ID的唯一性,就可以根据这个读取对应的ID的温度。DS18B20子程序流程图如下图4.3所
示
图4.3 温度传感器DS18B20程序流程图
4.4 心率采集子程序设计
本次采用的是Pulse Sensor心率传感器及进行心率的采集,用LM393把模拟信号转换成脉冲信号,然会把这些收
集到的信号传入STC89C52最小单片机中(外部中断0引脚),开始的时候需要将定时器进行初始化,定时器采用50ms
的中断,然后开始去检测心率,两次检测到的心率的时间间隔设定为1.25ms,必须小于这个时间间隔,大于或等于
这个时间间隔数据都不可取,都将抛弃掉,重新测量,如果采集的心率数值在这个时间间隔之内,将采集5次数值,
将这5个数值全部加起来再除以5得出平均值z,然后利用心率算法的公式去进行计算,设心率为a,a=60000/z,这样
就可以计算出心率的值是多少,然后结束。心率计算收集的流程图如下图4.4所示:
图4.4心率采集流程图
4.5 蓝牙通信子程序设计
本次设计用的蓝牙芯片是BT06蓝牙模块,可以实现该系统与手机之前的连接,并能成功的进行通信。在手机打
开蓝牙功能,并打开蓝牙串口助手app,然后查找蓝牙设备,找到该蓝牙设备并去连接,STC89C52会通过串口发送数
据,蓝牙模块则负责接受数据,并经过通过协议把数据传输到手机端的app上。因为蓝牙模块默认的波特兰是9600,
所以我们设置成9600就可以了,不用做过于的更改,单位是bps,我们可以在STC89C52最小单片机配置好相应的串
口,将对应的串口中断打开,这个就是开始的第一步,串口初始化,然后设置每隔5秒向串口发送一次数值,如果不
够5秒的话,在继续等待,直到到了了5秒为止才开始发送数值到串口,蓝牙模块经过串口收到数值后,再通过蓝牙
通信协议发送体温、温度、步数的数值到手机app端,并显示出来。蓝牙通信流程图如下图4.5所示:
图4.5蓝牙通信流程图
第五章 系统制作与调试
5.1 电路制作和焊接
我们开始先要了解什么是焊接,焊接在我们日常生活中也是随处可见。焊接主要是通过加热、施加压力或者两
样一起使用得方法,让两个分离金属表面达到晶格距离,并形成结合力。通俗点来说就是把金属制作品的表面进行
加热,让它进行融化,然后把它们连接起来。然而金属的状态在焊接的时候可能有不同的状态。因为如此焊接方法
就分成了几种。比如电焊,气焊,冷焊等。
本次设计采取手工焊接的方法的去焊接,这也是最原始的的一种焊接方法,但是也是最简单粗暴有效的方法之
一,很容易理解,焊接是的好坏,直接影响到整个系统能否正确去运行,就相当于人体的脉络,把人体的各个器官
串联起来,使其能够正常的去运作,焊接就相当于脉络的作用。把蓝牙BT06模块、单片机最小系统STC89C52主控模
块、,ADX345三轴加速器模块、DS18B20温度传感器模块、Sensor心率采集模块、LCD1602显示屏模块串联起来,使
其能够正常的运行起来。所以说焊接这个环节非常的重要的。制作由下面几步构成:
第一步焊接:
先把洞洞板的表面和焊接的器材清理干净,而且不要把器件的引脚靠得那么近,这样可能会导致焊接得时候粘
贴在一起,造成焊接短路,所以我们可以把引脚往两侧掰一下,这样可以避免这种情况的发生。下面重点要来了,
把焊锡丝放下,注意不要把烙铁头接触到其他器件的引脚。
第二步升温:
在完成第一步后,把烧热的电络铁轻轻放在管脚附件,让焊锡丝能够慢慢的去融化掉,需要注意观察焊接的情
况,把控好电络铁的加热时间和温度,时间过短的话可能会造成虚焊,时间过长的话,有几率会把万用板给焊接坏
掉,而且小心不要把电络铁头对着自己,会烫伤自己,经过几次失败的经验发现,电络铁的温度保持在450℃是最合
适的,加热时间的话1.8s左右就可以了,这样焊接出来的板子效果会非常的好,但是也是需要根据实际的情况去区
别处理。
第三步清理焊接面:
在完成第二步的时候,需要检查焊接的效果怎么样,是否虚焊或焊接的形状不完美,这个需要就要考虑该如何
去修改。这里主要是由焊锡不够或者焊锡过多导致的,如果是焊锡多原因的话,可以用电络铁在焊接处进行加热滑
动,把多的焊锡给划走,也可以采用专门的吸锡器吸走。然而如果是虚焊的话,需要用焊锡丝进行补锡。
第四部检查焊点:
最后一步是需要对焊接好的万用板的焊接处进行整体观察。看看是否保证引脚的独立性,焊接面是否平整光
滑,牢固性怎么样。
5.2 系统调试
在整个系统通电进行测试之前,需要仔细观察焊接的万用板还存在着问题嘛,比如是否线路断开,元器件是否
完整,没有断裂,是否虚焊,正极和负极的连接是否正确等问题。为了防止因短路而导致元器件的损坏,可以用万
用板测试整个系统是否存在短路等电源问题,在进行各方面测试后,确保没有问题的情况下就可以进行通电测试
了。
在把测试平台搭建完善之后,需要对编写的程序进行调试,如代码的调试没有问题的话,就可以把代码拷录进去STC89C52单片机最小系统进行测试,去验证系统的整体功能是否满足我们的要求,如果功能不能实现或者达不到
预期的效果,就要不断的进行程序的调试,让功能能够正常的实现。
5.2.1 系统程序调试
软件调试步骤如下:
(1)首先打开Keil uVision4,然后在上面的菜单中找到工程,并在工程里面点击New uVision Project,点击完
后会弹出一个对话框,这时候建立一个文件夹,把需要用到的文件全部放在里面,这样方便查看和使用,文件命名
一般是数字或者英文,不要用中文,然后保存。
(2)然后出现一个对话框图如下图5.1所示,去找到Atmel,然后点击左侧那个加号,然后查找AT89C51在哪里
图5.1对话框图
然后选择AT89C51,然后点击OK如下图5.2所示:
图5.2 选择图
(3)然后会弹出一个窗口,点击NO就好会如下图5.3所示:
(4)在做上角的File新建用户的源文件,在新建的空白处编写代码,编译完成后,点击保存,文件名的扩展名
一定要以.c结尾,这样新文件创建完成。
(5)然后进行程序的编译和调试:在左上角的有个编译按钮,点击它,系统就会对文件进行编译和输出,然后
就会在下面的输出窗口处看到信息,如果发现显示有error提示的话,就代表编译过程存在错误,然后根据错误提示
寻找错误的位置,并把错误解决掉,再重新编译,直到error显示个数为0位置,如果Warning提示有警告,这个不需
要理会,只要编译没有错误而且符合设计要求就行。效果如下图5.5所示:
图5.5 程序编译无误提示界面图
5.2.2硬件测试
这一步是硬件的整体性能的测试,主要是测试元器件能否正常的去运作,可以用直流电源,示波器等工具去测
试万用板的综合性能,测试环节可以分为两部分,分别是动态和静态。静态主要是直接去观看制作板子是否虚焊,
或者没有忘记焊接,用万用表查看电路是否短路,直接接通电源,看元器件是否能正常运行。动态是静态测试成功
的前提下,就可以进行动态检查,检查的重点是查看每个元器件是否在正常的运行,是否完成预期的效果,提高运
行的效率,不会因为这些而损坏电路。硬件调试图如下图5.6所示,可以看见不存在虚焊和短路的现象,而且元器件
能正常工作。
图5.6 硬件调试图
5.2.3 实物测试
经过测试,系统测试能够正常的运行,在LCD1602显示屏上能够正常的显示数据,以两行的形势去展示数据,第
一行Step代表的就是步数,后面接冒号显示,H代表的是心率,TEMP代表的是温度,效果如下图5.7所示,发现功能
都能成功的去实现,在LCD1602显示下面有一个按钮,那个是复位按钮,按下之后,Step(步数)的值将会重置,H(心
率)的的测量需要将手放在心率传感器的表盘处,系统成功运行后,心率传感器的表盘会发着绿光, 只需要把手指
去在那个位置停留一段时间,系统采集到5次心率数值之后,就会在显示屏显示出来,如果不检测的的话就会一直处
于等待状态,直到接收到心率的数值,才会显示出来,当系统晃动,Step(步数) 的值就会不断的依次递增。
图5.7 实物功能测试图
实物测试数据表如下表5.1所示,代表基本功能实现。
表5.1实物测试数据表
步数(SteP) 心率(H) 温度(TeMP)
20 61 27.2
40 65 27.1
80 72 27.3
160 75 27.5
200 78 27.6
240 80 27.5
280 75 27.3
320 81 27.6
360 85 27.9
400 76 27.5
440 89 27.9
480 86 28.0
520 79 27.8
560 91 28.1
600 84 27.9
640 78 28.2
680 93 27.9
720 97 28.1
760 99 28.0
5.2.4 手机串口助手调试
在硬件和实物测试功能正常之后,接下里就要测试系统与手机的连接,这一步的实现通过蓝牙BT06模块实现,
首先需要一部安卓手机或苹果手机安装蓝牙串口助手,安装手机直接安装就可以了,苹果手机就比较麻烦,可以通
过下载一个红手指app,借助红手指再下载安装蓝牙串口app也能够实现,就是过程相对安卓手机来说操作就比较繁
琐,下面打开手机里面安装好的蓝牙串口助手,在右上角会有一个连接按钮,点击它,找到对应的蓝牙名称,并进
行匹配连接,输入密码1234,就能成功进行连接,第一次连接蓝牙需要注意的是,需要进行搜索附近的设备才能找
到蓝牙名称,成功连接之后,就能看到数据页面,能看到人体的心率、走路的步数、人体的体温、周围环境的温度
的信息,会发现蓝牙串口助手界面显示的数据和系统测试到的数值是一致的,说明有实时性,证明系统与手机的通信
成功,系统与手机通信测试图如下图5.8所示:
5.8 系统与手机通信测试图
第六章 总结与展望
6.1 全文总结
本设计是基于国内外健康监测状况设计得一个基于单片机的人体健康监测系统。开始制作各种方案,各种元器
件的选购,电路的设计,程序的编写,软件和硬件的的调式,在这些过程中,遇到了很多困难,但是在解决困难和
制作的过程中,对于我来说收获都是非常巨大的。本文对健康监测系统的发转和国内外研究现状都进行了描述,并
对系统制作的元器件的选择进行了各种比较,最终敲定了最终的选择。在硬件电路设计提供了解决方案,其中利用
STC89C52和各个模块构成的人体健康监测系统,解决了心率采集受外界干扰的问题,又解决了步数采集和温度采集
的问题。蓝牙通信模块的电路设计。在软件方面,编译程序的调试成功。到最后软硬件的调试成功,功能基本达到
预期的效果,同时在设计过程中学习到了许多注意事项:
1.在基于单片机的人体健康监测系统设计开始之前,要做好总体框图的设计,这样有个总体制作思路,制作的时候
思路就会比较清晰
2.要对开发流程非常的熟悉,这样制作的时候就不会到处碰壁
3.到注意理论和实际的结合,这需要不断的去尝试,实际和理论是有差距的,也要注意制作的成本
6.2设计的不足之处及展望
本设计基本功能与设计要求基本一致,但是存在着一些不足。在硬件方面,电路设计图还可以优化,使其更加
的高效简洁,供电可以采取体积更小的电池去替代,这样占用空间就没有那么的大,也更加的便于携带,成本也更
加的低,系统的体积过于大,可以进一步的缩小体积,系统的外观也不够美观,可以装饰一下,元器件。元器件可
以采用灵敏度和精确度更高的元器件,这样测出来的数值更加的精确,可以增加wifi功能,。在软件方面,可以优
化算法,使其更加的高效。检测出来的数据没有进行处理判断,可以增加人体健康状态判断功能,也可以适当增加
远程监控功能,不在局限在近距离的测量,让监测系统能够作用于适用于更多的人群,随着单片机的技术不断的发
展,和科技水平的不断发展,人体健康监测系统将会越来越完善,越来越成熟,功能也更加的完善,为人们的日常
生活带来更多的便捷。