基于單片機的脈搏測量儀的設計.doc
已有 11658 次閱讀2017-10-24 19:37
基于單片機的脈搏測量儀的設計.doc搜索復制摘要
脈搏測量儀在我們的日常生活中已經得到了非常廣泛的應用。為了提高脈搏測量儀的簡便性和精確度,本課題設計了一種基于51單片機的脈搏測量儀。系統以AT89C51單片機為核心,以紅外發光二極管和光敏三極管為傳感器,并利用單片機系統內部定時器來計算時間,由光敏三極管感應產生脈沖,單片機通過對脈沖累加得到脈搏跳動次數,時間由定時器定時而得。系統運行中能顯示脈搏次數和時間,系統停止運行時,能夠顯示總的脈搏次數和時間。經測試,系統工作正常,達到設計要求。
Abstract
Pulse measuring instrument has been widely used in our daily life. In order to increase its simplicity and accuracy, this subject designs one system based on single-chip microcomputer and infrared light emitting diode and photo transistor as sensors, and calculates time with using of the inner timer. The sensor produces pulse and the single-chip microcomputer gets the frequency by accumulating the pulses, and the timer obtains the time. The system could display the frequency and time of the pulse during operation. It can also shows the total number when it stops. After testing, the system works well and meets the design requirements.
目 錄
摘要 1
Abstract 2
目 錄 3
引 言 4
第一章 概述 5
1.1 選題的背景和意義 5
1.2 脈搏測量儀的發展與應用 6
第二章 脈搏測量儀系統結構 7
2.1 光電脈搏測量儀的結構 7
2.2 工作原理 7
2.3 光電脈搏測量儀的特點 8
第三章 基本元器件介紹 9
3.1 AT89C51簡介 9
3.2 光電傳感器簡介 14
3.3 LED的綜述 15
第四章 基本結構模塊 18
4.1 脈搏檢測電路 18
4.2 信號采集電路 18
4.3 信號放大 19
4.4 波形整形部分 21
4.5 單片機處理電路 23
4.6 顯示電路 24
第五章 軟件系統 26
5.1 主程序流程 26
5.2 定時器中斷程序流程 26
5.3 INT中斷程序流程 27
5.4 顯示程序流程 27
5.5 軟件說明 28
第六章 抗干擾措施及使用方法 29
6.1 抗干擾措施 29
6.2 測量儀使用方法 30
第七章 系統調試 31
7.1 系統調試 31
7.2 系統檢驗 31
7.3 誤差分析 33
總結 34
參考文獻 35
結束語 36
附錄1 38
附錄2 39
引 言
脈搏測量屬于檢測有無脈博的測量,有脈搏時遮擋光線,無脈搏時透光強,所采用的傳感器是紅外接收二極管和紅外發射二極管。用于體育測量用的脈搏測量大致有指脈和耳脈二種方式。這二種測量方式各有優缺點,指脈測量比較方便、簡單,但因為手指上的汗腺較多,指夾常年使用,污染可能會使測量靈敏度下降;耳脈測量比較干凈,傳感器使用環境污染少,容易維護。但因耳脈較弱,尤其是當季節變化時,所測信號受環境溫度影響明顯,造成測量結果不準確。
從脈搏波中提取人體的生理病理信息作為臨床診斷和治療的依據,歷來都受到中外醫學界的重視。幾乎世界上所有的民族都用過“摸脈”作為診斷疾病的手段。脈搏波所呈現出的形態(波形)、強度(波幅)、速率(波速)和節律(周期)等方面的綜合信息,在很大程度上反映出人體心血管系統中許多生理病理的血流特征,因此對脈搏波采集和。
處理具有很高的醫學價值和應用前景。但人體的生物信號多屬于強噪聲背景下的低頻的弱信號, 脈搏波信號更是低頻微弱的非電生理信號, 必需經過放大和后級濾波以滿足采集的要求。
第一章 概述
1.1 選題的背景和意義
脈搏攜帶有豐富的人體健康狀況的信息,自公元三世紀我國最早的脈學專著《脈經》問世以來,脈學理論得到不斷的發展和提高。在中醫四診(望、聞、問、切)中,脈診占有非常重要的位置。脈診是我國傳統醫學中最具特色的一項診斷方法,其歷史悠久,內容豐富,是中醫“整體觀念”、“辨證論證”的基本精神的體現與應用。脈診作為“綠色無創”診斷的手段和方法,得到了中外人士的關注。但由于中醫是靠手指獲取脈搏信息,雖然脈診具有簡便、無創、無痛的特點易為患者接受,然而在長期的醫療實踐中也暴露出一些缺陷。首先,切脈單憑醫生手指感覺辨別脈象的特征,受到感覺、經驗和表述的限制,并且難免存在許多主觀臆斷因素,影響了對脈象判斷的規范化;其次,這種用手指切脈的技巧很難掌握;再則,感知的脈象無法記錄和保存影響了對脈象機理的研究。脈診的這種定性化和主觀性,大大影響了其精度與可行性,成為中醫脈診應用、發展和交流中的制約因素。為了將傳統的中醫藥學發揚光大,促進脈診的應用和發展,必須與現代科技相結合,實現更科學、客觀的診斷[1]。
醫院的護士每天都要給住院的病人把脈記錄病人每分鐘脈搏數,方法是用手按在病人腕部的動脈上,根據脈搏的跳動進行計數。為了節省時間,一般不會作1分鐘的測量,通常是測量10秒鐘時間內心跳的數,再把結果乘以6即得到每分鐘的心跳數,即使這樣做還是比較費時,而且精度也不高。為了提高脈搏測量的精確與速度,多種脈搏測量儀被運用到醫學上來,從而開辟了一條全新的醫學診斷方法。
早在1860年Vierordt 創建了第一臺杠桿式脈搏描記儀,國內20世紀50年代初朱顏將脈搏儀引用到中醫脈診的客觀化研究方面。此后隨著機械及電子技術的發展,國內外在研制中醫脈象儀方面進展很快,尤其是70年代中期,國內天津、上海、江西等地相繼成立了跨學科的脈象研究協作組,多學科共同合作促使中醫脈象研究工作進入了一個新的境界。脈象探頭式樣很多,有單部、三部、單點、多點、剛性接觸式、軟性接觸式、氣壓式、硅杯式、液態汞、液態水、子母式等組成,脈象探頭的主要原件有應變片、壓電晶體、單晶硅、光敏元件、PVDF壓電薄膜等,其中以單部單點應變片式為最廣泛,不過近年來正在向三部多點式方向設計[2]。
目前脈搏測量儀在多個領域被廣泛應用,除了應用于醫學領域,如無創心血管功能檢測、妊高癥檢測、中醫脈象、脈率檢測等等,商業應用也不斷拓展,如運動、健身器材中的心率測試都用到了技術先進的脈搏測量儀。
1.2 脈搏測量儀的發展與應用
隨著科學技術的發展,脈搏測量技術也越來越先進,對脈搏的測量精度也越來越高,國內外先后研制了不同類型的脈搏測量儀,而其中關鍵是對脈搏傳感器的研究。起初用于體育測量的脈搏測試集中在對接觸式傳感器的研究,利用此類傳感器所研制的指脈、耳脈等測量儀各有其優缺點。指脈測量比較方便、簡單,但因為手指上的汗腺較多,指夾常年使用,污染可能會使測量靈敏度下降:耳脈測量比較干凈,傳感器使用環境污染少,容易維護。但因耳脈較弱,尤其是當季節變化時,所測信號受環境溫度影響明顯,造成測量結果不準確[3]。過去在醫院臨床監護和日常中老年保健中出現的日常監護儀器,如便攜式電子血壓計,可以完成脈搏的測量,但是這種便攜式電子血壓計利用微型氣泵加壓橡膠氣囊,每次測量都需要一個加壓和減壓的過程,存在體積龐大、加減壓過程會有不適、脈搏檢測的精確度低等缺點。
近年來國內外致力于開發無創非接觸式的傳感器,這類傳感器的重要特征是測量的探測部分不侵入機體,不造成機體創傷,能夠自動消除儀表自身系統的誤差,測量精度高,通常在體外,尤其是在體表間接測量人體的生理和生化參數。
其中光電式脈搏傳感器是根據光電容積法制成的脈搏傳感器,通過對手指末端透光度的監測,間接檢測出脈搏信號。具有結構簡單、無損傷、精度高、可重復使用等優點。通過光電式脈搏傳感器所研制的脈搏測量儀已經應用到臨床醫學等各個方面并收到了理想效果。
人體心室周期性的收縮和舒張導致主動脈的收縮和舒張,是血流壓力以波的形式從主動脈根部開始沿著整個動脈系統傳播,這種波成為脈搏波[4]。從脈搏波中提取人體的心理病理信息作為臨床診斷和治療的依據,歷來都受到中外醫學界的重視。脈搏波所呈現出的形態(波形)、強度(波幅)、速率(波速)和節律(周期)等方面的綜合信息,在很大程度上反映出人體心血管系統中許多生理病理的血流特征,因此對脈搏波采集和處理具有很高的醫學價值和應用前景[5]。但人體的生物信號多屬于強噪聲背景下的低頻的弱信號, 脈搏波信號更是低頻微弱的非電生理信號,因此必需經過放大和后級濾波以滿足采集的要求。
第二章 脈搏測量儀系統結構
脈搏測量儀的設計,必須是通過采集人體脈搏變化引起的一些生物信號,然后把生物信號轉化為物理信號,使得這些變化的物理信號能夠表達人體的脈搏變化,最后要得出每分鐘的脈搏次數,就需要通過相應的硬件電路及芯片來處理物理變化并存儲脈搏次數。在硬件設計中一般的物理信號就是電壓變化,有了這個系統的設計思路,本課題就此開始實施。
2.1 光電脈搏測量儀的結構
光電脈搏測量儀是利用光電傳感器作為變換原件,把采集到的用于檢測脈搏跳動的紅外光轉換成電信號,用電子儀表進行測量和顯示的裝置。本系統的組成包括光電傳感器、信號處理、單片機電路、數碼顯示、電源等部分。
1.光電傳感器
即將非電量(紅外光)轉換成電量的轉換元件,它由紅外發射二極管和接收三極管組成,它可以將接收到的紅外光按一定的函數關系(通常是線性關系)轉換成便于測量的物理量(如電壓、電流或頻率等)輸出。
2.信號處理
即處理光電傳感器采集到的低頻信號的模擬電路(包括放大、濾波、整形等)。
3. 單片機電路
即利用單片機自身的定時中斷計數功能對輸入的脈沖電平進行運算得出心率(包括AT89C51、外部晶振、外部中斷等)。
4.數碼顯示
即把單片機計算得出的結果用8位LED數碼管靜態掃描來顯示,便于直接準確無誤的讀出數據。
5. 電源
即向光電傳感器、信號處理、單片機提供的電源,可以是5V-9V的交流或直流的穩壓電源。
2.2 工作原理
本設計采用單片機AT89C51為控制核心,實現脈搏測量儀的基本測量功能。脈搏測量儀硬件框圖如下圖1.1所示:
圖 1.1 脈搏測量儀的工作原理
當手指放在紅外線發射二極管和接收三極管中間,隨著心臟的跳動,血管中血液的流量將發生變換。由于手指放在光的傳遞路徑中,血管中血液飽和程度的變化將引起光的強度發生變化,因此和心跳的節拍相對應,紅外接收三極管的電流也跟著改變,這就導致紅外接收三極管輸出脈沖信號。該信號經放大、濾波、整形后輸出,輸出的脈沖信號作為單片機的外部中斷信號。單片機電路對輸入的脈沖信號進行計算處理后把結果送到數碼管顯示。
2.3 光電脈搏測量儀的特點
與傳統的脈搏測量儀相比,光電式脈搏測量儀具有以下特點:
1. 測量的探測部分不侵入機體,不造成機體創傷,通常在體外。
2. 傳感器可重復使用且速度快,精度高。
3. 測試的適用電壓為5V-9V的直流電壓。
4. 穩定性好、磨損小、壽命長、維修方便。
5. 由于結構簡單,因此體積小、重量輕、性價比優越。
6. 測量的有效范圍為50次-199次/分鐘。
第三章 基本元器件介紹
3.1 AT89C51簡介
AT89C5l是美國ATMEL公司生產的低電壓、高性能的CMOS 8位單片機,片內含4k bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89CSl單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。
3.1.1 AT89C51 的主要性能
AT89C2051是ATMEL公司生產的帶2K字節閃速可編程可擦除只讀存儲器(EEPROM)的8位單片機,它具有如下主要特性,如圖1.2所示:
(1)和MCS-51產品的兼容
(2)2K字節可重編程閃速存儲器
(3)耐久性:1,000寫/擦除周期
(4)2.7V~6V的操作范圍
(5)全靜態
操作:0Hz~24MHz
·兩級加密程序存儲器
·128×8位內部RAM
·15根可編程I/O引線
·兩個16位定時器/計數器
·六個中斷源
·可編程串行UART通道
·直接LED驅動輸出
·片內模擬比較器
·低功耗空載和掉電方式
·和MCS-51產品的兼容
·2K字節可重編程閃速存儲器
·耐久性:1,000寫/擦除周期
·2.7V~6V的操作范圍
·全靜態操作:0Hz~24MHz
·兩級加密程序存儲器
·128×8位內部RAM
·15根可編程I/O引線
·兩個16位定時器/計數器
·六個中斷源
·可編程串行UART通道
·直接LED驅動輸出
·片內模擬比較器
·低功耗空載和掉電方式
·和MCS-51產品的兼容
·2K字節可重編程閃速存儲器
·耐久性:1,000寫/擦除周期
·2.7V~6V的操作范圍
·全靜態操作:0Hz~24MHz
·兩級加密程序存儲器
·128×8位內部RAM
·15根可編程I/O引線
·兩個16位定時器/計數器
·六個中斷源
·可編程串行UART通道
·直接LED驅動輸出
·片內模擬比較器
·低功耗空載和掉電方式。
3.1.2 AT89C2051的結構框圖
AT89C2051是一帶有2K字節閃速可編程可擦除只讀存儲體(EEPROM)的低電壓,高性能8位CMOS微型計算機。如圖1.3所示。它采用ATMEL的高密非易失存儲技術制造并和工業標準MCS—51指令集和引腳結構兼容。通過在單塊芯片上組合通用的CPL1和閃速存儲器,ATMEL AT89C2051是一強勁的微型計算機,它對許多嵌入式控制應用提供一高度靈活和成本低的解決辦法。
此外,從AT89C2051內部結構圖也可看出,其內部結構與8051內部結構基本一致(除模擬比較器外),引腳RST、XTAL1、XTAL2的特性和外部連接電路也完全與51系列單片機相應引腳一致,但P1口、P3口有其獨特之處。
3.1.3 AT89C2051的引腳說明
AT89C2051是一個有20個引腳的芯片,與8051內部結構進行對比可發現,AT89C2051減少了兩個對外端口(即P0、P2口),使它最大可能地減少了對外引腳,因而芯片尺寸有所減少。如表1.1所示:
AT89C2051芯片的主要引腳功能為:
1. Vcc:電源電壓。
2. GND:地。
3. P1口:P1口是一8位雙向I/O口。口引腳P1.2~P1.7提供內部上拉電阻。 P1.0和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內精密模擬比較器的同相輸入(AIN0)和反相輸入(AIN1)。P1口輸出緩沖器可吸收20mA電流并能直接驅動LED顯示。當P1口引腳寫入“1”時,其可用作輸入端。當引腳P1.2~P1.7用作輸入并被外部拉低時,它們將因內部的上拉電阻而流出電流(IIL)。 P1口還在閃速編程和程序校驗期間接收代碼數據。
4. P3口:P3口的P3.0~P3.5、P3.7是帶有內部上拉電阻的七個雙向I/0引腳。P3.6用于固定輸入片內比較器的輸出信號并且它作為一通用I/O引腳而不可訪問。P3口緩沖器可吸收20mA電流。當P3口引腳寫入“1”時,它們被內部上拉電阻拉高并可用作輸入端。用作輸入時,被外部拉低的P3口引腳將用上拉電阻而流出電流(IIL)。P3口還用于實現AT89C2051的各種功能,如下表10-1所示。P3口還接收一些用于閃速存儲器編程和程序校驗的控制信號。
5. RST:復位輸入。RST一旦變成高電平,所有的I/O引腳就復位到“1”。當振蕩器正在運行時,持續給出RST引腳兩個機器周期的高電平便可完成復位。每一個機器周期需12個振蕩器或時鐘周期。
6. XTAL1:作為振蕩器反相放大器的輸入和內部時鐘發生器的輸入。
7. XTAL2:作為振蕩器反相放大器的輸出。
表1.1 P3口的功能
端口引腳 功能
P3.0 RXD(串行輸入端口)
P3.1 TXD(串行輸出端口)
P3.2 INT0(外中斷0)
P3.3 INT1(外中斷1)
P3.4 TO(定時器0外部輸入)
P3.5 T1(定時器1外部輸入)
從上述引腳說明可看出,AT89C2051沒有提供外部擴展存儲器與I/O設備所需的地址、數據、控制信號,因此利用AT89C2051構成的單片機應用系統不能在AT89C2051之外擴展存儲器或I/O設備,也即AT89C2051本身即構成了最小單片機系統。
3.1.4 復位電路
時鐘電路工作后,在REST管腳上加兩個機器周期的高電平,芯片內部開始進行初始復位,如圖1.4所示:
3.1.5 振蕩電路
本設計晶振選擇頻率為12MHz,電容選擇30pF如圖1.5所示。經計算得單片機工作胡機器周期為:
12×(1÷12M)=1us。
3.2 光電傳感器簡介
光電檢測方法具有精度高、反應快、非接觸等優點,而且可測參數多,傳感器的結構簡單,形式靈活多樣,因此,光電式傳感器在檢測和控制中應用非常廣泛。
光電傳感器是各種光電檢測系統中實現光電轉換的關鍵元件,它是把光信號(紅外、可見及紫外光輻射)轉變成為電信號的器件。
光電式傳感器是以光電器件作為轉換元件的傳感器。它可用于檢測直接引起光量變化的非電量,如光強、光照度、輻射測溫、氣體成分分析等;也可用來檢測能轉換成光量變化的其他非電量,如零件直徑、表面粗糙度、應變、位移、振動、速度、加速度,以及物體的形狀、工作狀態的識別等。光電式傳感器具有非接觸、響應快、性能可靠等特點,因此在工業自動化裝置和機器人中獲得廣泛應用。近年來,新的光電器件不斷涌現,特別是CCD圖像傳感器的誕生,為光電傳感器的進一步應用開創了新的一頁。
在此次設計中我們采用的是光電傳感器中最常見普遍的光敏二極管做紅外接收二極管和光面三極管做紅外發送三極管。
3.2.1光敏二極管
光敏二極管是最常見的光傳感器。光敏二極管的外型與一般二極管一樣,只是它的管殼上開有一個嵌著玻璃的窗口,以便于光線射入,為增加受光面積,PN結的面積做得較大,光敏二極管工作在反向偏置的工作狀態下,并與負載電阻相串聯,當無光照時,它與普通二極管一樣,反向電流很小(<µA),稱為光敏二極管的暗電流;當有光照時,載流子被激發,產生電子-空穴,稱為光電載流子。在外電場的作用下,光電載流子參于導電,形成比暗電流大得多的反向電流,該反向電流稱為光電流。光電流的大小與光照強度成正比,于是在負載電阻上就能得到隨光照強度變化而變化的電信號。
3.2.2光敏三極管
光敏三極管除了具有光敏二極管能將光信號轉換成電信號的功能外,還有對電信號放大的功能。光敏三級管的外型與一般三極管相差不大,一般光敏三極管只引出兩個極——發射極和集電極,基極不引出,管殼同樣開窗口,以便光線射入。為增大光照,基區面積做得很大,發射區較小,入射光主要被基區吸收。工作時集電結反偏,發射結正偏。在無光照時管子流過的電流為暗電流Iceo=(1+β)Icbo(很小),比一般三極管的穿透電流還小;當有光照時,激發大量的電子-空穴對,使得基極產生的電流Ib增大,此刻流過管子的電流稱為光電流,集電極電流Ic=(1+β)Ib,可見光電三極管要比光電二極管具有更高的靈敏度。
3.2.3光電傳感器檢測原理
檢測原理是: 隨著心臟的搏動,人體組織半透明度隨之改變:當血液送到人體組織時,組織的半透明度減小,當血液流回心臟,組織半透明度則增大;這種現象在人體組織較薄的手指尖、耳垂等部位最為明顯[5]。因此本設計將光敏二極管產生的紅外線照射到人體的手指部位,經過手指組織的反射和衰減由裝在該部位旁邊的光敏三管來接收其透射光并把它轉換成電信號。由于手指動脈血在血液循環過程中呈周期性的脈動變化,所以它對光的反射和衰減也是周期性脈動的, 于是光敏接收三極管輸出信號的變化也就反映了動脈血的脈動變化。故只要把此電信號轉換成脈沖并進行整形、計數和顯示[9],即可實時的測出脈搏的次數。
3.3 LED 的綜述
在單片機的應用系統中,為了便于人們觀察和監視單片機的運行情況,常常
需要用顯示器顯示運行的中間結果、狀態等信息,因此顯示器也是不可缺少的外
部設備之一。顯示器的種類很多,從液晶顯示、發光二極管顯示到CRT 顯示器,
都可以與微機配接。在單片機應用系統中常用的顯示器主要有發光二極管數碼顯
示器,簡稱LED 顯示器。LED 顯示器具有耗電省、成本低廉、配置簡單靈活、安裝方便、耐振動、壽命長等優點。但顯示內容有限,不能顯示圖形,因而其應用有局限性[11]。
3.3.1 LED 的結構
LED數碼管顯示器是由發光的二極管顯示字段組成的。在單片機應用系統中使用最多的就是七段LED數碼管,有共陰極和共陽極兩種。七段LED數碼管顯示器有8個發光二極管,其中從a~g管腳輸入顯示代碼,可顯示不同的數字或字符,Dp顯示小數點。共陰極LED數碼管顯示器的公共端為發光二極管陰極,通常接地,當發光二極管的陽極為高電平時,發光二極管點亮。共陽極的LED數碼管顯示器的公共端為發光二極管的陽極,通常接+5V電源,當發光二極管的陰極為低電平時,發光二極管點亮。
本設計中采用的是4位七段共陽極數碼管顯示器,一共具有12個引腳,4個位選端,8個字選端。圖1.6中所示,1、2、3、4是位選端;a~g、Dp是字選端。內部結構如圖1.7所示。
3.3.2 LED數碼管的顯示方法
靜態顯示方式是指當顯示器顯示某一字符時,發光二極管的位選始終被選中。在這種顯示方式下,每一個LED數碼管顯示器都需要一個8位的輸出口進行控制。由于單片機本身提供的I/O口有限,實際使用中,通常通過擴展I/O口的形式解決輸出口數量不足的問題。靜態顯示主要的優點是顯示穩定,在發光二極管導通電流一定的情況下顯示器的亮度大,系統運行過程中,在需要更新顯示內容時,CPU才去執行顯示更新子程序,這樣既節約了CPU的時間,又提高了CPU的工作效率。其不足之處是占用硬件資源較多,每個LED數碼管需要獨占8條輸出線。隨著顯示器位數的增加,需要的I/O口線也將增加。
動態顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每個數碼管的位選被輪流選中,多個數碼管公用一組段選,段選數據僅對位選選中的數碼管有效。對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導通電流有關,也與點亮時間和間隔時間的比例有關。通過調整電流和時間參數,可以既保證亮度,又保證顯示。若顯示器的位數不大于8位,則顯示器的公共端只需一個8位I/O口進行動態掃描(稱為掃描口),控制每位顯示器所顯示的字形也需一個8位口(稱為段碼輸出)。
通過比較,我們可以發現LED動態顯示更加適合本設計,所以就采用此方法。
第四章 基本結構模塊
4.1 脈搏波檢測電路
傳感器由紅外發光二級管和紅外接收三極管組成。采用發光二極管作為光源時,可基本抑制由呼吸運動造成的脈搏波曲線的漂移。紅外接收三極管在紅外光的照射下能產生電能,它的特性是將光信號轉換為電信號。在本設計中,紅外接收三極管和紅外發射二極管相對擺放以獲得最佳的指向特性。
從光源發出的光除被手指組織吸收以外,一部分由血液漫反射返回,其余部分透射出來。光電式脈搏傳感器按照光的接收方式可分為透射式和反射式2種[8]。其中透射式的發射光源與光敏接收器件的距離相等并且對稱布置,接收的是透射光,這種方法可較好地反映出心律的時間關系。因此本系統采用了指套式的透射型光電傳感器, 實現了光電隔離,減少了對后級模擬電路的干擾。結構如圖1.8所示。
4.2 信號采集電路
圖1.9是脈搏信號的采集電路,U3是紅外發射和接收裝置,由于紅外發射二極管中的電流越大,發射角度越小,產生的發射強度就越大,所以對R21阻值的選取要求較高。R21選擇270Ω同時也是基于紅外接收三極管感應紅外光靈敏度考慮的。R21過大,通過紅外發射二極管的電流偏小,紅外接收三極管無法區別有脈搏和無脈搏時的信號。反之,R21過小,通過的電流偏大,紅外接收三極管也不能準確地辨別有脈搏和無脈搏時的信號。當手指離開傳感器或檢測到較強的干擾光線時,輸入端的直流電壓會出現很大變化,為了使它不致泄露到U2B輸入端而造成錯誤指示,用C8、C9串聯組成的雙極性耦合電容把它隔斷[10]。
當手指處于測量位置時,會出現二種情況:一是無脈期。雖然手指遮擋了紅外發射二極管發射的紅外光,但是由于紅外接收三極管中存在暗電流,會造成輸出電壓略低。二是有脈期。當有跳動的脈搏時,血脈使手指透光性變差,紅外接收三極管中的暗電流減小,輸出電壓上升。但該傳感器輸出信號的頻率很低,如當脈搏只有為50次/分鐘時,只有0.78Hz,200次/分鐘時也只有3.33Hz,因此信號首先經R22、C10濾波以濾除高頻干擾,再由耦合電容C8、C9加到線性放大輸入端。
4.3 信號放大
4.3.1放大器的介紹
LM324 是四運放集成電路,它采用14 腳雙列直插塑料封裝.它的內部包含四組形式完全相同的運算放大器,除電源共用外,四組運放相互獨立。
每一組運算放大器可用圖2.0所示的符號來表示,它有5個引出腳,其中“+”、“-”為兩個信號輸入端,“V+”、“V-”為正、負電源端,“Vo”為輸出端。兩個信號輸入端中,Vi-(-)為反相輸入端,表示運放輸出端Vo 的信號與該輸入端的相位相反;Vi+(+)為同相輸入端,表示運放輸出端Vo 的信號與該輸入端的相位相同。LM324 的引腳排列見圖2.1。
圖2.0 圖2.1
由于LM324 四運放電路具有電源電壓范圍寬,靜態功耗小,可單電源使用,
價格低廉等優點,因此被廣泛應用在各種電路中。
4.3.2 放大電路
按人體脈搏在運動后跳動次數達200次/分鐘的計算來設計低通放大器,如圖3.6所示。R23、C6組成低通濾波器以進一步濾除殘留的干擾,截止頻率由R23、C6決定,運放U2B將信號放大,放大倍數由R23和R27的比值決定。如圖2.2所示:
圖2.2低通放大電路
根據一階有源濾波電路的傳遞函數,可得:
放大倍數為:
截止頻率為:
按人體的脈搏跳動為200次/分鐘時的頻率是3.3 Hz考慮,低頻特性是令人滿意的。
經過低通放大后輸出的信號是疊加有噪聲的脈動正弦波。波形如圖2.3所示。
圖2.3
4.4 波形整形部分
波形整形電路如圖2.4所示,U2C是一個電壓比較器,C11、R29構成一個微分器,U2A和C7、R32組成單穩態多諧振蕩器,其脈寬由C7、R32決定。
該比較器的閥值電壓可用R31調節在正弦波的幅值范圍內,但是對R31的調節要求并不嚴格,因為U2C的輸出信號(波形如圖2.5)經C11、R29的微分后總是將正、負相間的尖脈沖(波形如圖2.6)加到單穩態多諧振蕩器U2A的反向輸入端,不會造成很大的觸發誤差。
當有輸入信號時,U2A在比較器輸入信號的每個后沿到來時輸出高電平,使C7通過R32充電。大約持續20ms之后,因C7充電電流減小而使U2A同相輸入端的電位降低到低于反相輸入端的電位(尖脈沖已過去很久),于是U2A改變狀態并再次輸出低電平。這長的脈沖是與脈搏同步的,并由紅色發光二極管DS3的閃亮指示出來。即發光二極管作脈搏測量狀態顯示,脈搏每跳動一次發光二極管就亮一次。同時,該脈沖電平通過R24送到單片機/INTO腳,進行對心率的計算和顯示。輸出波形如圖2.7所示。
經過比較器U2C的輸出波形:
圖2.5
經過微分器的輸出波形:
圖2.6
單片機接收到的信號:
圖2.7
4.5 單片機處理電路
如圖2.8所示,本部分運用了ATMEL公司的89C51單片機作為核心元件,在這里運用單片機能更快更準確地對數據進行運算,而且可以根據實際情況進行編程,所用外圍元件少,輕巧省電,故障率低。
來自傳感和整形輸出電路的脈沖電平輸入單片機89C51的/INTO腳,單片機設為負跳變中斷觸發模式,故每次脈沖下降沿到達時觸發單片機產生中斷并進行計時,來一個脈沖脈搏次數就加一;定時器中斷主要完成一分鐘的定時功能。單片機對一分鐘內的脈沖次數進行累加,通過P0、P2口把測量過程和結果送到數碼管顯示出來[9]。
4.6 顯示電路
本設計的顯示采用LED數碼管動態掃描來顯示。兩個4位的共陽極LED數碼管組成8位顯示,其中0、1兩位顯示測量中的時間,3、4兩位顯示測量中的脈搏次數,6、7兩位用來顯示上次測量的數據。單片機的P0口控制顯示字型,P2口控
制顯示字位。顯示電路如圖2.9。
4.5 整體硬件電路設計
電路的原理圖見圖3.0。電路由傳感器電路、信號放大和整形電路、單片機電路、數碼顯示電路等部分組成。
傳感器主要由紅外線發射二極管和接收二極管組成,測量的原理如下:將手指放在紅外線發射二極管和接收二極管中間,隨著心臟的跳動,血管中血液的流量將發生變化。由于手指放在光的傳遞路徑中,血管中血液飽和程度的變化將引起光的強度發生變化,因此和心跳的節拍相對應,紅外接收二極管的電流也跟著改變,這就導致紅外接收二極管輸出脈沖信號。脈沖信號由F1~F3、R3~R5、C1、C2等組成的低通放大器進行放大,再經由F4、R6、R7、C3組成的放大器進一步放大,其輸出信號送給由F5、F6、RP1、R8等組成的施密特觸發器進行整形后輸出,輸出的脈沖信號作為單片機的外部中斷信號。可變電阻RP1用來調整施密特觸發器的閥值電壓,從而調整電路的靈敏度。
AT89C2051、X1、R10、C5等組成單片機電路。單片機電路對P3.2輸入的脈沖信號進行計算處理后把結果送到數碼管顯示。發光二極管VD3作脈搏測量狀態顯示,脈搏每跳動一次發光二極管就點亮一次。
數碼管DS1~DS3、VT1~VT3、R12~R21等組成數碼顯示電路。本機采用動態掃描顯示的方式,使用共陽數碼管, P3.3-P3.5口作三個數碼管的動態掃描位驅動碼輸出,通過三極管驅動數碼管。P1.0-P1.6口作數碼顯示七段筆劃字形碼的輸出,用以驅動數碼管的各字段。
第五章 軟件系統
5.1 主程序流程
系統主程序控制單片機系統按預定的操作方式運行, 它是單片機系統程序的框架。系統上電后,對系統進行初始化。初始化程序主要完成對單片機內專用寄存器、定時器工作方式及各端口的工作狀態的設定。系統初始化之后, 進行定時器中斷、外部中斷、顯示等工作,不同的外部硬件控制不同的子程序[12]。流程如圖3.1所示。
圖3.1 主程序流程圖
5.2 定時器中斷程序流程
定時器中斷服務程序由一分鐘計時、按鍵檢測、有無測試信號判斷等部分組成。當定時器中斷開始執行后,對一分鐘開始計時,1s計時到之后繼續檢測下1s,直到60s到了再停止并保存測得的脈搏次數。同時可以對按鍵進行檢測,只要復位測試值就可以重新開始測試。主要完成一分鐘的定時功能和保存測得的脈搏次數。流程如圖3.2所示。
圖 3.2 定時器中斷程序流程圖
5.3 INT中斷程序流程
外部中斷服務程序完成對外部信號的測量和計算。外部中斷采用邊沿觸發的方式,當處于測量狀態的時候,來一個脈沖脈搏次數就加一,由單片機內部定時器控制一分鐘,累加得出一分鐘內的脈搏次數。流程如圖3.3所示。
圖 3.3 INT中斷程序流程圖
5.4 顯示程序流程
顯示程序包括顯示上次的脈搏次數、本次測量中的時間和脈搏的次數。從中斷程序中取得結果后,先顯示上次的脈搏次數,經過10ms的延時后再顯示測試中的脈搏次數,再經過10ms的延時顯示測試中的時間。流程如圖3.4所示。
圖3.4 顯示程序流程圖
5.5 軟件說明
本程序采用C語言,程序的可讀性非常好。
程序中對前一次測量的脈搏數據進行了自動保存,并且用數碼顯示。
程序在執行過程若發現有干擾則忽略該干擾而不顯示,進一步減少讀入數據
的誤差。
第六章 抗干擾措施及使用方法
6.1 抗干擾措施
為了提高測量儀的精確度,系統首先要解決的是硬件方面的干擾問題。光電式脈搏測量儀的測量過程中,前端測量到的脈搏信號十分微弱,容易受到外界環境干擾,其中主要的干擾源有測量環境光干擾、電磁干擾、測量運動噪聲。
6.1.1環境光對脈搏傳感器測量的影響
在光電式脈搏傳感器中,光敏器件接收到的光信號不僅包含脈搏信息的透射光的信號,而且包含測量環境下的背景光信號,由于動脈波動引起的光強變化比背景光的變化微弱得多,因此在測量過程當中要保持測量背景光的恒定,減少背景光的干擾[13]。
測量環境下的背景光包含環境光和在測量過程中引起的二次反射光。為了減少環境光對脈搏信號測量的影響,同時考慮到傳感器使用的方便性,采用密封的指套式包裝方式,整個外殼采用不透光的介質和顏色,盡量減小外界環境光的影響,為了避免測量過程中的二次反射光的影響,在指套式傳感器的內層表面涂上一層吸光材料,這樣能有效減少二次反射光的干擾。
加上指套式外殼后的脈搏傳感器測量到的脈搏波形比較平滑。這是因為加指套式的脈搏傳感器中環境光在測量過程中基本不受外界環境光的影響,而且能夠有效減少二次反射光,使照射到手指上的光波長單一,所以得到的脈搏信號較為穩定,沒有明顯的重疊雜波信號,能夠很好的體現出脈搏波形的特征。
6.1.2電磁干擾對脈搏傳感器的影響
通過光電轉換得到的包含脈搏信息的電信號一般比較微弱,容易受到外界電磁信號的干擾,在傳統的光電式脈搏傳感器電路中,由于光敏器件和放大電路是分離的,那么在信號的傳遞過程就很容易受到外界電磁干擾,通常在一級放大電路采用電磁屏蔽的方式來消除電磁干擾[14]。本系統采用了新型的光敏器件,在芯片內部集成光敏器和一級放大電路,有效地抑制了外界電磁信號對原始脈搏信號的干擾。
工頻干擾是電路中最常見的干擾,脈搏信號變化緩慢,特別容易受到工頻信號的干擾,因此對工頻信號干擾的抑制是保證脈搏信號測量精度的主要措施之一。通常脈搏信號的頻率范圍在0.3-30Hz之間,小于工頻50Hz,因此通過低通濾波器可以有效濾除工頻干擾,這在信號調理電路中容易實現;同時可以在控制電路中對光源進行脈沖調制,這樣不但能夠降低系統的功耗,而且能夠在一定程度上減小外界的電磁干擾,在脈搏信號數據采集后,可以通過數據處理法方法進一步濾除工頻信號的干擾[15]。
6.1.3 測量過程中運動噪聲的影響
測量過程當中,通常情況下手指和光電式脈搏傳感器可能產生相對的運動,這樣對脈搏測量產生誤差,可以通過2個方面減少運動噪聲誤差:一是改善指套式傳感器的機械抗運動性,比如說使指套能夠更緊的套在手指上,不易松動;二是從脈搏信號處理的角度,通過算法來減小誤差。對于傳感器的設計,現在采用的主要是第一個途徑。
6.2 測量儀使用方法
測量儀通電后,數碼管全部顯示0。把手輕輕置于右下角的傳感器中,以稍微有壓迫感為宜,這時很快就可以看到紅色發光二極管會伴隨你的脈搏而閃爍,讓你直觀的看到自己脈搏跳動的速度,按下復位鍵后單片機和顯示部分開始工作,單片機立刻開始計數,同時數碼管顯示出你的心率和測試的時間,非常方便。如果偶爾出現不穩的情況,請按復位鍵對系統進行復位。
第七章 系統調試
7.1 系統調試
根據系統設計方案,本系統的調試可分為兩大部分:模擬部分和純MCU部分。由于在系統設計中采用模塊化設計,所以方便了對各電路功能模塊的逐級測試。斷開兩部分的連接點,先調試MCU部分。試著輸入一系列脈沖(用適當的電阻接正極,間斷性地輸入),觀察MCU部分能是否能顯示;模擬部分用不透明的筆在紅外發射二極管和接收三級管之間搖擺,借助示波器觀察波形效果如何。單片機軟件先在最小系統板上調試,確保工作正常之后,再與硬件系統聯調。最后將各模塊組合后進行整體測試,使系統的功能得以實現。
1.放大倍數的增加
傳感器的輸出端經示波器觀察有幅度很小的正弦波,但經整形輸出后檢測到的脈沖還是很弱,在確定電路沒有問題的情況下,加強信號的放大倍數,調整電阻R23和R27的阻值。
2.時鐘的調試
根據晶體振蕩頻率計算出內部定時器的基本參數,通過運行一段時間可通過秒表來校正后,看時間誤差的量,以這個量為依據改變程序中的內部定時器基本參數,就可使時鐘調準確。
3.開機后無顯示
首先檢查交流電源部分,有無交流,若無則可能保險管或變壓器燒壞,如有繼續查直流有無,如無則電源已燒壞,可更換解決。
4.顯示正常但經適當運動后測量,脈搏次數沒有增加
可能是前置放大級有問題,可采用更換的辦法判斷并排除。
5.進人測量狀態, 但測量值不穩定
主要是光電傳感器受到電磁波等干擾,其次是損壞或有虛焊。
6.開機后顯示不正常或按鍵失靈
可查手指擺放的位置或按鍵電路,若無故障則是硬件損壞。
7.電源的改變
理論上模擬部分有三處電壓應為9V,但經過測試,全部使用5V電壓也是可行的。
7.2 系統檢驗
系統上電后等待測試狀態,如圖3.5所示:
圖3.5
測量中顯示的數據,如圖3.6所示:
圖3.6
測量結束后顯示的脈搏次數,如圖3.7所示:
圖3.7
7.3 誤差分析
實際的脈搏次數 測量得出脈搏次數1 測量得出脈搏次數2 測量得出脈搏次數3 測量得出脈搏次數4 測量得出脈搏次數5
65 64 64 63 65 63
72 70 71 69 69 70
76 76 75 75 74 73
81 80 80 79 81 80
85 83 83 85 82 84
注:實際的脈搏次數以聽診器測出的脈搏次數為參考值。
由于傳感器和其他器件本身并非理想線性,實測數據進行了線性補償。
由均方差公式得: =0.59
誤差分析:經校準,非線性補償后,誤差已基本達到要求。
總結
單片機近20年的飛速發展,儼然已成為計算機發展和應用的一個重要方面。
另一方面,單片機應用的重要意義還在于,它從根本上改變了傳統的控制系統設
計思想和設計方法。從前必須由模擬電路或數字電路實現的大部分功能,現在已
能用單片機通過軟件方法來實現了。這種軟件代替硬件的控制技術也稱為微控制
技術,是傳統控制技術的一次革命。而51單片機作為單片機的主流,隨著集成技術的發展,51系列單片機繼承和發展了MCS-51系列的技術特色,有逐漸取而代之之勢。
本設計主要是51單片機在脈搏測試系統中的應用。重點介紹了單片機的最
小系統,通過單片機最小系統實現了脈搏的測量系統,由光電傳感器采集到脈沖信號,經過信號的放大、濾波和整形電路將輸出的信號通過單片機的外部中斷獲取并最終在數碼管上顯示。利用單片機自身的定時中斷、外部中斷、計數等功能,不僅能顯示出此次脈搏測量的次數,還能自動儲存這個數據。
本次所設計的測量儀系統實現簡單、功能穩定、使用方便,應用廣泛,具
有實際意義。由于時間比較短,同時本人掌握的知識有限,本次設計雖已完成,但其中有很多不足,如程序不夠簡練,電路板不夠美觀,光電傳感器靈敏度不夠高,數碼管顯示部分不夠完美等,同時此次設計的測量儀功能比較單一,沒有如語音系統實現自動讀出脈搏次數等人性化功能,且在設計過程中使用的運放數量也較多,加大了電源管理的復雜度。然而科技的進步勢必會使測量儀的功能日益強大和完善,其應用領域將不斷擴大,將會給我們的生活帶來更多的方便和精彩。
為了更好的進行電脈搏測量儀的設計,在近一個學期的時間里,認真收集有關資料,并做相關的整理和閱讀,為這次的設計做好充分的準備。經過這次畢設,我收獲了很多,具體總結如下:(1)通過此次的設計,使我知道了無論做什么事都應該事先做好充分的準備,不應該盲目的只為了完成任務而被動的學習。(2)通過此次的設計,使我了解了脈搏測量儀在國內外發展之迅速、應用領域之廣、市場前景之大。(3)通過此次的設計,使我對硬件設計和各模塊的功能有了更深的了解,同時提高了動手能力。(4)通過次次的設計,使我體會到堅持不懈的毅力對完成一件事情起著巨大的作用。(5)通過此次的設計,使我深刻的體會到團隊合作精神的重要性及相互討論過程中的樂趣。
參考文獻
1. 歐陽俊.基于BL-410 的指端脈搏波采集系統應用研究.2004.第11卷第2期
2. 韓文波.光電式脈搏波監測系統.長春光學精密機械學院學報.1999.第22卷第4期
3. 朱國富,廖明濤,王博亮.袖珍式脈搏波測量儀.電子技術應用.1998.第1期
4. 劉云麗,徐可欣等.微功耗光電式脈搏測量儀.電子測量技術.2005.第二期
5. 程詠梅,夏雅琴,尚嵐.人體脈搏波信號檢測系統.北京生物醫學工程.2006.第25卷
6. 劉文,楊欣,張鎧麟.基于AT89C2051單片機的指脈檢測系統的研究.醫療裝備.2005
7. 張毅坤.單片微型計算機原理及應用. 西安電子科技大學出版社. 1998.9第1版
8.任為民.電子技術基礎課程設計. 中央廣播電視大學出版社.1997年5月第1版
9. 朱月秀.單片機原理與應用.科學出版社.2004.2
10. 李世馨.模擬電子技術基礎.高等教育出版社.2001.12 3
結束語
脈搏檢測中關鍵技術是傳感器的設計與傳感器輸出的微弱信號提取問題, 本文設計的脈搏波檢測系統以光電檢測技術為基礎,并采用了脈沖振幅光調制技術消除周圍雜散光、暗電流等各種干擾的影響。并利用過采樣技術和數字濾波等數字信號處理方法,代替實現模擬電路中的放大濾波電路的功能。本系統模擬電路簡單,由ADC841芯片實現脈搏信號采集,信號處理和脈搏次數的計算等功能,因此體積小,功耗低,系統穩定性高。本系統可實現脈搏波的實時存儲并可實現與上位機(PC 機)的實時通訊, 因此可作為多參數病人中心監護系統的一個模塊完成心率檢測和脈搏波形顯示。
當該放大器用于集群脈搏測量儀時,一定要注意不同信號通道之間的相互影響,建議把各個放大器的電源分開。此外,測量通道需要一個開關電路,當指夾懸空時,這個開關電路關閉單穩態電路,切斷信號通路,防止亂計。幾年的生產實踐證明,該放大處理電路穩定可靠。下面是筆者在設計中獲得的一些體會。采用二級放大好于三級放大,個別三級放大電路板的零點漂移大得足以達到滿幅,使得測量不準確。每個單級放大器放大倍數最好不要大于30,以免自激振蕩。本信號放大器的高頻轉折頻率由C05、C04、R07、R08和R06決定,C05、C04通常選聚丙烯電容器或聚碳酸酯電容器,R07、R08和R06通常選金屬膜五色環電阻。
IClA、R02和R03組成電壓跟隨器,設計值為2.5V,精確度由R02和R03決定,最好用金屬膜五色環電阻器。隔直電容器C03的漏電要小,選用鉭電解電容器為佳。IClA和IC1B要選用偏置電流小、輸入失調電壓小的運算放大器。考慮到性價比,筆者使用了TLC2264和TLC2262。
通過這次畢業設計,加強了我動手、思考和解決問題的能力。我覺得做畢業設計同時也是對課本知識的鞏固和加強,平時看課本時,有時問題老是弄不懂,做完設計,那些問題就迎刃而解了。而且還可以記住很多東西。比如PLC的功能,平時看課本,這次看了,下次就忘了,主要是因為沒有動手實踐過吧!認識來源于實踐,實踐是認識的動力和最終目的,實踐是檢驗真理的唯一標準。作為畢業的學生,能夠搞這樣的關于PLC技術的設計,確實從中學到了很多的知識。在項目設計方面,打破了以往單純為解決問題的觀念,樹立了良好的項目設計思想。在內容設計方面,比較深入的學習了PLC方面的知識,補充了自己知識上的不足,更重要的是給自己找到了一個發展的方向。
在這個過程中,受到了我們老師和同學的熱切關注和耐心輔導,特別李建榮老師對我進行了系統的講解和指導,對設計提出了很多建設性的意見及建議,對我的設計起到了指導性和決定性的作用,使我深刻的體會到了良師益友給我帶來的幫助,在此表示深深的感謝!感謝李建榮老師給了我們這個機會去更深層次的學習對于PLC的理解能力和分析設計能力,感謝這次畢業設計帶給我的豐收的碩果,感覺系統的總結了3年來所學的專業知識很有用途,同時激發了我對于PLC這個領域的極大興趣,我將以此為起點,去更加努力的學習深造爭做PLC領域的專業人才,為自己爭光,為母校添彩。
附錄1
脈搏測量儀電路原理圖
附錄2
程序源代碼
#include <reg51.h>
unsigned char i,j,t,m,DelayTime,DispBuf[3];
unsigned int n,mb;
unsigned char code
BitTab[3]={0xf7,0xef,0xdf}; //位驅動碼
unsigned char code
DispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84}; //字形碼
sbit P3_0=P3^0;
void delay(DelayTime);
main() //主程序
{
TMOD=0x01; //定時器T0工作于方式1
TH0=0xec;
TL0=0x78; //T0定時時間為5ms
IE=0X83; //開中斷
IT0=1; //外部中斷0為邊沿觸發方式
TR0=1; //開定時器T0
for( ) //脈搏指示燈控制
{
if(P3_0==0)
{
delay(200);
P3_0=1;
}
}
}
external0() interrupt 0//外部中斷服務程序
{
P3_0=0; //點亮指示燈
if(n==0)
mb=0;
else
mb=12000/n; //計算每分鐘脈搏數
DispBuf[2]=mb%10; //取個位數
mb=mb/10;
DispBuf[1]=mb%10; //取十位數
DispBuf[0]=mb/10; //取百位數
n=0;
}
Timer0() interrupt 1 //定時中斷服務程序
{
TH0=0xec;
TL0=0x78;
t=BitTab[j]; //取位值
P3=P3|0x38; //P3.3-P3.5送1
P3=P3&t; //P3.3-P3.5輸出取出的位值
t=DispBuf[j]; //取出待顯示的數
t=DispTab[t]; //取字形碼
P1=t; //字型碼由P3輸出顯示
j++; //j作為數碼管的計數器,取值0-2,顯示程序通過它確認顯示哪個數碼管
if(j==3)
j=0;
n++;
if(n==2000) //10秒鐘測不到心率,n復位
n=0;
}
void delay(DelayTime)//延時子程序
{
for(;DelayTime>0;DelayTime--)
{
for(i=0;i<250;i++);
}