基于单片机的智能心率体温检测系统设计

本文介绍一种基于单片机的心率体温检测系统,利用PT100和TCRT5000传感器,结合放大、滤波、AD转换电路,实现体温和心率的精确测量,并通过上位机界面展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主福利:100G+电子设计资料合集icon-default.png?t=N7T8https://dwz.date/fyQa

本文介绍了一种基于单片机的心率体温检测系统。此次设计的电路部分主要包括:传感测量电路、放大电路、滤波整形电路、AD转换电路、控制电路、电源供电电路等。上位机为通过VC编程界面。

通过上位机按键控制,将PT100及TCRT5000输入的微弱信号进行放大整形,最后AD采集转换传送给单片机,在上位机界面上显示相关体温及心率信息。

1 硬件总框图设计 

此次设计的是基于STC89C52的心率和体温采集计,因此需要温度传感器以及测量人体心率信号的红外传感器。温度传感器使用PT100并通过放大电路对抓取的电压进行放大,并通过ADC0804进行AD转换最后送给52单片机。

经过实验论证TCRT5000如果采用反射式接法其获取的人体心率信号的变化比较微弱,波形难以捕捉,因此在设计中采用2个TCRT5000使用对接的方式进行获取人体的心率信号。

TCRT5000接收端所获取的微弱的心率信号通过二级模拟放大电路进行放大,接着通过滤波电路改善波形的质量,最后通过比较电路将波形改变为方波电路,并将其幅值变成可被单片机识别的5V标准的数字电平,输出给单片机进行采集。

设计中上位机设计使用了3个按键,通过按键完成测试的开始和停止以及推出系统的控制。并通过上位机界面来显示所获取的心率值以及体温值。具体电路图详见附录,总框架图如图所示:

硬件设计总框图

2 体温采集电路设计 

体温采集电路主要由PT100传感器电路,信号放大采样电路,AD转换电路3个部分组成,并最终将信号送给单片机进行处理。

2.1 PT100传感器电路

PT100传感器电路主要实现将PT100随温度变化而产生的阻值变换转换为电压的变化,方便后续电路的采集,由于PT100在0度时阻值为100欧姆,因此可以通过与电阻100欧进行比较来获取相应的电压,其部分电路如图所示:

PT100传感器电路

2.2 信号放大电路

由于PT100的随温度变化阻值变化较小,因此通过5V和100欧电阻串联电路所获取的电压值变化较小,如果直接获取将存在很大的误差,因此需要进行信号放大。

放大电路采用差分法过滤掉电路本身的误差,通过与标准的100欧分出的参考电压2.5V进行相减,并通过可调电阻将变动的电压进行放大,最后通过减法电路将放大后的电压值传给AD转换芯片,其相关电路如图:

信号放大电路

2.3 AD转换电路

AD0804将信号放大电路输出的放大的模拟电压值转换为8位的二进制数据传送给单片机。AD0804的参考电源取输入信号电压的最大值的二分之一。例如输入信号电压范围是0-5V时,则参考电源选取2.5V。

ADC0804内部有时钟发生电路,只要在外部clk1引脚和clkr两端外接一对电阻电容即可产生AD转换所要求的时钟,其振荡频率为fclk=1/1.1RC。典型的应用参数为:R=10K,C=150PF,fCLK=640KHZ,转换速度为100us。具体接法如下图:

AD转换电路

3 心率信号采集电路设计 

心率采集电路包括红外发射电路,红外接收电路,信号放大电路,滤波电路以及波形变换电路等几个部分。

3.1 红外发射电路

红外发射电路主要是将红外反射式TCRT5000的发射端接相应电源,产生红外信号,具体电路如下:

红外发射电路

3.2 红外接收电路

红外接收电路接收来自发射端发出的红外信号,通过获取接收端C和E端的电压获取相应的红外信号值,因为人体的心率信号是交流信号,因此在接收端通过一电容将直流信号进行隔离,其电路如下:

红外接收电路

3.3 二级信号放大电路

从接收电路获取的心率信号十分微小,因此需要通过放大电路进行信号放大,此次通过运放的负反馈反向比例放大电路将信号放大,其电路如图所示:

二级信号放大电路

3.4 滤波电路

放大电路将需要的心率信号进行了放大,同样也将输入端的一些杂波信号进行了放大,产生了一些尖脉冲,因此需要通过滤波电路将这些杂信滤除,此次设计使用了2级RC电路进行滤波,具体电路如下:

滤波电路

3.5 波形变换电路

从滤波电路所获取的波形是模拟的,类似于正弦信号的,其上升沿和下降沿比较平缓,不能被单片机直接获取,而需要将这种平缓的波形变换为方波形式的波形比较陡峭的脉冲信号,并且幅值为单片机可识别的5V电平,因此可通过比较器LM393实现波形的变换,通过再输入端设定一个比较的参考电压值,当超过此参考电压时输出5V高电平,低于此参考电压时输出0V低电平,在输出端接上拉电阻提高LM393的输出驱动能力,具体电路如下:

波形变换电路

4 报警电路设计 

报警电路主要实现当处于测试时,如果测试所获取的值超过了所设定的范围,则单片机控制蜂鸣器的开关进行报警。其电路如图所示:

报警电路

5 软件程序设计 

上电时,程序在初始化各参数后,定时器2工作模式开始运行。当接受到外部中断0的按键输入时,保存按下的键值并判定是哪个键被按下,上位机按键控制测试的开始和停止。在测试状态下,通过延迟一定时间进行体温和心率的采集,然后进行采集值的显示和报警的判定,如果不在范围内就进行报警。

基于51单片机心率体温检测系统设计,可以分为硬件设计和软件设计两个部分。 硬件设计: 1. 传感器模块:使用体温传感器和心率传感器分别检测体温心率数据,并将数据传输给单片机。 2. 单片机模块:使用51单片机作为主控芯片,接收传感器模块传来的数据,并进行处理。 3. 显示模块:使用LCD显示屏显示体温心率数据。 软件设计: 1. 传感器数据采集:使用单片机的ADC模块采集传感器模块传来的数据。 2. 数据处理:对采集到的数据进行处理,计算出体温心率的值。 3. 数据显示:将处理后的数据通过LCD显示屏显示出来。 代码示例: ```c #include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit DQ = P3^7; //体温传感器引脚 sbit CLK = P3^6; //心率传感器引脚 sbit RS = P2^6; //LCD显示屏引脚 sbit RW = P2^5; sbit EN = P2^7; void delay(uint i) //延时函数 { while(i--); } void write_com(uchar com) //写命令函数 { RS = 0; RW = 0; P0 = com; EN = 1; delay(5); EN = 0; } void write_data(uchar dat) //写数据函数 { RS = 1; RW = 0; P0 = dat; EN = 1; delay(5); EN = 0; } void init() //LCD初始化函数 { write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); } void main() { uchar temp, heart_rate; init(); while(1) { //体温传感器采集数据 DQ = 1; _nop_(); _nop_(); _nop_(); DQ = 0; _nop_(); _nop_(); _nop_(); temp = DQ; delay(10); //心率传感器采集数据 CLK = 1; _nop_(); _nop_(); _nop_(); CLK = 0; _nop_(); _nop_(); _nop_(); heart_rate = CLK; delay(10); //显示数据 write_com(0x80); write_data('T'); write_data('e'); write_data('m'); write_data('p'); write_data(':'); write_data(temp); write_com(0x8f); write_data('C'); write_com(0xc0); write_data('H'); write_data('R'); write_data(':'); write_data(heart_rate); write_com(0xcf); write_data('b'); delay(1000); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子开发圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值