RM新时代网站-首页

聚豐項目 > 大病術(shù)后吹氣練習(xí)儀

大病術(shù)后吹氣練習(xí)儀

首先,我向各位致歉,因為申請的項目為“液體流量傳感器”類的項目,但最終給我發(fā)來了“氣體流量傳感器”。使得原計劃項目不得不更改。但,我要致謝IDT,錯誤的傳感器,確給我?guī)砹肆硗庖粋€項目的應(yīng)用:大病術(shù)后吹氣練習(xí)儀。

lgx1213 lgx1213

分享
3 喜歡這個項目
團隊介紹

lgx1213 lgx1213

團隊成員

劉桄序 組長

劉小軍 軟件設(shè)計

羅晨 協(xié)調(diào)與設(shè)備測試

陳相炙 硬件電路

梁雄 軟件美觀設(shè)計

分享
項目簡介
首先,我向各位致歉,因為申請的項目為“液體流量傳感器”類的項目,但最終給我發(fā)來了“氣體流量傳感器”。使得原計劃項目不得不更改。但,我要致謝IDT,錯誤的傳感器,確給我?guī)砹肆硗庖粋€項目的應(yīng)用:大病術(shù)后吹氣練習(xí)儀。
硬件說明

 由于大病在手術(shù)后,都需要進行吹氣練習(xí),以練習(xí)肺活量和排除肺中廢物。
 為此研究的“大病術(shù)后吹氣練習(xí)儀”,具備以下功能:
1、儀器便攜方便,吹氣量化精確,為治療提供重要參考數(shù)據(jù)
2、儀器具備設(shè)備顯示和手機APP操作、顯示兩用,并具備數(shù)據(jù)記憶和查詢功能,方便病人和家屬使用
3、測試數(shù)據(jù)具有云端功能,方便醫(yī)生對病人氣量的掌握,數(shù)據(jù)科學(xué),避免家屬照顧中數(shù)據(jù)出現(xiàn)差錯,影響醫(yī)治和用藥判斷
4、測試提醒功能:照顧病人家屬可能因為照顧不周,忘記定期測試和測試時間,本功能測試儀具備設(shè)置定時提醒功能。


一、整體硬件電路雛形

二、硬件說明

   本硬件由單片機系統(tǒng)和氣體流量傳感器構(gòu)成。單片機系統(tǒng)采用89c52單片機,具備8位數(shù)字顯示功能,通過藍牙模塊與手機端APP進行鏈接,進行設(shè)備測試及其他相關(guān)操作。電路框圖如下:


1、單片機系統(tǒng)

    單片機采用最為常見的89C51系列單片機,對于系統(tǒng)應(yīng)用和移植都非常方便。單片機系統(tǒng)采用5V供電,與其他模塊電路供電電路一致。

     電路系統(tǒng)中,除最小系統(tǒng)應(yīng)用電路的18、19引腳外接晶體振蕩器外,9腳還必須外接對應(yīng)的復(fù)位電路,必不可少。另外對于功能性引腳引用方面:1、2腳(P1.0、P1.1)接按鍵,對運行模式進行調(diào)控。12~15( P3.2~P3.5),及21~28(P2.0~P2.7)為數(shù)碼LED顯示的段碼控制端。10、11腳(P3.0\RXD、P3.1\TXD)外接藍牙模塊,39腳P0.0接氣體流量傳感,進行AD模擬信號輸入。

2、氣體流量傳感器

    本系統(tǒng)電路中,氣體流量傳感器采用IDT提供的FS2011,本模塊各引腳功能鍵下表。

blob.png

在數(shù)據(jù)量化中,可以參考:

blob.png

以及:

blob.png

這由于傳感器的高靈敏性,使得在計算之前必須要進行補償,否則數(shù)據(jù)將不會準確。

3、藍牙模塊

本電路采用市售現(xiàn)成的藍牙模塊與系統(tǒng)相連,以便實施手機APP與硬件系統(tǒng)的數(shù)據(jù)交互。

4、按鍵電路

本系統(tǒng)中設(shè)置了2個按鍵,即K1和K2對應(yīng)電路??蓪\行狀況、各類參數(shù)進行設(shè)置調(diào)控。

5、顯示電路

本處顯示電路采用由74hc595驅(qū)動譯碼的八位數(shù)字顯示電路。其中,高4位顯示為瞬間氣體流量值,低4位位單次吹氣小計流量值。


三、手機狀態(tài)運行截圖

      上圖顯示吹氣人的吹氣量比較低,圖片顯示底部為綠色,需要加油練習(xí)。


      上圖顯示吹氣人的吹氣量比較好,圖片顯示中部為藍色,表示吹氣人的吹氣量較好。

    上圖顯示吹氣人的吹氣量比很好,圖片顯示上部為紅色,全部顯示完畢為最好,吹氣量為正常人狀態(tài)。

軟件說明


1、單片機應(yīng)用軟件

#include "reg52.h"

#include"XPT2046.h"

#include "intrins.h"

typedef unsigned int u16;  

typedef unsigned char u8;

u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

sbit k1=P2^0;

sbit k2=P2^1;

u8 m,moshi=1;


u8 disp[4],disp1[8];

static u16 temp2;

void delay100ms(void)   //誤差 -0.000000000023us

{

    unsigned char a,b;

    for(b=221;b>0;b--)

        for(a=207;a>0;a--);

}


void delay(u16 i)

{

while(i--);

}

void delay2ms(void)  

{

    unsigned char d,e;

    for(d=4;d>0;d--)

        for(e=248;e>0;e--);

    _nop_(); 

}

void UsartInit()

{

SCON=0X50;

TMOD=0X20;

PCON=0X00;

TH1=0XFd;

TL1=0XFd;

ES=1;

EA=1;

TR1=1;        

}

void datapros()

{

u8 temp1;

temp1 = Read_AD_Data(0xE4)/16;

disp[0]=temp1/1000;

disp[1]=temp1%1000/100;

disp[2]=temp1%100/10;

disp[3]=temp1%10;

if(m==4)

{

m=0;

}

}


void DigDisplay()

{

for(m=0;m<4;m++)

{

UsartInit();

SBUF='0'+disp[m];

delay2ms();

TI=0;

}

}

void delay10ms(void)   

{

    unsigned char a,b;

    for(b=249;b>0;b--)

        for(a=17;a>0;a--);

}


void datapros1()

{

static u16 temp3;


static u8 i;

if(i==100)

{

i=0;


temp3 = Read_AD_Data(0xE4);

if(temp3>100)

{

temp2=temp3+temp2;

}

else 

temp2=temp2;

   

}

i++;

disp1[0]=smgduan[temp3/1000];

disp1[1]=smgduan[temp3%1000/100];

disp1[2]=smgduan[temp3%1000%100/10];

disp1[3]=smgduan[temp3%1000%100%10];

  disp1[4]=smgduan[temp2/10/1000];

  disp1[5]=smgduan[temp2/10%1000/100];

  disp1[6]=smgduan[temp2/10%1000%100/10];

  disp1[7]=smgduan[temp2/10%1000%100%10];

}


void DigDisplay1()

{

u8 i;

for(i=0;i<8;i++)

{

switch(i) 

{

case(0):

LSA=0;LSB=0;LSC=0; break;

case(1):

LSA=1;LSB=0;LSC=0; break;

case(2):

LSA=0;LSB=1;LSC=0; break;

case(3):

LSA=1;LSB=1;LSC=0; break;

case(4):

LSA=0;LSB=0;LSC=1; break;

case(5):

LSA=1;LSB=0;LSC=1; break;

case(6):

LSA=0;LSB=1;LSC=1; break;

case(7):

LSA=1;LSB=1;LSC=1; break;

}

P0=disp1[i];

delay(100); 

P0=0x00;

}

}

void main()

{

while(1)

if(moshi==2)

{   while(1)

{

 datapros();

   DigDisplay();

        delay100ms();

 if(k2==0)

{

delay10ms();

if(k2==0)

{

 moshi=1;

break;

}

}

}

}

    else if(moshi==1)

{

while(1)

{

datapros1(); 

 DigDisplay1();

      if(k1==0)

 {

delay10ms();

 if(k1==0)

 {

 temp2=0;

 }

 }

      if(k2==0)

  {

delay10ms();

  if(k2==0)

  {

  moshi=2;

        break;

         }

       }

}

}

}

}



2、APP手機端應(yīng)用軟件

見附件運行程序


      3、云端數(shù)據(jù)庫

(略)

附件

(3.44 MB)下載

評論區(qū)(0 )
RM新时代网站-首页