基于51单片机的电子血压温度计proteus仿真设计 (仿真+程序+演示视频)

仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:S0026

主要功能:

以单片机为控制核心,设计一种电子血压计,同时具有测量体温的功能。该系统利用压力传感器采集压力信号,通过温度传感器采集温度信号,整个系统包括处理模块、测量模块、信号处理模块、显示模块以及电源处理模块;血压和体温通过按键进行切换。

(1) 可以实现温度测量,压力测量;

(2) 通过按键设置压力报警器设定值,测量压力值大于设定值时,蜂鸣器报警;低于则蜂鸣器不报警。

(3) LCD液晶显示测量的温度和压力值,可以通过按键切换显示;

(4)设计出来之后用Proteus软件仿真出效果;

主要硬件设备:51单片机、ADC0832数模转换芯片、MPX4115压力传感器、按键、LCD1602液晶屏幕、蜂鸣器。

资料下载链接(可点击):

【腾讯文档】S0026 网盘链接

https://docs.qq.com/doc/DS1NFRHdvUnlCdmh5

以下为本设计资料展示图:

仿真演示:

测量体温

img

测量血压

img

温度血压调节

img

设置血压报警值

img

程序(提供源文件源码):

img


void main()	  //主函数
{
 InitLcd();

  while(1)			  //进入循环
  {
  	KEY_SCAN();
	getdata=Adc0832(0);			    		
	temp=getdata/2-5;
	if( temp >  Xintiao_H )
	{
	 	speaker = 0;
	}
	else
	{
		speaker = 1;
	}
	temp = 0;
	 if( KEY_Set_TIMES == 0 )
	 {
		if( KEY_TIMES == 1 )
		{
	  	  getdata=Adc0832(0);
		  if(14<getdata<243)			               //当压力值介于15kpa到115kpa之间时,遵循线性变换
		 	{			    
//			  	int vary=getdata;						//y=(115-15)/(243-13)*X+15kpa			
				temp=getdata*10/2-50;			//测试时补偿值为9.3													  
//				temp=(int)(press*10);	          //放大10倍,便于后面的计算
			    if(temp != ppress)
			    {
			      ppress = temp;
			      OverFlg = 1;
			    }    											
				dispbuf[3]=temp/1000;			     	//取压力值百位
				dispbuf[2]=(temp%1000)/100;		    	//取压力值十位
				dispbuf[1]=((temp%1000)%100)/10;	    	//取压力值个位
				dispbuf[0]=((temp%1000)%100)%10;			//取压力值十分位
				LCD_WriteCom( 0x80 );
				LCD1602_Write_char( "   heart rate   " );
				LCD_WriteCom( 0x80 + 0x40 );
			    LCD1602_Write_char("Rate:");
				LCD_WriteData( 0x30 + dispbuf[3] );
				LCD_WriteData( 0x30 + dispbuf[2] );
				LCD_WriteData( 0x30 + dispbuf[1] );
				LCD_WriteData( '.' );
				LCD_WriteData( 0x30 + dispbuf[0] );
			}
		}
		if( KEY_TIMES == 0 )
		{
			lcd_1602_word(0x80,16,"  temperature  ");	  //初始化显示 
			wendu=ReadTemperature();
			lcd_1602_word(0xc0,10," Temp:    ");//显示第二行数据
			LCD_WriteCom(0x80+0x40+10);
			LCD_WriteData(wendu/100+0x30);
			LCD_WriteData(wendu%100/10+0x30);
			LCD_WriteData('.');
			LCD_WriteData(wendu%100%10+0x30);
			LCD_WriteData(0xdf);
			LCD_WriteData('C');
		}
	}
	else
	{
		KEY_Set_Rate();
		dispbuf[3]=Xintiao_H/100;			     	    //取设置压力值百位
		dispbuf[2]=Xintiao_H%100/10;		    	    //取设置压力值十位
		dispbuf[1]=Xintiao_H%10;	    				//取设置压力值个位
		LCD_WriteCom( 0x80  );
		LCD1602_Write_char( " Set heart rate " );
		LCD_WriteCom( 0x80 + 0x40 );
	    LCD1602_Write_char("warning:");
		LCD_WriteData( 0x30 + dispbuf[3] );
		LCD_WriteData( 0x30 + dispbuf[2] );
		LCD_WriteData( 0x30 + dispbuf[1] );
	}
  }
}

资料清单(提供资料清单所有文件):

报告不对应,仅供参考

img

资料下载链接(可点击):

https://docs.qq.com/doc/DS3FnQUZIYU5jRWZ2

更多资源 点击下方链接:

https://docs.qq.com/sheet/DS0xIa0llTmtNakRW

微信公众号:嘉盛单片机

img