基于51单片机的医用血压测量仪设计案例

发布者:EtherealJourney最新更新时间:2023-07-26 来源: elecfans关键字:51单片机  采集 手机看文章 扫描二维码
随时随地手机看文章

一、主要功能

本项目使用Proteus8.12仿真51单片机控制器,使用OLED12864液晶模块、PCF8591 AD模块、按键、电机等。


主要功能:

系统运行后,OLED显示开机显示界面。可通过K1键开始测量血压,气泵阀开启,一段时间后停止,开始测量高压和低压,并将测量值显示在OLED,并且显示当前血压状态。


主要功能如下:

(1)OLED显示血压;

(2)血压高压测量你;

(3)血压低压测量;

(4)血压状态显示。

二、硬件资源

51单片机核心模块、OLED12864液晶模块、按键、电机模块、PCF8591 AD模块。

三、软件设计

/*

//定义结构体

_sys_ctrl sys_ctrl;

//系统参数设置

void sys_parm_set(void)

{

//开始/停止

while(KEY1==1);

//清除高压显示值

OLED_ShowString(48,3," ",16);

//清除低压显示值

OLED_ShowString(48,6," ",16);

//清除血压状态

OLED_ShowString(16*6,6," ",16);

if(KEY1==0)

{

delay_ms(10);

if(KEY1==0)

{

QPF_PIN=0;//开启气泵

sys_ctrl.flag=1;

delay_ms(1000);

QPF_PIN=1;//关闭气泵

}

}

}

//系统数据显示

void sys_data_show(void)

{

u8 buf[4];

while(1)

{

//采集高压值显示

buf[0]=sys_ctrl.xy_hval/100+0x30;

if(buf[0]==0x30)buf[0]=' ';

buf[1]=sys_ctrl.xy_hval%100/10+0x30;

buf[2]=sys_ctrl.xy_hval%100%10+0x30;

buf[3]='�';

OLED_ShowString(48,3,buf,16);

//采集低压值显示

buf[0]=sys_ctrl.xy_lval/100+0x30;

if(buf[0]==0x30)buf[0]=' ';

buf[1]=sys_ctrl.xy_lval%100/10+0x30;

buf[2]=sys_ctrl.xy_lval%100%10+0x30;

buf[3]='�';

OLED_ShowString(48,6,buf,16);

break;

}

}

//系统功能控制

void sys_fun_ctrl(void)

{

//如果检测高压值高于血压高值1,或者检测低压值高于血压高值2,血压高

if(sys_ctrl.xy_hval>=XY_HVAL1 || sys_ctrl.xy_lval>=XY_HVAL2)

{

OLED_ShowCHinese(16*7,6,5);//高

}

//如果检测高压值低于血压低值1,或者检测低压值低于血压低值2,血压低

if(sys_ctrl.xy_hval<=XY_LVAL1 || sys_ctrl.xy_lval<=XY_LVAL2)

{

OLED_ShowCHinese(16*7,6,6);//低

}

//如果检测高压值低于血压高值1,并且高于血压高值2

//如果检测低压值低于血压低值1,并且高于血压低值2

if(sys_ctrl.xy_hvalXY_HVAL2 &&

sys_ctrl.xy_lvalXY_LVAL2)

{

OLED_ShowCHinese(16*6,6,7);//正常

OLED_ShowCHinese(16*7,6,8);

}

}

//应用控制系统

void appdemo_show(void)

{

sys_parm_init();//系统参数初始化

OLED_Init();

sys_open_show();//系统开机显示

while(1)

{

sys_parm_set();//系统参数设置

sys_data_get();//系统数据采集

sys_data_show();//系统数据显示

sys_fun_ctrl();//系统功能控制

}

}

四、实验现象

图片


图片

图片


关键字:51单片机  采集 引用地址:基于51单片机的医用血压测量仪设计案例

上一篇:51单片机数码管显示学习笔记
下一篇:51单片机的片内RAM和片外RAM的区别

推荐阅读最新更新时间:2024-11-12 16:18

8051单片机I/O口的工作原理
一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。 下面,先分析组成P0口的各个部分: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),上面一个是读锁存器的缓冲器,下面一个是读引脚的缓冲器,读取P0.X引脚上的数据,要使这个三态缓冲器有效,引脚上的数据才会传输到内部数据总线上。 D锁存器:在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是
[单片机]
80<font color='red'>51单片机</font>I/O口的工作原理
8051单片机以轮询方式实现串口通信(51接收数据后发送回PC端)
#include STC89C5xRC.H int main() { char buf; TMOD = 0x21; //设定timer1的工作模式 SCON = 0x50; //设置串行通信格式 TH1 = 0xE6; //设定timer1的初始值 TL1 = 0xE6; TR1 = 1; //开启timer1 while(1) { if(RI == 1) { //如果收到数据 buf = SBUF; RI = 0; SBUF = buf;//将收到的数据发回去 while(TI == 0); //等待数据发送完毕 TI = 0; } } return 0; }
[单片机]
80<font color='red'>51单片机</font>以轮询方式实现串口通信(51接收数据后发送回PC端)
51单片机,18B20,1602温度计+串口通信
制作出来的实物图如下: 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 上位机: 安装程序解压到同一目录下。再运行setup安装。。。。 温度计.exe 编写环境Win10 x64. VS2010 x86 C++ MFC 测试环境Win10 x64. 在32位系统上,能不能正常使用还不清楚。 所以公布了源代码文件,如果在32位系统上,不能正常使用。 请使用源代码文件,在32位系统上重新生成一下应用程序。。。 单片机源程序如下: #include reg52.h #include math.h bit flag1s = 0, _up = 0;
[单片机]
<font color='red'>51单片机</font>,18B20,1602温度计+串口通信
51单片机基础之继电器
继电器:简单的说继电器就是小电流、小电压控制大电流、大电压。这就是常见的继电器,这个是一路的。 工作参数:这里的控制端输入电压最少需要5V,最大24V,以及相应参数可见。 接线:有两种方式,一种是常开,另一种是常闭。 触发方式:有高电平触发,还有低电平触发方式。继电器上面有跳线帽,可以自己换。 注意:上面说了继电器是小电流小电压控制大电压大电流,所以就必须接两个电源,一端接的是继电器输入,另一端就是大电流大电压负载端,我们需要通过控制引脚来让负载工作或者停止工作。 如图:按照这个图连线,按照需要自己选择常开还是常闭。 说明:我使用的单片机是有多个电源的,所以我用一个单片机,实现了两个电源端。 这个是效果:
[单片机]
<font color='red'>51单片机</font>基础之继电器
Nexperia推出能源采集PMIC,以加速开发环境友好型能源自主式低功耗器件
Nexperia推出能源采集PMIC,以加速开发环境友好型能源自主式低功耗器件 电容式DC-DC转换器有助于节省高达90%的BOM成本 奈梅亨,2023年4月7日: 基础半导体器件领域的专家Nexperia今日宣布推出能量采集解决方案,进一步丰富其电源管理IC系列 。该方案可简化低功耗物联网(IoT)及其嵌入式应用,并增强应用性能。NEH2000BY是高性能电源管理集成电路(PMIC),可从环境中收集能源(例如借助光伏电池采集光能),并给电池或储能电容充电。凭借此特性,Nexperia的NEH2000BY可为开发体积更小、更环保的自供电式电子设备提供支持。此外,该能源采集解决方案还有助于减轻每年生产和废弃的数十亿电池
[电源管理]
Nexperia推出能源<font color='red'>采集</font>PMIC,以加速开发环境友好型能源自主式低功耗器件
51单片机教程:按键的定时器消抖(有延时的程序不是好程序
按键消抖原理 一、首先来回顾一下按键延时消抖 按键由于是机械结构,按下的时候难免产生抖动,一般抖动会在按下的时候与松开的时候产生,抖动时间大概是10ms 于是针对按键抖动就有了延时消抖的一种简单的解决方法: 二、按键消抖代码 方法一: 按下按键损耗的时间取决于按下按键到松开的时间,至少10ms,按下按键后CPU不再执行其他指令,直到按键松开,应用能力弱 代码作用:按下按键led状态取反,按下按键需要等待松开 #include reg51.h sbit key=P1^0; //定义key为P1.0 sbit led=P2^0; //定义LED为P2.0 void delay_ms(unsigned int t)
[单片机]
<font color='red'>51单片机</font>教程:按键的定时器消抖(有延时的程序不是好程序
51单片机在片设备与中断(1)
并行端口要点 MCS-51单片机内部有4个8位的并行I/O口P0、P1、P2、P3。其中P3口、P2口、P1口为准双向口,P0口为双向的三态数据线口。各端口均由端口锁存器、输出驱动器、输入缓冲器等构成。各端口除可进行字节的输入/输出外,每个位口线还可单独用作输入/输出,实际应用非常方便。 对并行I/O口的 读 修改 写 类指令(例如 CPL P0.0、ANL P1,#0FH等)实际是读出对应的端口锁存器的内容,执行修改后再写回到端口锁存器中。之所以是 读锁存器 而不是 读引脚 ,是为了避免因引脚外部电路的原因而使引脚的状态发生改变而造成误读。 P0口是一个三态双向I/O口,在需要进行外部ROM、RAM等扩展时,采用分时复用的
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved