脉搏测量仪在我们的日常生活中已经得到了非常广泛的应用,通过观测脉搏信号,可以对人体的健康进行检查,通常被用于保健中心和医院。为了提高脉搏测量仪的简便性和精确度,本课题设计了一种基于51单片机的脉搏测量仪。

功能描述

1、采用51单片机作为主控单元芯片;

2、采用LCD1602显示,单位: 心率/分钟;

3、手指放到红外对管中间,2秒内读出心率;

4、采用LM358实现红外信号放大电路;

5、当检测到超标时,蜂鸣器进行报警;

6、按键可以设置报警的上下限心率;

基于单片机的心率监测系统设计(#0403)_电路设计

按键说明

1、K1:进入/切换/退出设置菜单;

2、K2:设置值+1操作;

3、K3:设置值-1操作;

整体方案

基于单片机的心率监测系统设计(#0403)_数据_02

电路设计

采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。

基于单片机的心率监测系统设计(#0403)_数据_03

仿真设计

采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

基于单片机的心率监测系统设计(#0403)_心率检测_04

主程序设计

void main()   //主函数
{
InitLcd();
Tim_Init();
lcd_1602_word(0x80,16,"Heart Rate: "); //初始化显示
TR0=1;
TR1=1; //打开定时器
while(1) //进入循环
{
if(Key_Change) //有按键按下并已经得出键值
{
Key_Change=0; //将按键使能变量清零,等待下次按键按下
View_Change=1;
switch(Key_Value) //判断键值
{
case 1: //设置键按下
{
View_Con++; //设置的位加
if(View_Con==3) //都设置好后将此变量清零
View_Con=0;
break; //跳出,下同
}
case 2: //加键按下
{
if(View_Con==2) //判断是设置上限
{
if(Xintiao_H<150) //上限数值小于150
Xintiao_H++; //上限+
}
if(View_Con==1) //如果是设置下限
{
if(Xintiao_L<Xintiao_H-1)//下限值小于上限-1(下限值不能超过上限)
Xintiao_L++; //下限值加
}
break;
}
case 3: //减键按下
{
if(View_Con==2) //设置上限
{
if(Xintiao_H>Xintiao_L+1)//上限数据大于下限+1(同样上限值不能小于下限)
Xintiao_H--; //上限数据减
}
if(View_Con==1) //设置下限
{
if(Xintiao_L>30) //下限数据大于30时
Xintiao_L--; //下限数据减
}
break;
}
}
}

源文件获取

关注公众号【电子开发圈】,首页发送 “心率” 获取;