APP下载

基于STC89C52单片机的人体健康参数检测仪的设计

2024-12-01楼俊君

电脑知识与技术 2024年32期

摘要:体温、血压、血氧和脉搏等人体健康参数是反映人体健康状况的关键生理指标。为克服传统测量方式耗时长、效率低的不足,文章以STC89C52单片机为核心,以DS18B20温度传感器和JFC103红外光传感器为外围传感器,设计了一款人体健康参数检测仪。实践表明,该人体健康参数检测仪制作简单、成本低廉、操作简便,具有一定的实用价值。

关键词:单片机;人体健康参数;检测

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)32-0120-03 开放科学(资源服务)标识码(OSID) :

0 引言

随着社会节奏的加快和工作压力的增加,越来越多的人处于亚健康状态,这可能引发多种健康问题,及时了解自身的健康状况至关重要。体温、血压、血氧和脉搏是反映人体健康状况的关键生理指标,在临床上通常作为检查疾病与判断医疗成效的重要依据。便捷地获取这些生理参数,对于个人健康管理和疾病预防具有重要意义。

传统的体温、血压、血氧和脉搏的测量方式需要较多的人工操作环节,存在测量耗时长、效率低的问题 [1-2]。为解决这一问题,本文设计了一种基于STC89C52单片机控制传感器测量上述4个生理指标的系统,以替代传统测量过程中的人工操作环节,并避免主观因素对测量结果的影响。该系统采用简单的传感器,具有硬件设计制作简单易实现、成本低廉、功耗低、操作简便等优点。

1 系统总体设计

基于单片机的人体健康参数检测仪以STC89C52 单片机为核心,用于检测人体体温、血压、血氧和脉搏。硬件总体设计如图1所示。STC89C52单片机作为核心处理单元,负责数据的处理,包括读取各传感器的测量数据、输出显示等。同时,它还能进行逻辑判断,实现超限声光报警等功能。LCD1602液晶显示器用于显示当前4个生理参数的数值信息;DS18B20 温度传感器用于采集人体体温;JFC103红外传感器在经过降压模块降压,提供合适的工作电压后,用于采集脉搏、血氧和血压3个信息;按键设置模块用于调整报警上下限;声光报警模块则用于实现蜂鸣器的声光报警功能。

2 硬件组成模块

2.1 单片机处理单元

单片机处理单元硬件组成包括单片机、晶振电路和复位电路。本设计选用STC89C52单片机,该单片机是一款8位微控制器,具有8KB可编程Flash存储器,适用于嵌入式控制应用系统,具有低功耗、高性能的特点。

STC89C52单片机采用40引脚封装,其中主要引脚功能如下:

(1) VCC(40号引脚):+5V电源输入端;

(2) GND(20号引脚):接地;

(3) X1, X2(18, 19号引脚):外部晶振连接引脚;

(4) RST(9号引脚):复位引脚;

(5) P0-P3:I/O端口,用于连接外设,例如P0口连接LCD1602液晶屏,P3.7连接DS18B20的DQ端。

晶振电路如图3所示,采用12MHz晶体振荡器和两个20pF电容构成并联谐振电路,为单片机提供稳定的时钟信号。

复位电路如图4所示,可以通过按键手动复位,也可以在上电时自动复位。

上电自动复位是在电源接通瞬间,通过电路中的电容充电来实现的。在上电的瞬间,电容C通过电阻R充电,单片机的RST端出现正脉冲,从而使单片机完成复位过程。在接通电源以后,如果电源的上升时间没有超过1毫秒,那么就能实现单片机的上电自动复位,也就是完成了系统的复位初始化。

按键复位是指当复位按键接通以后,复位开关导通,复位电路中的电容被短路,电容两端形成回路,并且开始释放自身存储的电量。单片机进入复位状态。当单片机通电运行以后,这个时候如果想复位的话通常都使用按键复位。

2.2 血压、血氧和脉搏采集模块JFC103

红外光传感器JFC103 是一款功能强大的传感器,它能够测量人体脉搏、血氧和血压,并且其结构简单,输出为数字信号,可简化电路设计。该模块的工作电压约为2.7V到3.6V,因此需要利用LM1117模块进行降压处理。

JFC103 利用光电容积脉搏波描记法(Photople⁃thysmography, PPG) 测量人体的血压、血氧和脉搏。PPG技术利用特定波长的光线透过皮肤,光线接收器接收皮肤反射或透射出的光信号。血液循环会引起周期性的光强度变化,通过处理这些变化可以生成脉搏数据。同样,由于血液含氧量不同会导致不同的反射率,PPG技术也可以用于测量血氧饱和度。传感器通过检测光信号变化并结合算法,可估算血氧数值。PPG技术还可用于无创血压检测,其原理是利用脉搏波在动脉内的传导时间与血压之间的相关性来估算血压数值。需要注意的是,PPG是一种相对间接的测量方法,测量结果容易受到传感器贴合度、使用者活动水平以及皮肤状态等环境因素的影响。因此在使用时要保证JFC103传感器紧密贴合皮肤,这样才能得到精准的数据。

JFC103 与单片机的通信可以通过串口实现。JFC103模块接收到单片机发送的启用采集功能的指令后,就会开始向单片机传输采集到的实时数据包。这些数据包每隔64个点(约1.28秒)发送一次,每个点包含76个字节。数据包第一个字节的值为0xff,之后依次是脉搏、血氧、收缩压、舒张压的数据字节。单片机通过读取数据包,可以获得人体脉搏、血氧、血压的实时数据并加以处理。

2.3 体温检测模块

人体健康参数检测仪中体温的检测由数字温度传感芯片DS18B20来实现。DS18B20采用接触式测温方式检测人体体温,其VDD引脚与电源相连,GND 引脚接地,测量到的温度值通过DQ引脚传送给单片机的P3.7口[3]。

2.4 声光报警模块

声光报警模块采用了蜂鸣器和LED灯实现声光报警。当测得的生理参数值超过上限或低于下限时,蜂鸣器发出响声,同时红色的LED灯以一定频率闪烁,提醒用户。

2.5 显示模块

显示模块选用了LCD1602液晶显示器,它能够同时显示2行,每行16个字符[4-5]。LCD1602液晶显示器具有显示清晰稳定、功耗低的优点。图6是LCD1602 实物图。

3 软件设计

系统软件采用C 语言编写,采用模块化设计方法,主要包括主程序模块、数据采集模块、数据处理模块、按键处理模块、显示模块、报警模块等。

主程序模块:负责系统初始化、任务调度等工作。系统初始化包括串口初始化、中断的初始化、JFC103 初始化、DS18B20初始化等。主程序为一无限循环,在循环体中依次完成各事件模块的调度处理。

数据采集模块:负责控制传感器进行数据采集,并将采集到的数据传输给数据处理模块。数据采集包括DS18B20 的人体温度数据采集和JFC103 的脉搏、血氧、血压数据的采集。

数据处理模块:负责对采集到的数据进行处理,采用了常用的算数平均滤波法,并将处理后的数据传输给显示模块和报警模块。

按键处理模块:负责扫描3个独立的功能按键,当某按键按下时软件消抖并进行相应的功能处理。

显示模块:负责将测量结果显示在LCD1602液晶显示器上。

报警模块:负责判断测量结果是否超出预设的报警阈值,并在超出阈值时触发声光报警。

软件设计流程图如图7所示。

4 系统调试

完成硬件电路焊接和软件调试后,使用STC_ISP 下载软件将编译好的程序烧写到STC89C52单片机的程序存储器0000H开始的地址空间中。将传感器正确连接到人体,上电后等待几秒钟,液晶显示器上会显示测得的体温、血压、血氧和脉搏值。图8为某次测量结果实拍图,由液晶屏可看出:被测者脉搏为65 次/min,体温为33.6°C,血氧为92% SpO2,血压值为126/81 mmHg(收缩压/舒张压),生理指标属正常范围。系统与传统水银血压计进行了10次对比测量,结果表明,所测的血压误差不超过8 mmHg,每分钟脉搏误差平均值为2。

5 结论

本设计基于STC89C52单片机,设计了一款能够测量体温、血压、血氧和脉搏的人体健康参数检测仪。该系统具有测量速度快、操作简便、成本低廉等优点,具有一定的实用价值。该检测仪还可做进一步的完善性设计,比如选择合适的材料对其设计美观简洁的外包装壳,还可利用Wi-Fi模块将测得的数据上传至手机,开发相应的手机App程序供用户方便地在手机上查看。

参考文献:

[1] 姜铭,李亦宁,苗紫民,等.基于单片机的心率体温测量计[J].电脑知识与技术,2021,17(16):232-234.

[2] 赵光晶,赵鸣,张友浩,等.基于STC89C52单片机的心率检测系统设计与实现[J].智能计算机与应用,2021,11(5):94-96,102.

[3] 孔德因. 温度传感器DS18B20 简介[J]. 家电维修,2023(2):I0049.

[4] 庞庆澳,董国庆,于溢文,等.基于Zigbee的运动健康监测系统的设计[J].电子制作,2023,31(9):8-11.

[5] 史静,李煜.一种基于单片机和LCD1602的多行文本显示方法[J].科技视界,2017(20):61-62.

【通联编辑:梁书】