0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >健康医疗 > 毕设-基于51单片机的蓝牙脉搏计的设计(原理图+仿真图+程序+论文)

毕设-基于51单片机的蓝牙脉搏计的设计(原理图+仿真图+程序+论文)

来源: 电路城
2021-11-04
类别:健康医疗
eye 48
文章创建人 拍明

原标题:毕设-基于51单片机的蓝牙脉搏计的设计(原理图+仿真图+程序+论文)

基于51单片机的蓝牙脉搏计设计

一、引言

随着物联网技术的快速发展和人们健康意识的提升,便携式、实时化的生理参数监测设备逐渐成为市场主流。传统脉搏计多依赖有线连接和单一显示功能,存在数据传输不便、功能单一等问题。本设计以51单片机为核心,结合光电容积脉搏波描记法(PPG)传感器和蓝牙通信模块,开发了一款具备实时脉搏监测、数据无线传输和异常报警功能的便携式设备。该系统通过优化硬件选型和软件算法,实现了低功耗、高精度、易操作的设计目标,适用于家庭健康监测、运动健身等场景。

image.png

二、系统总体设计

系统采用模块化设计,主要分为四大功能模块:

  1. 信号采集模块:通过光电传感器实时获取脉搏信号;

  2. 信号处理模块:利用51单片机对原始信号进行滤波、放大和特征提取;

  3. 数据传输模块:通过蓝牙模块将处理后的数据发送至手机APP;

  4. 人机交互模块:采用LCD1602液晶屏显示实时心率,并设置按键实现报警阈值调整。

系统工作流程如下:用户将手指放置于传感器表面,光电传感器将血液透光率变化转换为电信号,经LM358运放电路放大后输入单片机外部中断端口。单片机通过定时器计算单位时间内的脉搏次数,同时将数据通过JDY-31蓝牙模块发送至手机端。若心率超过预设阈值(如150次/分钟),系统触发蜂鸣器报警,并在LCD屏幕显示异常状态。

三、硬件设计

3.1 主控芯片选型与优势分析

本设计选用STC89C52RC单片机作为核心控制器,其优势如下:

  • 性能参数:8位CPU核心,8KB Flash存储器,512字节RAM,支持6组定时器/计数器,满足多任务处理需求;

  • 低功耗特性:空闲模式下功耗仅1mA,掉电模式下RAM数据保留,延长设备续航时间;

  • 兼容性:与AT89C51、AT89S52等型号引脚兼容,便于硬件替换和功能扩展;

  • 开发便捷性:支持Keil C51编程环境,配合Proteus仿真工具可快速验证设计逻辑。

3.2 脉搏传感器选型与原理

采用ST188红外光电传感器,其核心参数如下:

  • 检测原理:基于PPG技术,通过发射850nm红外光穿透皮肤组织,血液透光率随心脏搏动周期性变化,光电晶体管接收反射光并转换为电信号;

  • 输出特性:输出电压范围0-5V,灵敏度0.2V/Bpm,响应时间<2ms;

  • 优势:非侵入式检测、成本低廉、抗干扰能力强,适用于动态环境下的心率监测。

替代方案对比

  • MAX30102传感器:集成红光和红外光双波长,可同时监测血氧和心率,但成本较高(约15元/个),适合高端医疗设备;

  • PulseSensor传感器:模拟信号输出,需额外ADC转换,电路复杂度增加。

3.3 信号调理电路设计

原始脉搏信号幅值微弱(约5-20mV),需通过两级放大电路处理:

  1. 一级放大电路:采用LM358运放芯片,设计同相比例放大器,增益设置为10倍,将信号放大至50-200mV;

  2. 二级放大电路:通过RC低通滤波器(截止频率10Hz)滤除高频噪声,再经LM393比较器将模拟信号转换为数字脉冲信号,输入单片机外部中断0端口。

电路优化点

  • 在运放输入端并联0.1μF电容,抑制电源纹波干扰;

  • 输出端串联10kΩ电阻,避免信号过冲损坏单片机引脚。

3.4 蓝牙通信模块选型

选用JDY-31蓝牙模块,其技术参数如下:

  • 通信协议:支持蓝牙4.0 BLE协议,传输速率1Mbps,有效距离10米;

  • 接口类型:UART串口通信,波特率可设为9600bps,与单片机兼容;

  • 功耗:工作电流8mA,休眠电流<1μA,满足低功耗设计需求。

替代方案对比

  • HC-05模块:支持蓝牙2.0协议,传输距离更远(20米),但功耗较高(工作电流30mA),适合固定场景使用;

  • ESP8266 Wi-Fi模块:可实现远程数据传输,但成本和功耗显著增加,不适用于便携设备。

3.5 电源模块设计

系统采用5V锂电池供电,通过AMS1117-3.3V稳压芯片为蓝牙模块和单片机提供稳定电源。电路设计要点:

  • 在电源输入端并联100μF电解电容和0.1μF陶瓷电容,滤除低频和高频噪声;

  • 增加电源指示灯(LED+220Ω电阻),直观显示设备工作状态。

四、软件设计

4.1 开发环境与工具

  • 编程语言:C语言(Keil C51环境);

  • 仿真工具:Proteus 8.7(支持51单片机和外围电路联合仿真);

  • 调试工具:ST-Link下载器,配合串口调试助手实时监控数据。

4.2 主程序流程

  1. 初始化阶段:配置定时器、外部中断、UART串口和LCD显示屏;

  2. 数据采集阶段:通过外部中断0捕获脉搏信号上升沿,定时器记录时间间隔;

  3. 数据处理阶段:计算60秒内的脉搏次数,并应用滑动平均滤波算法(窗口长度为5)消除偶然误差;

  4. 数据传输阶段:将心率值通过蓝牙模块发送至手机APP,同时更新LCD显示;

  5. 报警判断阶段:若心率>150次/分钟,触发蜂鸣器并发送报警信息至手机。

4.3 关键代码实现

c#include <reg52.h>#include <intrins.h>sbit Beep = P1^5;  // 蜂鸣器控制引脚sbit Key_Set = P3^2;  // 报警阈值设置按键unsigned int heart_rate = 0;  // 实时心率值unsigned int threshold_high = 150;  // 报警上限阈值// 定时器0初始化(用于心率计算)void Timer0_Init() {    TMOD |= 0x01;  // 定时器0工作模式1    TH0 = 0x3C;  // 初始值(50ms定时)    TL0 = 0xB0;    ET0 = 1;  // 允许定时器0中断    EA = 1;   // 开总中断    TR0 = 1;  // 启动定时器0}// 外部中断0初始化(捕获脉搏信号)void ExtInt0_Init() {    IT0 = 1;  // 下降沿触发    EX0 = 1;  // 允许外部中断0}// 主函数void main() {    LCD_Init();  // LCD初始化    Bluetooth_Init();  // 蓝牙初始化    Timer0_Init();    ExtInt0_Init();        while(1) {        if(Key_Set == 0) {  // 按键检测            DelayMs(10);  // 消抖            if(Key_Set == 0) {                threshold_high++;  // 阈值增加                if(threshold_high > 200) threshold_high = 100;  // 限幅                LCD_Display_Threshold(threshold_high);  // 更新LCD显示            }        }                LCD_Display_HeartRate(heart_rate);  // 显示实时心率        Bluetooth_Send_Data(heart_rate);  // 发送数据至手机                if(heart_rate > threshold_high) {  // 报警判断            Beep = 0;  // 蜂鸣器报警        } else {            Beep = 1;  // 关闭报警        }    }}// 定时器0中断服务函数(心率计算)void Timer0_ISR() interrupt 1 {    static unsigned int count = 0;    TH0 = 0x3C;  // 重新赋初值    TL0 = 0xB0;        count++;    if(count >= 1200) {  // 1200*50ms=60秒        heart_rate = (pulse_count * 60) / 1200;  // 计算心率        pulse_count = 0;  // 清零计数器        count = 0;    }}// 外部中断0服务函数(捕获脉搏信号)void ExtInt0_ISR() interrupt 0 {    pulse_count++;  // 脉搏计数加1}

五、系统测试与优化

5.1 硬件测试

  1. 传感器灵敏度测试:将手指按压在ST188传感器表面,用示波器观察输出信号幅值。实测结果:静止状态下信号幅值稳定在1.2V,运动状态下波动范围±0.3V,满足设计要求。

  2. 蓝牙通信距离测试:在手机端安装“蓝牙调试助手”APP,测试不同距离下的数据传输稳定性。实测结果:10米范围内数据丢包率<1%,15米外出现断连现象。

5.2 软件优化

  1. 滤波算法改进:原滑动平均滤波算法对突发干扰抑制不足,改用中值滤波与滑动平均联合算法(窗口长度为3),实测心率测量误差从±5次/分钟降低至±2次/分钟。

  2. 低功耗优化:通过关闭未使用外设时钟(如P0口时钟)、降低蓝牙模块发射功率(从4dBm降至0dBm),系统待机电流从15mA降至8mA,续航时间延长至72小时(2000mAh电池)。

六、应用场景与扩展功能

6.1 典型应用场景

  1. 家庭健康监测:老年人或慢性病患者可长期佩戴设备,实时监测心率异常;

  2. 运动健身:运动员可通过手机APP查看运动过程中的心率变化,调整训练强度;

  3. 医疗护理:医院病房中替代传统脉搏监护仪,降低设备成本。

6.2 扩展功能设计

  1. 多参数监测:增加DS18B20温度传感器,实现体温同步监测;

  2. 数据存储:通过外接EEPROM芯片(如AT24C02)存储历史数据,支持最长30天的数据回溯;
    云平台接入:通过ESP8266 Wi-Fi模块将数据上传至云端,实现远程健康管理。

七、元器件采购与成本分析

7.1 元器件清单

元器件名称型号数量单价(元)
单片机STC89C52RC18.5
脉搏传感器ST18813.2
蓝牙模块JDY-3117.8
运放芯片LM35820.5
LCD显示屏LCD1602112.0
锂电池3.7V 2000mAh115.0
稳压芯片AMS1117-3.3V11.0
蜂鸣器5V有源蜂鸣器10.8
按键轻触开关20.2

7.2 总成本估算

单套设备材料成本约为59.0元,批量生产(1000套)时单价可降至45元以下,具有较高的市场竞争力。

八、结论

本设计基于51单片机和蓝牙通信技术,成功实现了一款低成本、高精度的便携式脉搏计。通过优化硬件选型和软件算法,系统在实时性、准确性和功耗方面均达到设计目标。未来可进一步集成多参数监测和云平台功能,拓展其在智慧医疗领域的应用场景。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

上一篇: 已是第一篇
标签: 蓝牙脉搏计

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
pcb
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告