摘 要

随着日新月异科技发展,在心率体温测量方面,我们取得了迅速的发展,就近日而言,脉搏测量仪已经在多个领域大展身手,除了在医学领域有所建树,在人们的日常生活方面的应用也不断拓展,如检疫中心的额温枪都用到了技术先进的脉搏测量仪。在今年的疫情爆发的同时,我们可以积极应对,利用所学的知识,方便高效地检测出人体有无异常体温,在上学签到时,我们可以利用此来检测温度,预防集体性感染事件。为了在心率测量仪的精准性和便携性方面做出重大改变,我计划设计一种以51单片机为核心的心率体温测量仪。我们的心率体温检测系统以STC89C51单片机为核心,借用单片机系统的内部计时器计算时间。其大致的步骤为通过ST188光电传感器感应生成脉冲,心跳次数由单片机累计所得,其对应的时间根据定时器获取。本设计使用的时候可以展现脉搏心率次数以及时间长短,当其终止使用的时候可以展示总的脉搏心率次数以及时间长短。经过我的个人测试,系统成功运行,符合设计要求。通过软件与硬件方面的整体调试并进行实验,得出结论为在技术上可行,预期可以实现功能,准确、快速地完成测量任务。

关键词:心率体温检测系统;STC89C51单片机;光电传感器

1 控制系统设计

1.1 主控系统方案设计
方案一:单片机作为主要的控制芯片,是集成电路的一种,可以单独完成现代产业所需要的控制功能。单片机外形很小,但是所具备的功能却是很大的,它将微处理器、储存器、输入/输出接口电路通过导线焊接到板子上,集成到同一片芯片。图1.1是采用单片机作为本设计的控制部分,该系统主要有单片机、传感器和显示器构成。
人体检测心率脉搏时,通过传感器采集输出脉冲信号,传递给单片机,单片机经过计算输出给显示电路进行显示。而在液晶显示屏上的,也就是我们得到的结果。通过得到的结果,来判断我们是否处于非正常状态。
在这里插入图片描述

图1.1 基于单片机的心率脉搏检测系统结构图
方案二:以TI公司生产的DSP芯片作为核心。SP即数字信号处理器,是一种研究用数字对信号进行分析、转换、滤波、检测、调制、解调和高速算法的元件[3]。该系统主要由光电脉搏传感器、脉搏信号调理电路和DSP实时检测及处理系统三部分组成[4]。如图1.2所示,当传感器采集到人体生理脉搏信号时,信号就会经调理电路传送到DSP系统中,实现心率脉搏的检测。
在这里插入图片描述

图1.2 基于DSP的心率脉搏检测系统结构图
总之,DSP的运行速度很高,但与之相对应的,是它负责的控制算法。相比而言单片机系统的控制方法相对简单,可靠性高,价格低,功耗低。虽然单片机与DSP相比功能相对简单,但完全可以满足设计要求。因此,综合个人实际以及现在市面上的元器件花费情况,我们选用单片机作为这次系统研究的主控芯片。
1.2 脉搏传感器方案设计
传感器也被称为换能器、转换器等。相当于我们身体中的五官,用来感受外界传递给我们的信息。
脉搏传感器是脉搏检测系统的重要部分。在本次系统设计之前,我花费了大量的精力,通过广泛的社会调查,结合在大学期间所学习的知识,融汇贯通,研究出了几套方案,具体如下面三种:
方案一:光电式传感器。众所周知,人体血液是一种不透明的液体。光对一般组织的穿透力相对于血液来说,是它的几十倍。根据这项功能,我将目光放到了光电式传感器上,使用光电效应手指脉冲传感器,用它来记录我们的脉冲信号。在它的内部结构中,我们用光电二极管的来锁定装置,其光电效应特性决定了光照强度与电流成正比,光照强度越大,相对应的锁定电流也就越大。当然有固定的光强范围。
在元器件所决定的光强范围中,光电二极管的阻断电流与光强成正比的线性关系[5]。当脉搏跳动时,人体中的血管体积和光透过血液的散发随着脉搏的跳动而变化,随之而对应的,不同强度的光传递到光电管的两极,将会得到不同强度的光流。再由模拟量转换成数字量,可以得到相对应的数字型号,再将得到的信号分别传输到通常用于测脉冲的光电传感器的红外对管和红外放射管。
下面对红外对管和红外放射管分别做简短的功能介绍,两者相互作用,得到所需的数据资料。
我们首先用手指尖按住红外对管,因为手指尖易于测量。手指的血液浓度和光头率会伴随着心脏的跳动而产生相对应的变化(一定范围内),相对应的,红外对管对应的信号也会不停改变。我们可以使用一些常规的处理方法,如放大、滤波、比较等,将采集到的模拟信号转换成我们所需要的理想的数字信号 。
采用反射式的红外管。这是目前市面上最主流的传感器,我们通常都采用这种传感器来采集信号,因为红外线管是在手指的同一侧接收和传输的,所以就可以忽视个体的差异,通常可以适用于大部分用户。这种传感器通过接收血液散射反射的光,通过这次的采集方式,我们能够准确测量血管内部容积的变化。
方案二:压电式传感器。目前来说,一次性心电电极是使用最多的,这种传感器通常采用接扣与敏感区分离的方法,通过这种方式我们能明显的感受到干扰量的减少,因为人体运动会产生大量干扰,这对传感器的准确性会产生极大地偏导。在考虑到人的体液会对我们的测量造成极大的干扰,所以我选择了相对贴合我们实际的电机,我们所采集到的心电信号质量起着很大程度上取决于电极的好坏,我们采用的电极必须要有强大的粘合力,能紧帖在我们所需要的测量的部位[6]。为了在实际应用中统一和比较接收到的脉冲信号,在记录脉冲信号时,我们对电极的位置、各部分元器件的连接有着极其严格的要求。
目前,市场上已开发出一种新型高分子压电材料聚偏氟乙烯研制的压电传感器,作为压电传感器,它有着十分优良的特点:他的灵敏度较高,可以精确检测出数据;在灵敏度较高的情况下,他还能有着十分可观的频率范围;他的结构简单,易于上手并且使用相比较其他方式来说十分方便。
当手指前端处于接触状态时,模拟信号从传感器中提取出来,转换为电信号。这样传感器通过捕捉手指脉冲的波长,可以得到人体的脉搏信号。
方案三:集成传感器。当前,集成心电传感器在市场是数不胜数,相比于其他传感器,它具有最高的灵敏度,并且它的集成度高,个头小巧,方便携带,它还可以比较直观地看到心率的变化,其中且已包含了滤波等抗干扰电路,波形经过放大处理后,可以直接应用在单片机之中。它的缺点也十分明显,就是它的价格非常昂贵,价格是其他传感器的数十倍,就本次设计来说,考虑到经费以及锻炼自己的目的,不会轻易选择使用该型传感器。
综上所述,光电式传感器的实用性,便捷性抗干扰性都要优于压电式传感器,并且在价格上碾压集成传感器,经多方考虑,本次设计选用了光电式传感器来进行设计研究。
1.3 系统工作原理
本设计控制器采用 STC89C51单片机,用于实现人体的心率体温测量系统检测。我们可以利用光电脉冲传感器收集人体脉冲和心率的数据。接收到的信号发送至STC89C51进行处理,得到的数据将会在液晶显示屏上显示,液晶显示屏上显示得到得的脉搏数和温度。若有异常,显示屏将会显示出具体的脉搏温度,得以提醒人们脉搏或提问异常。心率监测系统设计框图如图1.3所示:
在这里插入图片描述

图1.3 心率监测系统设计框图
日常的测试操作中,我们可以将手指位于传感器的位置。当心脏跳动收缩时,血管内液体的浓度和流量也会发生变化。当光照射手指组织时,血管中血氧饱和度的变化会导致接收管中接收到的光强度发生变化,这里就呈现出线性正比的联系,从而使光脉冲和心跳相等。当接收管波长变化时,红外接收管也随之变化,电流也随之波动。此时,红外接收器可以检测转换为脉冲信号的电压变化。信号在单片机端口经过滤波、放大、成形后发射。单片机在接收到外部中断信号后执行相应的命令[7]。CPU对输入的脉冲信号进行处理,将得到的数值进行输出,输出的心率数值将会在液晶上面显示。

2 硬件设计

2.1 主电路
2.1.1 单片机的选择
此次设计选用单片机当作主控芯片,为了保证系统更好的运行,STC89C51单片机掌握起来更方便,成本低廉,超强的抗干扰性,在系统中可以进行编程,不需要编程器。故本设计采用STC89C51单片机[8]。
基于此有以下两种方案可供选择:
方案一:STC89S51单片机作为心率监测系统的CPU是因为其低廉的价格和编程的方便性。虽然STC89S51单片机的功能是有限的,但是对于心率监测系统的功能实现是没有问题的。
方案二:飞思卡尔公司的嵌入式芯片9S12XS128,这款单片机的最实用的优点就是可以专门计数,这对于我们本系统来说是十分有利的。
最终,在考虑实际应用后,我选择了STC89S51单片机放弃了嵌入式芯片9S12XS128,嵌入式芯片9S12XS128对比其他的单片机功能齐全,操作也更加简单,与之相对应的是昂贵的价格。综合来说,不符合设计心率体温监测系统的设计初衷[9]。
2.1.2 STC89C51的主要功能及性能参数
此次设计选用的STC89C51单片机,使用COMOS8作为单片机的微处理器,片内具有4KB的Flash存储器。该设备有40个管脚,速度快,价格便宜,燃录方便,通过串行口下载,在线编程一般情况下增强型是6时钟然而普通型是12时钟;工作频率范围在40MHZ以内,和8051的80MHZ以内基本相一致;STC89C1相应的Flash可以划分成4KB/8KB/15KB;内部存储器为512B;定时器一共有3个16位;中断源一共有8个;其不需要专用编程器;通用I/O口一般由32/36个;工作电压通常情况下为3.8-5.5V;外形封装可以分为40脚PDIP、44脚PLCC以及PQFP等[10]。
2.1.3 STC89C51单片机引脚说明
在这里插入图片描述

图2.1 STC89C51封装形式

2.3放大电路
脉冲低通比较器是基于身体脉搏心率运动后跳动次数200次/min来设计的,如图2.3所示。R6、C6形成了低通滤波器从而能够消除残留的影响并决定着截止频率。运放LM358能够把信号放大而放大倍数依据R12/R13来决定,低通放大之后输出的信号是叠加有噪声的脉动正弦波如图2.4所示。在这里插入图片描述

图2.3 低通放大电路
在这里插入图片描述

图2.4 心率脉搏传感器输出波形图

3 软件设计

3.1编程语言的选择
再进行编写的时候,语言的选择很重要,选择一门正确的语言可以看起来简单易懂、加快整个毕设的进程,在对比C语言和汇编语言的优缺点时,C语言具有很大的优势,例如极大地提升程序的可读性,研究开发的时间大大缩短,并且,它具有极大地库文件,为我们的程序编写提供了巨大的方便。因此选择C语言[17]。
3.2 Keil程序开发环境
在本设计中,选择使用Keil软件、C语言进行编程,在短时间内很容易熟悉掌握其中Keil有以下特点:
(1)Keil软件在很多的电脑操作系统中都能够使用,下载方便快捷,提供了丰富的库函数,并有功能强大的开发工具为之辅助[18]。这是其他软件所不具有的;
(2)在使用Keil软件编程的过程中,写成程序进行编译的过程中,如有错误不能直接的下载,会有提示;
(3)Keil软件可以配合仿真软件使用,将编译好的程序下载到在仿真软件中,通过仿真软件可以查看程序的不足之处,方便进行修改;
(4)Keil可以完成许多开发过程,从编辑、编译到连接和调试。Keil软件界面如图3.1所示。
在这里插入图片描述

图3.1 Keil开发界面图
3.3 STC-ISP程序烧录软件介绍
STC-ISP是为STC系列单片机开发的单片机下载编程软件。它是一个用于下载代码、在线模拟和显示串行接口的集成软件。它是在智能51系列产品开发过程中获得的。它具有广泛性和高性能。是目前51系列单片机控制系统研发中不可缺少的一部分[19]。
可以通过下载器下载微控制器程序(即用于串行接口的编程模块,如CH340)。在连接了MCU开发板、下载程序和PC机之后,首先就是要选定单片机的型号,波特率将根据定时器的初值计算出来,在程序编写完成且编译也没有出现错误的时候,在选定的文件夹中会有系统自动存放进去的“Hex”文件,选定好之后,最后单击程序的下载按钮即可。具体下载界面如图3.2所示。
在这里插入图片描述

图3.2 烧录软件对话框
3.4 CH340串口程序烧写模块介绍
本设计通过CH340串口烧写模块实现对单片机程序的烧写。CH340串口烧写模块使用USB接口,十分方便的解决了笔记本电脑用户对STC系列单片机的程序烧写问题,本下载器低价格、高性能,是开发STC系列单片机的首选优秀工具。模块如图3.3所示。
在这里插入图片描述

图3.3 CH340串口烧写模块

4 系统调试

4.1 系统硬件调试
根据选好的元器件,在熟悉掌握每一个引脚之后,要绘制电路图。在绘制电路图的过程中,要注意美观、耐用、走线尽可能地少一些,是电路板看起来不会那么乱。在焊接的过程中,既要有正确的焊接技术,还要保证待焊接面是干净的,这样才能保证防止不良焊点的出现。如果待焊接面不干净,需要将其清理干净,才可以重新进行焊接。当板子根据原理图焊接好之后,在对硬件进行调试的时候,首先就要检查每个元器件的引脚有没有完全的和板子焊接上或者会出现脱焊、虚连的这种情况,还要根据电路图仔细检查一下,看看有没有漏焊的情况,同时要看需要连接的线路有没有都连上,特别要注意电源线和地线的连接[20]。以免在通电的时候发生短路,烧毁某些元器件,或者不能正常工作的情况。
当单片机中有程序下载进去时,会发现LCD1602液晶屏没有光亮,也不显示任何的数字。如果发生上述的这种情况,不要心急,要逐一的去检查每个元器件,参照原理图,使用万用表进行测量,确定是什么部位错误导致的。在万用表上会有一个蜂鸣器,可以根据蜂鸣器有无声音来判断是否有问题[21]。
4.2 系统软件调试
本设计是基于单片机控制,利用单片机的主程序完成对心率脉搏计的控制,使用的是STC89C51系列,这个系列的单片机应用非常广泛,编译语言以C语言为主。本次设计以Keil μVision 4软件进行编写。
Keil μVision 4使用的基本方法,首先需要建立一个新的项目,选择使用的单片机类型,可以编写一个新的文件,编写完程序后进行编译,编译就是检测程序是否有错误和警告,警告不会影响程序的运行。在编译程序之后,生成.HEX文件。程序写入控制芯片STC89C51后,接通电源,电源指示灯亮,系统启动。当人的手指接触到光电传感器时,指示灯亮说明系统开始工作,记录一分钟心率脉搏次数,则心率脉搏计工作正常。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92352.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92352.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92352.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++》面向对象编程--类(中)

文章目录一、构造函数1.1定义1.2语法1.3特性二、析构函数2.1定义2.2语法2.3特性三、拷贝构造函数3.1定义3.2语法3.3特性3.4浅拷贝3.4.1定义3.4.2浅拷贝的风险3.5深拷贝一、构造函数 1.1定义 在C中,构造函数(Constructor) 是一种特殊的成员函…

机器学习初学者理论初解

大家好! 为什么手机相册能自动识别人脸?为什么购物网站总能推荐你喜欢的商品?这些“智能”背后,都藏着一位隐形高手——机器学习(Machine Learning)。一、什么是机器学习?简单说,机器学习是教计…

原码反码补码

在Java中,无论是小数还是整数,他们都要带有符号(和C语言不同,C语言有无符号数)。首位就作为符号位。原码反码:正数的反码是其原码本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反…

使用ubuntu:20.04和ubuntu:jammy构建secretflow环境

一、使用ubuntu:20.04构建隐语编译环境FROM ubuntu:20.04LABEL maintainer"build SecureProtocolLib on ubuntu:20.04"ARG TARGETPLATFORM# change dash to bash as default shell RUN ln -sf /bin/bash /bin/shRUN apt update \&& apt upgrade -y \&&am…

Hinge Loss(铰链损失函数)详解:SVM 中的关键损失函数

📌 一、什么是 Hinge Loss?Hinge Loss(铰链损失),是 支持向量机(SVM, Support Vector Machine) 中常用的一种损失函数,用于最大间隔分类。其核心思想是:当预测结果已经正…

days32 :零基础学嵌入式之网络2.0

一、wireshark :网络抓包工具1.功能:抓取通过电脑网卡的网络数据2.作用:排查故障、抓取数据做数据分析、3.用法:(1)sudo wireshark(2)选择需要抓取的网卡》any(3&#xf…

数字护网:一次深刻的企业安全体系灵魂演练

🧩 引言:什么是“护网”?—— 不止是攻防,更是企业安全能力的年度大考 每年,由国家相关部门牵头的“护网行动”都如期而至,各大企事业单位的安全团队也随之进入高度戒备状态。然而,“护网”远非…

基于 NumPy 的高效数值计算技术解析与实践指引

在数据处理与科学计算领域,高效是核心诉求。NumPy 作为 Python 生态高效数值计算的基石,以高性能多维数组对象及配套函数,成为数据从业者的必备工具。其数组支持算术、比较、逻辑等丰富运算,通过向量化操作直接处理每个元素&#…

Kafka MQ 控制器 broker

Kafka MQ 控制器 broker 1 控制器broker的选举 在 Kafka 集群中会有一个或多个 broker,其中有一个 broker 会被选举为控制器(Kafka Controller)​,它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ImageCarousel(图片轮播组件)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— ImageCarousel组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 <script setup> 语法以及 Tailwind CSS …

基于springboot的智能物流管理系统(源码+论文)

一、开发环境 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器&#xff0c;基于SQL的客户/服务器模式的关系数据库管理系统。其特点包括&#xff1a; 功能强大&#xff1a;支持多用户、多线程操作。使用简单&#xff1a;管理方便&#xff0c;安全可靠性高。跨平…

Collection接口的详细介绍以及底层原理——包括数据结构红黑树、二叉树等,从0到彻底掌握Collection只需这篇文章

目录 Collection简介 Collection的遍历方式 迭代器遍历 增强for遍历 Lambda表达式遍历 List集合 List集合的遍历方式 列表迭代器遍历以及普通for循环 数据结构 栈 队列 数组 链表 单向链表 双向链表 二叉树 遍历方式 普通二叉树 二叉查找树 平衡二叉树 旋转…

《安顺棒垒球》世界十大运动·棒球1号位

Worlds Top 10 Sports for Newbies | 棒球排第几&#xff1f; 全球青训体系大揭秘 ⚾添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;神王棒球世界十大运动排名 Top 10 Global Sports&#xff08;按参与度/商业价值/影响力综合排序&#xff09;足球 Footba…

什么是“差分“?

1. 什么是"差分"&#xff1f;想象两个人在玩跷跷板&#xff1a;当两人同时向上跳&#xff08;同向移动&#xff09;→ 跷跷板不动 → 这叫"共模"当一人向上&#xff0c;另一人向下&#xff08;反向移动&#xff09;→ 跷跷板倾斜 → 这叫"差分"差…

4.组合式API知识点(2)

10 组合式API - 模版引用模板引用的概念如何使用&#xff08;以获取dom为例 组件同理&#xff09;组件实例对象defineExpose()11 组合式API - provide和inject作用和场景跨层传递普通数据跨层传递响应式数据跨层传递方法需求解决思考

GitLab企业版部署与许可证生成完整指南

GitLab企业版部署与许可证生成完整指南一、背景二、环境准备三、部署步骤1. 创建目录结构2. 生成GitLab许可证2.1 克隆许可证生成器2.2 修改生成器脚本2.3 构建Docker镜像2.4 生成许可证文件3. 创建Docker Compose配置文件4. 启动GitLab容器4.1 初始启动4.2 修改GitLab配置4.3 …

Jenkins 不同节点间文件传递:跨 Job 与 同 Job 的实现方法

在日常的 DevOps 运维实践中&#xff0c;Jenkins 通常被用于串联多个自动化流程&#xff0c;而这些流程往往需要在不同的构建节点&#xff08;agent&#xff09;上执行。例如&#xff0c;在以下场景中&#xff1a; &#x1f4cc; 场景需求描述&#xff08;实际问题&#xff09;…

Java中AQS原理

一、核心架构&#xff1a;AQS抽象队列同步器二、AQS核心机制1. 三大核心组件&#xff1a;state状态变量&#xff1a;volatile int&#xff0c;表示锁状态&#xff08;0未锁定&#xff0c;≥1锁定/重入次数&#xff09;CLH队列&#xff1a;双向链表实现的线程等待队列Node节点&a…

深入理解程序链接机制:静态链接、ELF加载与动态库实现原理

目录 一、静态链接 1、静态链接的基本概念 1. 静态链接实例分析 2. 目标文件分析 3. 关键观察 4. 重定位机制 5. 注意事项 2、静态链接过程详解 1. 目标文件反汇编分析&#xff08;上面已分析&#xff09; 2. 符号表分析 code.o 符号表 hello.o 符号表 3. 链接后的…

python基础复习

复习python基础语法,最好能做到使用python 写一些简单的算法。 1基础基础语法 1.0 输入输出 一个实用的print:format函数print(站点列表 {0}, {1}, 和 {other}。.format(Google, Runoob, other=Taobao)) 站点列表 Google, Runoob, 和 Taobao。print("a", "b…