资料编号:141
一:功能介绍
1、采用stm32单片机+LCD1602显示屏+蜂鸣器+DS18B20温度传感器+按键+电位器,制作一个基于stm32单片机电子血压心率脉搏体温计模拟测量仪Proteus仿真;
2、通过ds18b20传感器测量当前的体温,显示到LCD1602屏幕上面;
3、通过按键模拟调节当前的心率脉搏,显示到LCD1602屏幕上面;
4、通过电位器调节当前的血压值,经过stm32单片机ADC采集得到当前的血压值,显示到LCD1602显示屏上面;
5、当温度、心率或者血压超过程序设置阈值,蜂鸣器进行报警提醒,(阈值可以在程序中进行更改)
二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)
141-基于stm32单片机电子血压心率脉搏体温计模拟测量仪Proteus仿真+源程序
三:设计软件介绍
本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真,演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。
四:程序打开方法
特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。
部分程序展示,有中文注释,新手容易看懂
int main(void)//主函数
{
int xueya,maibo=60,t=0;
SystemCoreClockUpdate ();
LCD1602_Init();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//初始化ds18b20传感器
GPIO_InitTypeDef g;
g.GPIO_Mode = GPIO_Mode_Out_PP;
g.GPIO_Speed = GPIO_Speed_10MHz;
g.GPIO_Pin = GPIO_Pin_8 ;
GPIO_Init(GPIOC,&g);
GPIO_SetBits(GPIOC,GPIO_Pin_8); //输出1
tem=DS18B20_Get_Temp();//读取温度
ADC1_GPIO_Config();
ADC_Config();
key_init();BEEP_Init();
KEY1=KEY2=1;
while(1)
{
t++;
if(t>100)//每隔一段时间初始化一次LCD1602 防止花屏
{
t=0;
LCD1602_Init();
}
xueya=(float)ADC_GetConversionValue(ADC1)*(3.4/4096)*50;//读取血压
if(KEY1==0) //脉搏+
{
maibo++;if(maibo>999) maibo=999;
while(KEY1!=1);
}
if(KEY2==0) //脉搏-
{
maibo--;if(maibo<0) maibo=0;
while(KEY2!=1);
}
tem=DS18B20_Get_Temp();//读取温度
if( tem>0)
{ a=tem/100;
b=tem%100/10;
c=tem%10;
LCD_ShowChar(2,0,'T');//显示零上温度
LCD_ShowChar(3,0,'E');
LCD_ShowChar(4,0,'M');
LCD_ShowChar(5,0,'P');
LCD_ShowChar(6,0,'E');
LCD_ShowChar(7,0,'=');
LCD_ShowChar(8,0,'+');
LCD_ShowNum(9,0,a);
LCD_ShowNum(10,0,b);
LCD_ShowChar(11,0,'.');
LCD_ShowNum(12,0,c);
LCD_ShowChar(13,0,'C');
LCD_ShowChar(0,1,'M');//显示脉搏
LCD_ShowChar(1,1,'B');
LCD_ShowChar(2,1,'=');
LCD_ShowNum(3,1,maibo/100);
LCD_ShowNum(4,1,maibo%100/10);
LCD_ShowNum(5,1,maibo%10);
LCD_ShowChar(10,1,'X');//显示血压
LCD_ShowChar(11,1,'Y');
LCD_ShowChar(12,1,'=');
LCD_ShowNum(13,1,xueya/100);
LCD_ShowNum(14,1,xueya%100/10);
LCD_ShowNum(15,1,xueya%10);
}
else
{
tem1=-(tem);//显示零下温度
tem1=tem1+1;
a=tem1/100;
b=tem1%100/10;
c=tem1%10;
LCD_ShowChar(8,0,'-');
LCD_ShowNum(9,0,a);
LCD_ShowNum(10,0,b);
LCD_ShowNum(12,0,c);
}
if(tem>380||maibo>140||maibo<40||xueya>140||xueya<40) BEEP=0;//温度大于38或者40>脉搏或者血压>140 蜂鸣器提醒
else BEEP=1;
}
五:仿真文件(采用Proteus打开)
六:资料清单展示(文件中包含的相关资料)