基于單片機(jī)的便攜式多功能實(shí)時(shí)生理參數(shù)監(jiān)測(cè)儀(圖)
便攜式多功能實(shí)時(shí)生理參數(shù)監(jiān)測(cè)儀是一種可對(duì)跑步者跑步時(shí)的各種生理參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的儀器,該儀器以凌陽單片機(jī)為核心,配以DS18B20溫度傳感器、ZD-3微振動(dòng)傳感器、HK-2000脈搏傳感器及LCD顯示電路,使得該儀器具有實(shí)時(shí)監(jiān)測(cè)參數(shù)并顯示出來的功能
隨著國(guó)民經(jīng)濟(jì)的不斷發(fā)展,人們生活水平不斷提高和完善,健康已成了人們關(guān)注的焦點(diǎn)和追求的目標(biāo)。參加鍛煉無疑是保持健康的最佳方法,但很多人急于求成,往往適得其反,達(dá)不到鍛煉的效果,甚至可能對(duì)身體造成一定程度的傷害。目前市場(chǎng)上只有單純的跑步計(jì)步器,不能同時(shí)監(jiān)測(cè)人體生理參數(shù)并實(shí)時(shí)顯示,反饋給鍛煉者。本文設(shè)計(jì)的基于凌陽單片機(jī)的便攜式多功能實(shí)時(shí)生理參數(shù)監(jiān)測(cè)儀可將二者結(jié)合起來,并增加了MP3功能,使鍛煉者在鍛煉的同時(shí)還可以聽音樂,放松心情,從而達(dá)到提高鍛煉質(zhì)量的效果。
系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)以單片機(jī)為核心,配置以各種集成傳感器,使系統(tǒng)體積變的小巧。由于采用了微型封裝的集成電路芯片,使連線變短,減少了通信接口的個(gè)數(shù),從而提高了整機(jī)工作的可靠性。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
SPCE061A單片機(jī)
SPCE061A單片機(jī)內(nèi)部集成了模/數(shù)轉(zhuǎn)換器(ADC)、數(shù)/模轉(zhuǎn)換器(DAC)、32KB FLASH和2KB SRAM以及液晶驅(qū)動(dòng)器。利用該單片機(jī)作為處理芯片,使得模、數(shù)信號(hào)之間的轉(zhuǎn)換、液晶驅(qū)動(dòng)可以通過軟件來實(shí)現(xiàn),避免了外界信號(hào)的干擾,提高了系統(tǒng)的穩(wěn)定性及抗干擾能力。
SPCE061A最小系統(tǒng)
SPCE061A最小系統(tǒng)當(dāng)中,包括SPCE061A芯片外圍的基本模塊,有晶振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復(fù)位電路(RESET)、指示燈(LED)等,如圖2所示。
圖2 SPCE061A最小系統(tǒng)
SPCE061A的內(nèi)核供電為3.3V,而I/O端口可接3.3V也可以接5V,所以在電源模塊(61板上)中有一個(gè)端口電平選擇跳線,如圖3中的J5,圖3為61板上的電源模塊圖。
圖3 SPCE061A電源模塊
DS18B20溫度傳感器
DS18B20溫度傳感器用12位存儲(chǔ)溫度值,理論精度可達(dá)到0.05℃,能實(shí)時(shí)、精確地檢測(cè)到人體溫度的變化,可通過單片機(jī)在液晶顯示器上顯示,避免了電壓或電流等模擬信號(hào)再轉(zhuǎn)換為數(shù)字信號(hào)的過程,從而提高了系統(tǒng)的抗干擾能力和精度。
DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序。
DS18B20與單片機(jī)的典型接口設(shè)計(jì)
可以采用外接電源與寄生電源供電(就是供電電源從數(shù)據(jù)線上得到),寄生電源如圖4所示。
圖4 寄生電源供電
ZD-3微振動(dòng)傳感器
ZD-3微振動(dòng)傳感器是一種有源的高靈敏度微功耗振動(dòng)檢測(cè)器件,以正弦波形式輸出,可利用74LS14施密特觸發(fā)器將其轉(zhuǎn)換成脈沖波,輸入單片機(jī)檢測(cè)高電平,能實(shí)時(shí)記錄跑步者或鍛煉者的步數(shù),進(jìn)而得到鍛煉者的能量損耗,以利于更有效的進(jìn)行鍛煉。
ZD-3微振動(dòng)傳感器是一種有源的高靈敏度微功耗振動(dòng)檢測(cè)器件,以正弦波形式輸出,可利用74LS14施密特觸發(fā)器將其轉(zhuǎn)換成脈沖波,輸入單片機(jī)檢測(cè)高電平,能實(shí)時(shí)記錄跑步者或鍛煉者的步數(shù),進(jìn)而得到鍛煉者的能量損耗,以利于更有效的進(jìn)行鍛煉。
HK-2000A脈搏檢測(cè)傳感器
HK-2000A傳感器是一種主要用在運(yùn)動(dòng)、健身器材上對(duì)脈搏檢測(cè)的傳感器,以脈沖波的形式輸出。當(dāng)脈搏波動(dòng)一次時(shí)輸出一正脈沖,可將其輸出信號(hào)輸入單片機(jī),檢測(cè)高電平,記錄脈搏。
OCM4X8C液晶顯示模塊
OCM4X8C液晶顯示模塊采用128×64點(diǎn)陣的液晶顯示模塊,可顯示漢字及圖形,內(nèi)置國(guó)標(biāo)GB2312碼簡(jiǎn)體中文字庫(kù)(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64×256點(diǎn)陣顯示RAM(GDRAM)。可與CPU直接接口,提供8位并行及串行兩種連接方式連接微處理器。該液晶顯示模塊具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。配合1×4鍵盤可實(shí)現(xiàn)參數(shù)設(shè)置,分析結(jié)果瀏覽和修改以及各種人機(jī)對(duì)話,能適時(shí)顯示各種生理參數(shù)值及記錄到的步數(shù)。
OCM4X8C液晶顯示模塊采用128×64點(diǎn)陣的液晶顯示模塊,可顯示漢字及圖形,內(nèi)置國(guó)標(biāo)GB2312碼簡(jiǎn)體中文字庫(kù)(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64×256點(diǎn)陣顯示RAM(GDRAM)。可與CPU直接接口,提供8位并行及串行兩種連接方式連接微處理器。該液晶顯示模塊具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。配合1×4鍵盤可實(shí)現(xiàn)參數(shù)設(shè)置,分析結(jié)果瀏覽和修改以及各種人機(jī)對(duì)話,能適時(shí)顯示各種生理參數(shù)值及記錄到的步數(shù)。
報(bào)警模塊(聲光報(bào)警)
利用凌陽單片機(jī)內(nèi)部的語音功能及軟件控制,當(dāng)參數(shù)超過閾值時(shí)發(fā)出語音報(bào)警。同時(shí)輸出一高電平,驅(qū)動(dòng)發(fā)光二極管發(fā)光,更容易提醒鍛煉者。
利用凌陽單片機(jī)內(nèi)部的語音功能及軟件控制,當(dāng)參數(shù)超過閾值時(shí)發(fā)出語音報(bào)警。同時(shí)輸出一高電平,驅(qū)動(dòng)發(fā)光二極管發(fā)光,更容易提醒鍛煉者。
鍵盤輸入模塊
1×4鍵盤輸入模塊,系統(tǒng)設(shè)計(jì)的功能鍵采用中斷方式輸入,當(dāng)有任一功能鍵按下時(shí),即產(chǎn)生中斷,CPU執(zhí)行中斷程序,讀取鍵碼并執(zhí)行相應(yīng)操作;沒有鍵按下時(shí),不占用CPU的運(yùn)行時(shí)間,提高了CPU的運(yùn)行效率。由于SPCE061A有32個(gè)I/O口,所以顯示模塊可以直接接至I/O口,無須另外的硬件編碼,簡(jiǎn)化了硬件設(shè)計(jì)。
1×4鍵盤輸入模塊,系統(tǒng)設(shè)計(jì)的功能鍵采用中斷方式輸入,當(dāng)有任一功能鍵按下時(shí),即產(chǎn)生中斷,CPU執(zhí)行中斷程序,讀取鍵碼并執(zhí)行相應(yīng)操作;沒有鍵按下時(shí),不占用CPU的運(yùn)行時(shí)間,提高了CPU的運(yùn)行效率。由于SPCE061A有32個(gè)I/O口,所以顯示模塊可以直接接至I/O口,無須另外的硬件編碼,簡(jiǎn)化了硬件設(shè)計(jì)。
呼吸氣流溫度檢測(cè)模塊
呼吸氣流溫度檢測(cè)回路通過熱敏元件,檢測(cè)人體呼吸時(shí)呼出與吸入氣流溫度的變化情況,從而獲得呼吸頻率參數(shù),為了減少熱惰性帶來的誤差,準(zhǔn)確地測(cè)量呼吸氣流溫度的變化,要求熱敏元件熱容量越小越好。因此在電路中選用BLTS101PN結(jié)溫度傳感器(φ1mm,熱響應(yīng)時(shí)間τ<0.2s)。恒流源向PN結(jié)提供100μA的恒定正向電流,則PN結(jié)的正向壓降僅隨溫度T的變化而變化,該電壓信號(hào)由前置放大器放大后通過一4.84Hz低通濾波器,再經(jīng)過波形變換為數(shù)字信號(hào)送入單片機(jī)。
呼吸氣流溫度檢測(cè)回路通過熱敏元件,檢測(cè)人體呼吸時(shí)呼出與吸入氣流溫度的變化情況,從而獲得呼吸頻率參數(shù),為了減少熱惰性帶來的誤差,準(zhǔn)確地測(cè)量呼吸氣流溫度的變化,要求熱敏元件熱容量越小越好。因此在電路中選用BLTS101PN結(jié)溫度傳感器(φ1mm,熱響應(yīng)時(shí)間τ<0.2s)。恒流源向PN結(jié)提供100μA的恒定正向電流,則PN結(jié)的正向壓降僅隨溫度T的變化而變化,該電壓信號(hào)由前置放大器放大后通過一4.84Hz低通濾波器,再經(jīng)過波形變換為數(shù)字信號(hào)送入單片機(jī)。
系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),菜單操作。利用C61及匯編語言編寫軟件,在液晶顯示屏上實(shí)時(shí)顯示各種生理參數(shù)的數(shù)據(jù),信號(hào)數(shù)據(jù)存儲(chǔ)采用FLASH, 這樣在儀器更換電池時(shí)不會(huì)丟失數(shù)據(jù)。所有測(cè)量參數(shù)均可設(shè)定上、下報(bào)警限,任一參數(shù)越限時(shí)都能發(fā)出聲、光報(bào)警,需要時(shí),能用消聲鍵停止報(bào)警聲。儀器進(jìn)入工作狀態(tài)后,主程序首先完成對(duì)液晶顯示屏的初始化,然后進(jìn)入檢測(cè)狀態(tài)。由于呼吸阻抗信號(hào)具有基線漂移現(xiàn)象,因此在軟件設(shè)計(jì)中采用一種變化中值檢測(cè)法對(duì)基線進(jìn)行校正,具體方法是把上一次呼吸周期內(nèi)的中值點(diǎn)作為本次呼吸周期的檢測(cè)點(diǎn),這樣即可克服在正常檢測(cè)電壓范圍內(nèi)基線漂移現(xiàn)象所帶來的漏檢情況。
程序流程圖如圖5所示。
圖5 主程序流程圖
數(shù)據(jù)采集部分
對(duì)生理參數(shù)的實(shí)時(shí)數(shù)據(jù)采集無疑是最重要的,主要通過傳感器進(jìn)行實(shí)時(shí)采集。由于人體的溫度在鍛煉時(shí)變化也是很緩慢的,因此,主要運(yùn)用軟件定時(shí)中斷的方法進(jìn)行檢測(cè)。步數(shù)和脈搏等參數(shù),主要記錄的是頻率,只需軟件計(jì)數(shù)就可以,根據(jù)檢測(cè)到的高電平,計(jì)數(shù)器進(jìn)行自加運(yùn)算,從而記錄頻率。
對(duì)生理參數(shù)的實(shí)時(shí)數(shù)據(jù)采集無疑是最重要的,主要通過傳感器進(jìn)行實(shí)時(shí)采集。由于人體的溫度在鍛煉時(shí)變化也是很緩慢的,因此,主要運(yùn)用軟件定時(shí)中斷的方法進(jìn)行檢測(cè)。步數(shù)和脈搏等參數(shù),主要記錄的是頻率,只需軟件計(jì)數(shù)就可以,根據(jù)檢測(cè)到的高電平,計(jì)數(shù)器進(jìn)行自加運(yùn)算,從而記錄頻率。
參數(shù)閾值設(shè)定
由于人體溫度正常情況下在36.5℃左右。因此,我們?cè)O(shè)定溫度域值的初值為36.5℃,以0.25℃為步進(jìn)量,可以用上下鍵增減,每按一次按鍵,就遞增或遞減0.25℃,直到達(dá)到鍛煉者想要設(shè)定的閾值為止(在35~42℃之間)。其他參數(shù)設(shè)定類似。
由于人體溫度正常情況下在36.5℃左右。因此,我們?cè)O(shè)定溫度域值的初值為36.5℃,以0.25℃為步進(jìn)量,可以用上下鍵增減,每按一次按鍵,就遞增或遞減0.25℃,直到達(dá)到鍛煉者想要設(shè)定的閾值為止(在35~42℃之間)。其他參數(shù)設(shè)定類似。
液晶驅(qū)動(dòng)程序設(shè)計(jì)
系統(tǒng)顯示功能的實(shí)現(xiàn),實(shí)際上就是對(duì)OCM4X8C液晶顯示模塊的驅(qū)動(dòng)編程。我們按照結(jié)構(gòu)化的編程思想利用C61語言將上翻、下翻、返回和確定等按鍵功能編成子函數(shù),這樣利于主程序的調(diào)用。液晶驅(qū)動(dòng)的部分程序如下:
#include "spce061v004.h"
void Delay()
{ int i;
i=300;
while(i--);
}
void WriteBit(char B)
{ int D;
D=*P_IOB_Buffer&0xfffd; //SDA輸出數(shù)據(jù)
if(B!=0)
*P_IOB_Data=D|0x0002;
else
*P_IOB_Data=D&0xfffd;
D=*P_IOB_Buffer&0xfffe; //SCK脈沖
*P_IOB_Data=D|0x0001;
*P_IOB_Data=D&0xfffe;
}
void WriteByte(char B,char I)
{ int D,i;
D=*P_IOB_Buffer&0xffbf;
*P_IOB_Data=D|0x0040; //片選有效
for(i=1;i<6;i++)
WriteBit(1); //5個(gè)空脈沖,數(shù)據(jù)為1 synchronizing bitstring
WriteBit(0); //RW=0
...
...
...
D=*P_IOB_Buffer&0xffbf;
*P_IOB_Data=D&0xffbf; //片選有效
}
void LCDinit(void)
{ int D,i;
D=*P_IOB_Dir&0xffbc; //SDA為輸出
*P_IOB_Dir=D|0x0043;
D=*P_IOB_Attrib&0xffbc; //SDA為正邏輯輸出
*P_IOB_Attrib=D|0x0043;
D=*P_IOB_Buffer&0xffbc; //SCK脈沖
*P_IOB_Data=D&0xffbc;
i=3;while(i--);
WriteByte(0x30,0);
Delay();
WriteByte(0x01,0);
Delay();
WriteByte(0x06,0);
Delay();
WriteByte(0x0c,0);
Delay();
}
..................
系統(tǒng)顯示功能的實(shí)現(xiàn),實(shí)際上就是對(duì)OCM4X8C液晶顯示模塊的驅(qū)動(dòng)編程。我們按照結(jié)構(gòu)化的編程思想利用C61語言將上翻、下翻、返回和確定等按鍵功能編成子函數(shù),這樣利于主程序的調(diào)用。液晶驅(qū)動(dòng)的部分程序如下:
#include "spce061v004.h"
void Delay()
{ int i;
i=300;
while(i--);
}
void WriteBit(char B)
{ int D;
D=*P_IOB_Buffer&0xfffd; //SDA輸出數(shù)據(jù)
if(B!=0)
*P_IOB_Data=D|0x0002;
else
*P_IOB_Data=D&0xfffd;
D=*P_IOB_Buffer&0xfffe; //SCK脈沖
*P_IOB_Data=D|0x0001;
*P_IOB_Data=D&0xfffe;
}
void WriteByte(char B,char I)
{ int D,i;
D=*P_IOB_Buffer&0xffbf;
*P_IOB_Data=D|0x0040; //片選有效
for(i=1;i<6;i++)
WriteBit(1); //5個(gè)空脈沖,數(shù)據(jù)為1 synchronizing bitstring
WriteBit(0); //RW=0
...
...
...
D=*P_IOB_Buffer&0xffbf;
*P_IOB_Data=D&0xffbf; //片選有效
}
void LCDinit(void)
{ int D,i;
D=*P_IOB_Dir&0xffbc; //SDA為輸出
*P_IOB_Dir=D|0x0043;
D=*P_IOB_Attrib&0xffbc; //SDA為正邏輯輸出
*P_IOB_Attrib=D|0x0043;
D=*P_IOB_Buffer&0xffbc; //SCK脈沖
*P_IOB_Data=D&0xffbc;
i=3;while(i--);
WriteByte(0x30,0);
Delay();
WriteByte(0x01,0);
Delay();
WriteByte(0x06,0);
Delay();
WriteByte(0x0c,0);
Delay();
}
..................
主要技術(shù)指標(biāo)
主要生理參數(shù)
便攜式多功能實(shí)時(shí)生理參數(shù)監(jiān)測(cè)儀能檢測(cè)人在跑步時(shí)的溫度、脈搏、呼吸頻率和所跑過的步數(shù)等參數(shù)。具有實(shí)時(shí)檢測(cè)及實(shí)時(shí)顯示的功能。
便攜式多功能實(shí)時(shí)生理參數(shù)監(jiān)測(cè)儀能檢測(cè)人在跑步時(shí)的溫度、脈搏、呼吸頻率和所跑過的步數(shù)等參數(shù)。具有實(shí)時(shí)檢測(cè)及實(shí)時(shí)顯示的功能。
測(cè)試精度
可測(cè)的溫度范圍為-55~125℃,精度可以達(dá)到0.05℃。但是人體溫度一般為35~38℃,因此,閾值范圍可以在35~39℃,根據(jù)實(shí)時(shí)測(cè)得的溫度與設(shè)定閾值進(jìn)行比較,當(dāng)超過設(shè)定參數(shù)時(shí)就聲光報(bào)警。
可測(cè)的溫度范圍為-55~125℃,精度可以達(dá)到0.05℃。但是人體溫度一般為35~38℃,因此,閾值范圍可以在35~39℃,根據(jù)實(shí)時(shí)測(cè)得的溫度與設(shè)定閾值進(jìn)行比較,當(dāng)超過設(shè)定參數(shù)時(shí)就聲光報(bào)警。
總結(jié)
此儀器可以實(shí)時(shí)檢測(cè)到人在跑步和鍛煉時(shí)的溫度、呼吸、脈搏和步數(shù)。并可以記錄顯示,當(dāng)超過設(shè)定的閾值時(shí),可以發(fā)出警報(bào)。本儀器輕便小巧,適合室內(nèi)、室外鍛煉時(shí)使用。同時(shí),如果能將藍(lán)牙??旒傻皆搩x器中,可以實(shí)現(xiàn)這些生理參數(shù)的傳輸,達(dá)到對(duì)老人或病危病人的遠(yuǎn)程看護(hù)。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
你可能感興趣的文章