【基于單片機(jī)的脈搏測(cè)量?jī)x設(shè)計(jì)14000字(論文)】_第1頁(yè)
【基于單片機(jī)的脈搏測(cè)量?jī)x設(shè)計(jì)14000字(論文)】_第2頁(yè)
【基于單片機(jī)的脈搏測(cè)量?jī)x設(shè)計(jì)14000字(論文)】_第3頁(yè)
【基于單片機(jī)的脈搏測(cè)量?jī)x設(shè)計(jì)14000字(論文)】_第4頁(yè)
【基于單片機(jī)的脈搏測(cè)量?jī)x設(shè)計(jì)14000字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于單片機(jī)的脈搏測(cè)量?jī)x設(shè)計(jì)目錄TOC\o"1-3"\h\u3628第1章引言 115220第2章整體方案設(shè)計(jì) 220952.1核心器件的選型 263282.1.1單片機(jī)的選型 2260182.1.2傳感器的選型 369802.1.3顯示模塊的選型 475332.2系統(tǒng)方案設(shè)計(jì) 41332第3章硬件系統(tǒng)設(shè)計(jì) 5155613.1單片機(jī)最小系統(tǒng) 6236173.1.1電源電路 8128963.1.2復(fù)位電路 9155803.1.3時(shí)鐘電路 9142223.2信號(hào)變送系統(tǒng) 10304543.2.1信號(hào)采集電路 10287943.2.2濾波電路 13189843.2.3信號(hào)放大電路 14251193.3顯示電路 1510603.4按鍵電路 2155073.5報(bào)警電路 2170553.6系統(tǒng)硬件電路 2214756第4章軟件系統(tǒng)設(shè)計(jì) 23293574.1軟件編譯環(huán)境 23250674.2STC-ISP程序下載 2421934.3程序流程圖 25115624.2.1主程序流程圖 26216804.2.2定時(shí)器中斷流程圖 28167354.2.3顯示模塊流程圖 29102354.2.4心率測(cè)量流程圖 3010975第5章系統(tǒng)調(diào)試 3320385.1硬件調(diào)試 33249865.2軟件調(diào)試 33233995.3設(shè)計(jì)結(jié)果 343461結(jié)論 3911134參考文獻(xiàn) 4113314附錄一:系統(tǒng)原理圖 4332289附錄二:源程序 44引言心率(HeartRate)用專業(yè)術(shù)語(yǔ)來(lái)說(shuō)就是用來(lái)描述人體心率跳動(dòng)的周期。現(xiàn)代漢語(yǔ)中將脈搏值解釋為"心臟跳動(dòng)的頻率";故心率也可以說(shuō)在一個(gè)單位時(shí)間內(nèi),心臟律動(dòng)的快慢。每個(gè)人的心率信號(hào)中大都蘊(yùn)含著豐富的生理心理信息,這是由于人體內(nèi)臟器官的健康可以反映在脈搏信息中;這一發(fā)現(xiàn)逐漸引起了眾多臨床醫(yī)生的關(guān)注。在我國(guó),脈診一直被視為中華醫(yī)術(shù)的精髓;到目前為止進(jìn)行的臨床實(shí)踐大約已有2600多年。然而由于手指經(jīng)常使用會(huì)存在一些汗腺,指脈診斷存在的誤差不容忽視;進(jìn)而導(dǎo)致測(cè)量不準(zhǔn)確。這時(shí)或許你會(huì)說(shuō)還有耳脈測(cè)量呢,不是以前也經(jīng)常用過(guò)嗎?雖說(shuō)通過(guò)測(cè)量耳朵脈動(dòng)來(lái)得到脈搏信號(hào)相對(duì)來(lái)說(shuō)比較干凈,但由于耳朵脈搏信號(hào)微弱,特別是當(dāng)季節(jié)變化時(shí),測(cè)量信號(hào)容易受到環(huán)境溫度的影響,導(dǎo)致測(cè)量值不準(zhǔn)確。隨著世界科技與經(jīng)濟(jì)的迅速發(fā)展和進(jìn)步,珍愛(ài)生命、關(guān)注健康已經(jīng)成為全世界人類的共同追求。據(jù)衛(wèi)生局統(tǒng)計(jì)每年因心腦血管疾病猝死的人數(shù)位居人類死亡總數(shù)的第一位,不僅醫(yī)療費(fèi)用居高不下,還給家庭、政府和社會(huì)造成巨大負(fù)擔(dān)。近些年來(lái),由于生活節(jié)奏加快、飲食習(xí)慣不合理和眾多垃圾食品的影響等原因,心腦血管的發(fā)病率更是呈現(xiàn)逐年上升的趨勢(shì)。如何科學(xué)且無(wú)害的降低心腦血管疾病的發(fā)病率及死亡率,有效的減輕心腦血管疾病帶來(lái)的社會(huì)和家庭負(fù)擔(dān),已經(jīng)成為全世界人類所面臨的一個(gè)十分嚴(yán)峻問(wèn)題。整體方案設(shè)計(jì)本章主要寫(xiě)的是系統(tǒng)整體方案設(shè)計(jì),其任務(wù)是設(shè)計(jì)一個(gè)以STC89C52單片機(jī)控制的脈搏測(cè)量?jī)x,目的是為了快速的檢測(cè)人的心率。整體方案設(shè)計(jì)的步驟是:首先要選取合適的核心器件,比如單片機(jī)芯片、傳感器、顯示器等;然后確定本次設(shè)計(jì)的主要模塊,如單片機(jī)最小系統(tǒng)、顯示模塊、報(bào)警模塊等,將其整合就可以大致得到脈搏測(cè)量?jī)x設(shè)計(jì)的總體框架圖。2.1核心器件的選型在電路設(shè)計(jì)之前必須明確方案設(shè)計(jì),在本論文中單片機(jī)型號(hào)、信號(hào)采集模塊以及顯示模塊是設(shè)計(jì)得以成功的關(guān)鍵。通過(guò)比較器件的優(yōu)缺點(diǎn)來(lái)選擇最合適的單元模塊,可以發(fā)揮設(shè)備的最大效能。2.1.1單片機(jī)的選型要實(shí)現(xiàn)該系統(tǒng)的各個(gè)功能,那么單片機(jī)的選型非常關(guān)鍵。根據(jù)本次設(shè)計(jì)的需要,可從當(dāng)前市場(chǎng)上比較常用的幾款單片機(jī)中選擇一種性價(jià)比較高的型號(hào),如MCS-51系列、AT89系列、STC89系列、PIC系列、AVR系列等等。其中PIC系列和AVR系列主要用于大型的辦公自動(dòng)化產(chǎn)品中,而本次脈搏測(cè)量?jī)x控制系統(tǒng)屬于比較小型的系統(tǒng),選用STC89C52單片機(jī)就足以實(shí)現(xiàn)其功能,故在本論文中就不再做詳細(xì)的介紹PIC系列與AVR系列了。那么下面將會(huì)對(duì)前三個(gè)系列中具有代表性的單片機(jī)進(jìn)行簡(jiǎn)單的介紹和比較。方案一:AT89C51與8051的比較AT89C51單片機(jī)最基本的功能就是8051系列單片機(jī)的功能,從而使8位MCS-51系列單片機(jī)可以持續(xù)地發(fā)展,引腳信號(hào)、總線、指令、與某些方面兼容。能夠保障兩者間沒(méi)有指令的障礙從而維持軟件的可移置性,則成為指令的兼容;為而了保證單片機(jī)系統(tǒng)擴(kuò)展與接口的統(tǒng)一性就需要總線、封裝以及引腳信號(hào)的兼容,這對(duì)系統(tǒng)的開(kāi)發(fā)與應(yīng)用非常有利。630MW與120MW分別是8051與AT89C52單片機(jī)的功耗,從這就不難發(fā)現(xiàn)低功耗是AT89C52具有的性能,而低功耗對(duì)于單片機(jī)在野外儀器設(shè)備上的使用和在單片機(jī)的手提式與便攜式方面都有巨大的便利。方案二:STC89C52與AT89C52的比較STC89C52單片機(jī)和AT89C52單片機(jī)相比較區(qū)分并不特別明顯,具體特點(diǎn)如下:STC89C52單片機(jī)有8K字節(jié)程序存儲(chǔ)空間;512字節(jié)數(shù)據(jù)存儲(chǔ)空間;內(nèi)帶2K字節(jié)EEPROM存儲(chǔ)空間;AT89S52單片機(jī)有8K字節(jié)程序存儲(chǔ)空間;256字節(jié)數(shù)據(jù)存儲(chǔ)空間;沒(méi)有內(nèi)帶EEPROM存儲(chǔ)空間;另外STC89C52單片機(jī)直接用串口下載ISP就可以了,而AT89C52單片機(jī)要多裝一個(gè)驅(qū)動(dòng),即需要專用的下載器才可以下載ISP;STC89C52單片機(jī)比AT89C52單片機(jī)具有更強(qiáng)的抗干擾能力。經(jīng)過(guò)以上比較與分析,本次設(shè)計(jì)選用STC89C52單片機(jī)更為適宜。2.1.2傳感器的選型方案一:基于聲電式傳感器的脈搏信號(hào)提取聲電式傳感器也可稱之為力學(xué)量傳感器,其原理是傳感器為了得到向單片機(jī)發(fā)送的電壓信號(hào)必須采集固體、液體、或氣體中傳播的機(jī)械振動(dòng)。正常情況下它的構(gòu)成一般是由不定性無(wú)煙煤顆?;驂弘娞沾傻炔牧?。使用壽命長(zhǎng)、成本低和容易制作是顆粒式聲電傳感器最大的優(yōu)點(diǎn);然而顆粒的機(jī)械磨損和接觸表面上的瞬間電弧會(huì)使顆粒逐漸老化卻是不容忽略的一大缺點(diǎn);因而在檢測(cè)聲音信號(hào)時(shí)存在著一定的缺陷,從而導(dǎo)致雜音大、性能不穩(wěn)定以及測(cè)量結(jié)果不精確。方案二:基于紅外光電傳感器的脈搏信號(hào)提取對(duì)于紅外光電傳感器來(lái)說(shuō),紅外發(fā)射管和紅外接收管是必不可收的器件。若是采集脈搏時(shí)需要經(jīng)手指肚平緩均勻地放在紅外對(duì)管上,其中一個(gè)白色的是紅外發(fā)射管,黑色的是紅外接收管,接收管將采集到的光信號(hào)轉(zhuǎn)換成電信號(hào),然后觸發(fā)單片機(jī)使之將結(jié)果反映在顯示模塊。一般來(lái)說(shuō),光電二極管和光電三極管是比較常用的光電器件。光電式傳感器測(cè)量微小的位移變化有明顯的效果,但是紅外光電傳感器對(duì)材料、電路控制和光電管屬性要求較高,其主要特點(diǎn)有:吸收紅外光的能力極強(qiáng);介電常數(shù)小,以便得到大的輸出電壓;介電損耗小。在以上兩種方法中,我認(rèn)為若是想很好的采集脈搏信息的話第二種方案更易實(shí)現(xiàn),并且紅外也比較常見(jiàn);比較之下選擇了第二種方案來(lái)實(shí)現(xiàn)設(shè)計(jì)。綜上所述,本次設(shè)計(jì)決定選用ST188作為紅外光電傳感器來(lái)采集脈搏信息,然后進(jìn)行運(yùn)放,濾波處理,從而得到穩(wěn)定的脈搏波。紅外光電傳感器檢測(cè)、濾除高頻脈沖波、運(yùn)放整形并運(yùn)送到單片機(jī)工作系統(tǒng)的過(guò)程見(jiàn)下圖2-1所示:?jiǎn)纹瑱C(jī)控制單片機(jī)控制傳感器檢測(cè)運(yùn)放整形濾波模塊液晶顯示圖2-1信號(hào)檢測(cè)處理工作流程圖2.1.3顯示模塊的選型本系統(tǒng)中的顯示模塊可以采用的方案有以下三種:方案一:LED數(shù)碼管選用LED數(shù)碼管的動(dòng)態(tài)描述,由于LED數(shù)碼管的價(jià)格比較適中,最適合與數(shù)字顯示,并且占有單片機(jī)接口比較少,但是本文設(shè)計(jì)的顯示為字母與數(shù)字相結(jié)合,故LED數(shù)碼管不是很合適。方案二:點(diǎn)陣式數(shù)碼管選用點(diǎn)陣式數(shù)碼管,可是因?yàn)榘诵邪肆邪l(fā)光二極管是點(diǎn)陣式數(shù)碼管的構(gòu)成形式,很適合顯示文字,要是顯示數(shù)字的話就會(huì)有點(diǎn)點(diǎn)大材小用,而且性價(jià)比不高,所以在此設(shè)計(jì)中選擇也不是很合適。方案三:LCD1602顯示屏使用LCD1602顯示屏,和其他顯示器相比較,LCD1602液晶顯示屏具有顯示數(shù)字、字符、字母的功能,并且顯示方式和控制比較簡(jiǎn)單,而且相對(duì)于其他的價(jià)格低廉,故經(jīng)過(guò)綜合考慮本論文采用LCD1602顯示屏最合適。2.2系統(tǒng)方案設(shè)計(jì)本次設(shè)計(jì)采用常見(jiàn)的單片機(jī)STC89C52為控制核心,通過(guò)ST188紅外光電傳感器采集脈搏信號(hào),從而實(shí)現(xiàn)脈搏測(cè)量?jī)x的基本功能。系統(tǒng)設(shè)計(jì)主要有心率采集模塊、液晶顯示模塊、電源模塊、晶振模塊、復(fù)位模塊、按鍵模塊、報(bào)警模塊;其硬件框圖如下圖2-2所示:?jiǎn)纹瑱C(jī)單片機(jī)STC89C52按鍵模塊TC89C52報(bào)警模塊STC89C52復(fù)位模塊TC89C52波形整形C89C52脈搏采集TC89C52顯示模塊運(yùn)放模塊圖2-2脈搏測(cè)量?jī)x的工作原理硬件系統(tǒng)設(shè)計(jì)本設(shè)計(jì)用到了單片機(jī)最小系統(tǒng),故在本章節(jié)中將首先介紹一下單片機(jī)最小系統(tǒng)電路,然后再主要對(duì)脈搏測(cè)量?jī)x的幾個(gè)關(guān)鍵模塊電路進(jìn)行簡(jiǎn)單的介紹,即:信號(hào)采集電路、濾波電路、放大電路、顯示電路、按鍵電路、報(bào)警電路等。3.1單片機(jī)最小系統(tǒng)STC89C52最小系統(tǒng)是指其能工作下的最簡(jiǎn)單的電路。其中的電源電路、復(fù)位電路、時(shí)鐘電路是單片機(jī)系統(tǒng)可以工作的最基礎(chǔ)的電路,三者缺一不可。具體如圖3-1所示:圖3-1單片機(jī)最小系統(tǒng)由圖3-1可知,在單片機(jī)STC89C52芯片內(nèi)共有40個(gè)管腳,其中有32個(gè)管腳可作為I/O口用,它們分別為P0口的八個(gè)管腳、P1口的八個(gè)管腳、P2口的八個(gè)管腳和P3口的八個(gè)管腳,P3口的八個(gè)引腳可以用作串行口、外部中斷、定時(shí)器、讀寫(xiě)控制等特殊用途,當(dāng)不需要特殊的用途,P3端口可以作為一個(gè)I/O端口。單片機(jī)中40個(gè)引腳的具體功能如表3-1所示:3-1單片機(jī)引腳功能對(duì)照表引腳引腳名稱對(duì)應(yīng)功能與作用1~8P1.0~P1.7準(zhǔn)雙向的8位普通I/O口,內(nèi)帶上拉電阻存在。9RST復(fù)位輸入引腳,在振蕩器復(fù)位是需保持兩個(gè)機(jī)器周期以上的高電平。10-17P3.0~P3.7功能有兩個(gè),第一是作為準(zhǔn)雙向的8位普通I/O口,只不過(guò)內(nèi)帶上拉電阻;第二種功能下面有介紹。18XTAL2與晶振相連,是內(nèi)部時(shí)鐘電路的輸入,同時(shí)也是反向振蕩器的輸入口。19XTAL1反向振蕩器的輸出20GND單片機(jī)電接地引腳21~28P2.0~P2.7準(zhǔn)雙向的8位普通I/O口,有上拉電阻存在。29PSEN本設(shè)計(jì)中沒(méi)有用到,只是外部程序存儲(chǔ)器的一個(gè)選通信號(hào)口。30ALE本設(shè)計(jì)沒(méi)有使用到不做解釋31EA/VPP我們?cè)O(shè)計(jì)中直接該引腳接至VCC讓其處于一直高電平的狀態(tài),先執(zhí)行片內(nèi)4kBROM,再執(zhí)行片外ROM。32~39P0.7~P0.0P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,在本設(shè)計(jì)中與液晶相連的話需要接一個(gè)10k的上拉電阻。40VCC單片機(jī)電源+5V引腳其中單片機(jī)的P3口第一功能是準(zhǔn)雙向普通I/O口,內(nèi)部有上拉電阻存在。各引腳的第二功能作,各引腳的定義如表3-2所示:引腳引腳名稱對(duì)應(yīng)的功能作用10RXD該引腳的特殊功能為串行輸入口。11TXD該引腳的特殊功能為串行輸出口。12INT0該引腳作為單片機(jī)外部中斷0觸發(fā)引腳,觸發(fā)方式可以進(jìn)行配置相對(duì)應(yīng)的寄存器來(lái)實(shí)現(xiàn)。13INT1該引腳作為單片機(jī)外部中斷1觸發(fā)引腳,觸發(fā)方式可以進(jìn)行配置相對(duì)應(yīng)的寄存器來(lái)實(shí)現(xiàn)。14T0該引腳可作為單片機(jī)外部計(jì)數(shù)器0觸發(fā)引腳。15T1該引腳可作為單片機(jī)外部計(jì)數(shù)器1觸發(fā)引腳。16WR該引腳可作為單片機(jī)外部數(shù)據(jù)寫(xiě)選通口。17RD該引腳可作為單片機(jī)外部數(shù)據(jù)讀選通口。3-2單片機(jī)P3口第二引腳功能對(duì)照表3.1.1電源電路任何一個(gè)電子產(chǎn)品要想正常工作,必須提供電源。只有電源存在,器件才能得以運(yùn)行,整個(gè)系統(tǒng)才能正常運(yùn)行。在本次設(shè)計(jì)中,由于52單片機(jī)的工作電壓在3.3V~5.5V之間都可以正常工作;所以供電方式可以選擇電池盒或USB電源線。若是選擇電池盒的話可以用3節(jié)5號(hào)電池即可解決,不過(guò)電池若是放的時(shí)間較久電壓會(huì)不穩(wěn)定,導(dǎo)致信號(hào)測(cè)量有誤差。相比之下,選擇USB電源線的話效果更好;可以采取USB電源線連接手機(jī)充電器插頭或者5V的移動(dòng)電源直接給給系統(tǒng)進(jìn)行供電,誤差會(huì)大大減少。電源電路圖如3-2所示:當(dāng)DC電源接口插上電源線時(shí),打開(kāi)自鎖開(kāi)關(guān)即可對(duì)單片機(jī)進(jìn)行供電。圖3-4電源電路3.1.2復(fù)位電路單片機(jī)的初始化操作就是復(fù)位,只要單片機(jī)開(kāi)始運(yùn)行,就都應(yīng)該復(fù)位。復(fù)位電路包括了上電復(fù)位和手動(dòng)復(fù)位兩個(gè)部分。圖3-3中所示的復(fù)位電路就包括了這兩種復(fù)位方式。圖中復(fù)位按鍵的3號(hào)引腳接電源,2號(hào)引腳與單片機(jī)的9號(hào)引腳RST相連。圖中所示的復(fù)位電阻為10k,復(fù)位電容一般選擇10uf,這些阻值和容值的選擇在教科書(shū)中堪為經(jīng)典。當(dāng)電路開(kāi)關(guān)時(shí),電容C1可以保持其兩端電壓不發(fā)生突變,引腳9的電流由電源電流提供,因此引腳9上就會(huì)產(chǎn)生高電平,從而使得單片機(jī)變?yōu)閺?fù)位狀態(tài),伴隨著電容C1的不斷充電,其兩端的電壓不短上高,從而引腳9的電壓就開(kāi)始降低,使得單片機(jī)最終退出復(fù)位狀態(tài)。單片機(jī)在正常運(yùn)行下可以按復(fù)位鍵進(jìn)行復(fù)位。復(fù)位電路如3-3所示:圖3-3復(fù)位電路3.1.3時(shí)鐘電路由于系統(tǒng)需要計(jì)算精確時(shí)間,所以時(shí)鐘電路模塊使用了一個(gè)12MHz的晶振。單片機(jī)工作所需要的時(shí)鐘信號(hào)就是由時(shí)鐘電路發(fā)出的,電路在時(shí)鐘信號(hào)控制下嚴(yán)格依照時(shí)序工作的目的是為了保證同步工作方式的完成。XTAL2是單片機(jī)的18引腳,其功能不僅是內(nèi)部時(shí)鐘電路的輸入,與此同時(shí)還是反向振蕩器的輸入口;XTAL1是單片的19引腳,其功能是反向振蕩器的輸出;一般與晶振相連的的電容選取30pF的陶瓷電容。具體的時(shí)鐘電路如圖3-4所示:圖3-4時(shí)鐘電路3.2信號(hào)變送系統(tǒng)本次設(shè)計(jì)的檢測(cè)原理是:首先將手指肚放在ST188傳感器上來(lái)采集信號(hào),采集好的信號(hào)中由于按下的力度、外部環(huán)境的影響的等原因會(huì)導(dǎo)致干擾,必須要濾除相對(duì)來(lái)說(shuō)的高頻信號(hào)以及干擾信號(hào);由于脈搏信號(hào)相對(duì)來(lái)說(shuō)比較微弱,緊接著進(jìn)行運(yùn)放處理;處理過(guò)的信號(hào)經(jīng)過(guò)導(dǎo)線與單片機(jī)的P3.2口相連使之傳送到單片機(jī)內(nèi)部;當(dāng)經(jīng)過(guò)單片機(jī)處理后顯示在液晶屏上。3.2.1信號(hào)采集電路在信號(hào)采集電路中,傳感器的選取至關(guān)重要。在第二章的時(shí)候已經(jīng)選過(guò)傳感器的型號(hào),ST188無(wú)疑是最好的選擇。它由高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成。紅外發(fā)射管發(fā)出紅外線,紅外接收管的特性是將光信號(hào)轉(zhuǎn)換為電信號(hào)。在ST188紅外光電傳感器中A、K是紅外發(fā)射管;C、E是紅外接收管。在圖3-6信號(hào)采集電路中,ST188的A極與電源相連,而K極與地相連;因此要想讓紅外發(fā)射管就能發(fā)出紅外線,A極就要接高電平、K極要接低電平。下面大家可以來(lái)看一下ST188實(shí)物圖,如圖3-5所示:圖3-5ST188實(shí)物圖脈搏采集電路圖如圖3-6所示:在選擇R4的阻值時(shí)要求比較高,其原因是:若是紅外發(fā)射二極管中的電流越大,那么發(fā)射角度就會(huì)越小,產(chǎn)生的發(fā)射強(qiáng)度就越大,因此考慮R4阻值時(shí)要格外慎重。圖中R4選擇220Ω同時(shí)也是基于紅外接收管感應(yīng)紅外光靈敏度考慮的。R4阻值要是過(guò)大的話,流經(jīng)紅外發(fā)射二極管的電流就會(huì)偏小,那么紅外接收管就無(wú)法區(qū)別是否有脈搏信號(hào)產(chǎn)生。反之,R4阻值若是過(guò)小,流經(jīng)紅外發(fā)射二極管的電流就會(huì)偏大,紅外接收管也不能準(zhǔn)確地辨別有脈搏和無(wú)脈搏時(shí)的信號(hào)。在實(shí)際電路中R4的阻值選擇時(shí)可以小范圍的來(lái)回調(diào)試下,從而可以得到更加精確的阻值。如圖所示,在R4旁邊連接了一個(gè)電位器,就是用來(lái)調(diào)節(jié)紅外光電傳感器靈敏度的。R5阻值是22K,起一個(gè)上拉的作用;當(dāng)紅外接收管導(dǎo)通時(shí)就接地,不導(dǎo)通時(shí)就與電源相連;具體電路如圖3-6所示:圖3-6脈搏信號(hào)的采集電路在脈搏采集時(shí)可能會(huì)遇到兩種情況:第一種是是無(wú)脈期,第二種是有脈期。當(dāng)出現(xiàn)第一種情況時(shí),由于紅外接收管中存在暗電流,會(huì)造成輸出電壓略低;其主要原因是手指雖然遮擋了紅外發(fā)射管發(fā)射的紅外光,但是透光性卻比較強(qiáng)導(dǎo)致無(wú)結(jié)果出現(xiàn)。當(dāng)出現(xiàn)第二種情況時(shí),血脈使手指透光性變差,紅外接收管中的暗電流減小,輸出電壓上升。3.2.2濾波電路從傳感器中出來(lái)的脈搏信號(hào)中相對(duì)來(lái)說(shuō)含有高頻信號(hào),而希望得到的波形是交流低頻信號(hào)因此需要先進(jìn)行濾波;濾波電路如圖3-7所示。C4選擇10uf的電容進(jìn)行隔直流,并且濾出相對(duì)脈搏信號(hào)來(lái)說(shuō)的高頻波或環(huán)境光線的干擾;R11起到了下拉作用,與LM358的同相輸入端3腳相連,當(dāng)有信號(hào)輸入時(shí)接通,沒(méi)信號(hào)輸入時(shí)接地;R7、R5、R11組成普通的濾波器濾除高頻信號(hào),加到線性放大輸入端;R8和C6組成低通濾波器以進(jìn)一步濾除殘留的干擾,運(yùn)放LM358將信號(hào)放大,放大倍數(shù)由R12和R13決定;即LM358的同向輸入端使其信號(hào)放大得到顯示出來(lái);具體電路如圖3-7所示:圖3-7濾波電路3.2.3信號(hào)放大電路由于脈搏信號(hào)本身就比較微弱,所以是通過(guò)比較靈敏的紅外光電傳感器來(lái)采集脈搏信號(hào)。因此首先要將濾波處理的波形進(jìn)行適當(dāng)?shù)倪\(yùn)放;故本次課題的設(shè)計(jì)最終決定采用的是LM358四運(yùn)放放大器。LM358是四運(yùn)放放大器,由兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器組成。LM358四運(yùn)放電路具有電源電壓范圍寬,靜態(tài)功耗小,可單電源使用,價(jià)格低廉等優(yōu)點(diǎn),因此被廣泛應(yīng)用在各種電路中。圖3-8是LM358的引腳及功能介紹,由圖可知,LM358有8個(gè)引腳,其中1號(hào)引腳是第一個(gè)運(yùn)放器的輸出端;2、3號(hào)引腳分別是第一個(gè)運(yùn)放器的反向和同相輸入端;4號(hào)引腳接地;7號(hào)引腳是第二個(gè)運(yùn)放器的輸出端;6、5號(hào)引腳同理分別為為第二個(gè)運(yùn)放器的反向和同相輸入端;8號(hào)引腳接電源。LM358的引腳排列及功能詳見(jiàn)圖3-8所示:圖3-8LM358的引腳排列及功能本次設(shè)計(jì)的信號(hào)放大電路圖如圖3-9所示,濾波過(guò)的信號(hào)經(jīng)過(guò)3引腳接入LM358的同向輸入端,2引腳的反向輸入端接在R12和R13的電阻分壓處;R13下面是接地的,R12上面與LM358的反饋輸出引腳1相連;同時(shí)反饋輸出又與LM358的第二組運(yùn)放的反向輸入端6引腳相連;也就是說(shuō)把輸出的數(shù)據(jù)放在了第二組運(yùn)放里。在第二組運(yùn)放的同向輸入端5引腳接入了30k與4.7k的分壓;與之相連的56k電阻同樣把信號(hào)反饋到了同向輸入端5引腳,也就是說(shuō)所有的反饋?zhàn)詈蠖蓟氐搅诉\(yùn)放電路中。LM358的8號(hào)引腳與電源相連;7號(hào)輸出引腳與單片機(jī)的P3.2口相連,同時(shí)連接了一個(gè)1k的電阻與LED指示燈;當(dāng)有心率時(shí)指示燈就會(huì)被點(diǎn)亮,沒(méi)心率時(shí)就會(huì)熄滅。在如圖3-9所示,與R6、R10、R9相連的LM358一側(cè)共同組成了電壓比較器,使信號(hào)進(jìn)行近一步的整形然后送到單片機(jī)內(nèi)部。圖3-9信號(hào)放大電路3.3顯示電路在第二章中我們經(jīng)過(guò)對(duì)比,選擇了液晶顯示模塊。相比較其他顯示模塊來(lái)說(shuō),液晶的優(yōu)點(diǎn)有畫(huà)面質(zhì)量高、體積小、重量輕、耗電量相對(duì)來(lái)說(shuō)比較低。在本次設(shè)計(jì)中選取了LCD1602作為顯示模塊。液晶是一種介于固體和液體之間的有機(jī)化合物;通常狀態(tài)下是液態(tài),然而它的分子排列卻和固體晶體一樣非常規(guī)則。通過(guò)利用液晶的物理特性給其通電,在電場(chǎng)的作用下,分子的排列順序會(huì)被改變,如果再改變電壓的大小,某一顏色透光量的多少也就會(huì)同時(shí)改變,從而可以改變透光度,最后顯示在液晶屏上。液晶顯示屏的實(shí)物圖如圖3-10、3-11所示:圖3-10液晶顯示器正面圖圖3-11液晶顯示器背面圖引腳符號(hào)功能說(shuō)明1VSS一般接地2VDD一般接電源(+5V)3V0液晶的灰度調(diào)節(jié)引腳,接在1k和10k的阻值分壓處。4RSRS為寄存器選擇,作為數(shù)據(jù)寄存器時(shí)接高電平、作為選擇指令寄存器時(shí)接低電平。5R/W讀寫(xiě)信號(hào)線,進(jìn)行讀操作時(shí)接高電平,進(jìn)行寫(xiě)操作接低電平。6EE(或EN)端為使能(enable)端,寫(xiě)操作時(shí),下降沿使能。讀操作時(shí),E高電平有效7DB0低4位三態(tài)、雙向數(shù)據(jù)總線0位(最低位)8DB1低4位三態(tài)、雙向數(shù)據(jù)總線1位9DB2低4位三態(tài)、雙向數(shù)據(jù)總線2位10DB3低4位三態(tài)、雙向數(shù)據(jù)總線3位11DB4高4位三態(tài)、雙向數(shù)據(jù)總線4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線7位(最高位)(也是busyflag)15BLA背光電源正極16BLK背光電源負(fù)極LCD1602是可以顯示兩行內(nèi)容,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。其芯片的工作電壓是4.5V-5.5V之間,模塊最佳的工作電壓是5V;工作電流是2.0mA。本設(shè)計(jì)中液晶顯示器的引腳有16條,各個(gè)引腳的功能具體如表3-3所示:表3-3LCD引腳功能介紹脈搏信號(hào)經(jīng)過(guò)上述采集、濾波、放大,通過(guò)與單片機(jī)的P3.2建立聯(lián)系,進(jìn)行處理以后送到顯示模塊;最后結(jié)果由液晶顯示屏顯示出來(lái);本設(shè)計(jì)是用液晶顯示器1602作為顯示電路。單片機(jī)的P0口分別與液晶的數(shù)據(jù)口7-14腳相連,不過(guò)單片機(jī)的P0口是開(kāi)漏極輸出,不能輸出高電平,故需要接一個(gè)10k的上拉排阻,分別與單片機(jī)的P0.0~P0.7相連由P0口控制來(lái)顯示數(shù)據(jù)。液晶的1、2引腳是電源引腳,液晶的15、16是背光引腳;液晶的引腳3是灰度調(diào)節(jié),在本次設(shè)計(jì)中液晶的3號(hào)引腳接在了1k與10k的電阻分壓處;通過(guò)阻值分壓來(lái)調(diào)節(jié)顯示屏的對(duì)比度。電壓越低液晶顯示的越清晰,但是如果太低濃度大反而看不太清,要是電壓高的話字跡較淡也易看不見(jiàn),故而R2、R1就是來(lái)調(diào)節(jié)電壓比值的,一般說(shuō)來(lái)R14的阻值在220歐姆到1k左右都可;不過(guò)要是R2和R14接反的話液晶就可能顯示不出來(lái)數(shù)據(jù)了。4、5、6接的是單片機(jī)的P25、P26、P27,是控制引腳;顯示電路見(jiàn)圖3-13所示:圖3-13顯示電路3.4按鍵電路按鍵電路如圖3-14所示,在3.1.2和3.1.3中分別介紹過(guò)了復(fù)位電路和晶振電路,在這里就不一一介紹了。由圖可知按鍵模塊的三個(gè)按鍵的2號(hào)引腳均與地相連,而三個(gè)按鍵的3號(hào)引腳分別與單片機(jī)的P1.0、P1.1、P1.2相連。為了便于區(qū)分,分別為這三個(gè)按鍵編下序號(hào)分別為1、2、3。其中與單片機(jī)P1.0相連的1號(hào)按鍵是設(shè)置脈搏值的大小范圍的,當(dāng)按第一下的時(shí)候,顯示屏上第一行會(huì)出現(xiàn)HeartRate:;第二行會(huì)顯示W(wǎng)arningL:;而與單片機(jī)相連的P1.1是2號(hào)數(shù)值加鍵,當(dāng)按下時(shí),數(shù)值就會(huì)逐漸加1;與單片機(jī)P1.2相連的是3號(hào)數(shù)值減鍵;當(dāng)按下時(shí),數(shù)值就會(huì)逐漸減1;當(dāng)最小值設(shè)置好之后再按下第一個(gè)鍵第一行會(huì)出現(xiàn)HeartRate:;第二行會(huì)顯示W(wǎng)arningH:;然后再重新設(shè)置脈搏值的最大值,具體步驟同最小值設(shè)置一樣,當(dāng)設(shè)置好之后再按下第一個(gè)按鍵即為確定最大值最小值。當(dāng)下次重新充電時(shí),就可以看到脈搏的上下限已經(jīng)設(shè)置好了,若是再想改變上下限,可按著上述步驟重新設(shè)置。具體電路圖如3-14所示:圖3-14按鍵電路3.5報(bào)警電路如圖3-15所示,與蜂鳴器相連的是9012三極管的發(fā)射極,用來(lái)驅(qū)動(dòng)蜂鳴器,提高芯片組的性能。與三極管集電極相連的是一個(gè)雙擲開(kāi)關(guān),當(dāng)想讓蜂鳴器報(bào)警時(shí)打開(kāi),不想報(bào)警時(shí)可以關(guān)閉。為了防止單片機(jī)燒毀,故不能與蜂鳴器直接相連,應(yīng)加一個(gè)限流電阻;一般來(lái)說(shuō)串聯(lián)一個(gè)220~2.2k的電阻均可;經(jīng)試驗(yàn)證明串聯(lián)2.2k的電阻效果最好。通過(guò)限流電阻R15報(bào)警電路和單片機(jī)的P2.4口相連,當(dāng)通上電,打開(kāi)雙擲開(kāi)關(guān),若是脈搏值超出所設(shè)置的上下限時(shí),蜂鳴器就會(huì)報(bào)警。只不過(guò)數(shù)值在程序中已經(jīng)設(shè)置好了,最小值是40,最大值是100,因?yàn)槿说恼P奶簿褪窃谶@個(gè)范圍內(nèi),如若超出需引起重視,具體電路圖如3-15所示:圖3-15報(bào)警電路3.6系統(tǒng)硬件電路上面已經(jīng)介紹了硬件系統(tǒng)模塊的各個(gè)組成部分,擁有了各個(gè)功能模塊以后,組合到一起,就構(gòu)成了整個(gè)脈搏測(cè)量?jī)x的電路圖。電路的原理圖見(jiàn)圖3-16,在電路圖中可以看出,硬件系統(tǒng)由單片機(jī)、電源電路、復(fù)位電路、晶振電路、信號(hào)采集電路、濾波電路、放大電路、顯示電路、按鍵電路、報(bào)警電路組成??梢哉f(shuō)是由各個(gè)部件的相互配合,才能相對(duì)準(zhǔn)確地檢測(cè)出脈搏值的大小。具體硬件電路圖如3-16所示:圖3-16系統(tǒng)硬件電路第4章軟件系統(tǒng)設(shè)計(jì)4.1軟件編譯環(huán)境在編寫(xiě)程序時(shí)需要用到Keil軟件,軟件編譯環(huán)境為keilμVision4,keiluVision4集成開(kāi)發(fā)環(huán)境、仿真器、調(diào)試器等,提供一個(gè)單純統(tǒng)一環(huán)境,可以快速的編輯,仿真和調(diào)試程序,通過(guò)uVision4的工具名,就可以實(shí)現(xiàn)絕大多數(shù)調(diào)試和編輯的功能。進(jìn)入Keil軟件后,緊接著就會(huì)出現(xiàn)編輯界面,打開(kāi)軟件后要先建立一個(gè)項(xiàng)目文件,之后選擇單片機(jī)型號(hào);在本次設(shè)計(jì)中我們選擇Atmel公司AT89C52,這樣項(xiàng)目文件就算建好了。新建一個(gè)空白文檔,在這里輸入要編寫(xiě)的程序;編寫(xiě)好并檢查無(wú)誤后就可以保存剛才編寫(xiě)的程序文件了,最后還要對(duì)程序進(jìn)行編譯生成HEX文件;編譯好的界面如圖4-1所示:圖4-1Keil中的程序編譯4.2STC-ISP程序下載經(jīng)過(guò)Keil編譯后生成的hex文件需要下載到單片機(jī),在這里將用到STC-ISP程序燒錄軟件,同時(shí)通過(guò)USB接口轉(zhuǎn)換的下載器與單片機(jī)相連接,最終完成程序的下載。如圖4-2所示:圖4-2STC-ISP下載界面4.3程序流程圖4.2.1主程序流程圖系統(tǒng)主程序是單片機(jī)系統(tǒng)程序的總框架,控制單片機(jī)按照已經(jīng)設(shè)置好的流程進(jìn)行操作。系統(tǒng)上電后,可以對(duì)系統(tǒng)進(jìn)行初始化設(shè)置;通過(guò)對(duì)單片機(jī)內(nèi)專用寄存器、定時(shí)器工作方式及各端口的工作狀態(tài)進(jìn)行設(shè)定就是完成了初始化設(shè)置。系統(tǒng)初始化之后,進(jìn)行定時(shí)器中斷、外部中斷、顯示等工作,不同的外部硬件控制不同的子程序;流程如圖4-3所示:圖4-3主程序流程圖4.2.2定時(shí)器中斷流程圖計(jì)時(shí)、按鍵檢測(cè)、有無(wú)檢測(cè)信號(hào)判斷等構(gòu)成了定時(shí)器中斷服務(wù)程序。首先判斷是否有中斷產(chǎn)生,若有中斷產(chǎn)生的話,判斷此時(shí)定時(shí)器初始值是否到10ms,計(jì)時(shí)到之后繼續(xù)檢測(cè)下一個(gè)10ms,直到40ms到了才判斷是脈搏信號(hào),再停止并計(jì)算保存測(cè)得的脈搏次數(shù)。在判斷中斷產(chǎn)生的同時(shí)還需檢測(cè)是否有按鍵按下,沒(méi)有的話按下復(fù)位鍵進(jìn)行清零,有的話往下執(zhí)行。其目的是實(shí)現(xiàn)一分鐘的定時(shí)功能和存儲(chǔ)測(cè)得的脈搏次數(shù)。流程如圖4-4所示:圖4-4定時(shí)器中斷流程圖4.2.3顯示模塊流程圖顯示模塊的流程圖設(shè)置可謂是重中之重。液晶顯示時(shí),需要先對(duì)LCD初始化設(shè)置,然后清除數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù),對(duì)LCD設(shè)置初始值并將其待顯示數(shù)據(jù)送入緩沖區(qū);此時(shí)數(shù)據(jù)就會(huì)顯示在指定的區(qū)域內(nèi),緊接著顯示指針會(huì)指向下一行,最后判斷是否結(jié)束,若是直接結(jié)束;若不是則返回到待顯示數(shù)據(jù)送入緩沖區(qū)這一步,繼續(xù)循環(huán)下去;具體流程圖如圖4-5所示:圖4-5顯示模塊流程圖4.2.4心率測(cè)量流程圖測(cè)量心率時(shí),首先將定時(shí)器初始化,初始值設(shè)為10ms,程序如下:voidTime1()interrupt3 //定時(shí)器1服務(wù)函數(shù){ staticucharKey_Con,Xintiao_Con; TH1=0xd8; //10msTL1=0xf0; //重新賦初值switch(Key_Con)//無(wú)按鍵按下時(shí)此值為0 { case0: //每10ms掃描此處 { if((P1&0x07)!=0x07)//掃描按鍵是否有按下 { Key_Con++; //有按下此值加1,值為1 } break; }當(dāng)有定時(shí)中斷產(chǎn)生時(shí),首先判斷是否有信號(hào)輸入,若沒(méi)有信號(hào)輸入時(shí)則返回到上一步中斷產(chǎn)生重新檢測(cè);若有信號(hào)輸入時(shí),那么Xintiao_con的值加一,然后判斷Xintiao_con的值是否大于等于4,若Xintiao_con的值小于4仍舊返回到中斷產(chǎn)生那一步;若Xintiao_con的值大于等于4即信號(hào)輸入保持了40ms,則說(shuō)明是心率信號(hào);判斷完是心率信號(hào)時(shí),接下來(lái)判斷是不是第一個(gè)心跳,是的話繼續(xù)檢測(cè)第二次心跳,此時(shí)仍舊返回到有中斷產(chǎn)生那一步;若不是第一個(gè)心跳就可以計(jì)算兩次心跳的時(shí)間差,從而計(jì)算出一分鐘的心率心率測(cè)量流程圖具體如圖4-6所示:圖4-6心率測(cè)量流程圖系統(tǒng)調(diào)試寫(xiě)到這里,本次畢業(yè)設(shè)計(jì)硬件和軟件部分的設(shè)計(jì)工作基本已經(jīng)完成了,而為了讓系統(tǒng)能夠穩(wěn)定地運(yùn)行與工作,那么就需要進(jìn)行后續(xù)的一些檢測(cè)與調(diào)試工作,根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試可分為兩大部分:硬件調(diào)試和軟件調(diào)試。5.1硬件調(diào)試在理論基礎(chǔ)上設(shè)計(jì)電路圖,根據(jù)電路圖來(lái)制作硬件電路。系統(tǒng)硬件電路的調(diào)試主要是檢測(cè)電路是否出現(xiàn)漏焊、斷路、虛焊、短路以及開(kāi)機(jī)后能否正常工作等情況。當(dāng)板子焊好后首先要根據(jù)電路圖仔細(xì)檢查一下,看看有沒(méi)有漏焊的情況,如果發(fā)現(xiàn)及時(shí)焊接,不要說(shuō)我先記下,一會(huì)再焊接;此時(shí)所要做的就是當(dāng)發(fā)現(xiàn)一個(gè)問(wèn)題就解決一個(gè),以防后續(xù)工作時(shí)遺漏掉;同時(shí)要看需要連接的線路有沒(méi)有都連上,特別要注意電源線和地線的連接。對(duì)于斷路、虛焊、短路這些情況可以用數(shù)字萬(wàn)用表來(lái)檢測(cè),檢查的時(shí)候需要細(xì)心、耐心,不可急躁。在需要檢測(cè)的元件或?qū)Ь€的兩端用兩根表筆檢測(cè),如果導(dǎo)通蜂鳴器會(huì)鳴叫,如果斷開(kāi)蜂鳴器不叫。這樣根據(jù)我們所需要檢測(cè)的情況,在結(jié)合檢測(cè)的現(xiàn)象就可以測(cè)出線路是否有問(wèn)題。程序下載成功后,給板子通電之后發(fā)現(xiàn)LCD1602液晶顯示器不顯示任何讀數(shù),對(duì)著電路圖仔細(xì)檢查電路發(fā)現(xiàn)某些元器件的位置焊接錯(cuò)誤;經(jīng)過(guò)修改之后液晶顯示器可以顯示當(dāng)前的讀數(shù)。5.2軟件調(diào)試在軟件設(shè)計(jì)前,先把大致的程序流程理清,然后再分模塊調(diào)試,將各模塊部分的程序先調(diào)試可行后再整合到一起,編寫(xiě)主程序。系統(tǒng)的軟件程序通過(guò)KEIL軟件進(jìn)行編寫(xiě),將編寫(xiě)好的程序生成.HEX文件后通過(guò)單片機(jī)實(shí)驗(yàn)板下載口下載到單片機(jī)中。通過(guò)觀察整個(gè)系統(tǒng)運(yùn)行的狀態(tài),然后進(jìn)行反復(fù)的修改調(diào)試程序,最終得到一個(gè)完善的程序。在本次設(shè)計(jì)中遇到的最大問(wèn)題就是脈搏值有時(shí)會(huì)來(lái)回跳動(dòng),不能穩(wěn)定的顯示心率值。剛開(kāi)始我一直以為是硬件設(shè)計(jì)的問(wèn)題,卻始終找不到問(wèn)題所在。針對(duì)這個(gè)問(wèn)題,我特意用了UTD2102CM(優(yōu)德利數(shù)字存儲(chǔ)示波器)來(lái)檢測(cè)了一下脈搏波是否正常,如圖5-1所示:圖5-1脈搏波圖像此時(shí)每個(gè)小方塊的寬度設(shè)置的是500ms,由圖可知一個(gè)周期內(nèi)的脈搏寬度為1.5*500ms=750ms,由于1Min=60s=60000ms,故可得此時(shí)脈搏值為60000/750=80;也就是說(shuō)人的心率值為80次/Min。由圖5-1所示,矩形脈沖波大致是呈周期性并且穩(wěn)定變化的,由此可知可知本設(shè)計(jì)的硬件設(shè)備是完全沒(méi)問(wèn)題的,故問(wèn)題應(yīng)該是出現(xiàn)在軟件調(diào)試上。通過(guò)向老師咨詢才知道原來(lái)是液晶顯示程序上出了問(wèn)題,設(shè)置的延緩時(shí)間太低,導(dǎo)致測(cè)量時(shí)結(jié)果不準(zhǔn)確,經(jīng)調(diào)過(guò)之后發(fā)現(xiàn)可以正常工作;鑒于數(shù)值不穩(wěn)定一直在跳動(dòng)的問(wèn)題,老師提議讓在程序中可以加一個(gè)平均計(jì)算的程序,讓幾次連續(xù)跳動(dòng)的脈搏值平均一下,也可相對(duì)減小誤差的出現(xiàn);不過(guò)本次設(shè)計(jì)原理是檢測(cè)兩次脈沖間隔時(shí)間來(lái)計(jì)算心率的,由于相差時(shí)間比較短,誤差容易被放大,故數(shù)值不穩(wěn)定也算正?,F(xiàn)象。5.3設(shè)計(jì)結(jié)果經(jīng)過(guò)這么長(zhǎng)時(shí)間的堅(jiān)持與努力,最終實(shí)現(xiàn)了該論文應(yīng)該達(dá)到的目的。作品完成的實(shí)物圖如5-2所示:圖5-2制作的實(shí)物圖當(dāng)給系統(tǒng)通上電時(shí)顯示狀態(tài)如圖5-3所示:圖5-3系統(tǒng)通電狀態(tài)本次設(shè)計(jì)制作出來(lái)的脈搏測(cè)量?jī)x也基本上能實(shí)現(xiàn)一些功能,下面我來(lái)介紹一下實(shí)現(xiàn)的結(jié)果以及存在的一些問(wèn)題。首先把手指肚平緩的(假若手指按壓太緊或者按壓不到位的話均會(huì)影響測(cè)量結(jié)果,因?yàn)閭鞲衅鞅容^靈敏數(shù)值會(huì)上下浮動(dòng)較大)放在ST188傳感器上,耐心地等待一下,待指示燈均勻閃爍,比如一秒一秒持續(xù)均勻閃爍時(shí),記下此時(shí)的脈搏數(shù)值就是你當(dāng)時(shí)的心跳值;(因?yàn)槲覀€(gè)人的脈搏跳動(dòng)比較快,所以數(shù)值較高,每個(gè)人血管、手指薄厚不一樣,又因?yàn)榇嬖谡`差的原因,顯示結(jié)果可能不一樣,現(xiàn)在這個(gè)測(cè)試是以我個(gè)人脈搏作為參考)具體測(cè)量結(jié)果如圖5-4所示:圖5-4心率顯示狀態(tài)其次可以通過(guò)設(shè)置按鍵可以設(shè)置當(dāng)前模式,由圖5-1可知,焊接好的萬(wàn)能板上有四個(gè)按鈕,與單片機(jī)9號(hào)引腳RST相連的是復(fù)位鍵,按一下可以重新測(cè)試;與單片機(jī)P1.0相連的是設(shè)置鍵,可以設(shè)置報(bào)警值的最大值、最小值;與P1.1相連的是加按鍵,設(shè)置報(bào)警值時(shí)可以逐漸加一,同理與P1.2相連的是減按鍵,可以逐漸減一。比如若是測(cè)量模式的話,可以正常顯示心率;若是設(shè)置上限模式,不僅顯示心率還可顯示上限值;同理若是設(shè)置下限模式,不僅可以顯示心率還可顯示下限值;具體如圖5-5、5-6、5-7所示:圖5-5測(cè)量模式狀態(tài)圖5-6設(shè)置上限模式圖5-7設(shè)置下限模式結(jié)論歷經(jīng)兩三個(gè)月的時(shí)間,最終完成了畢業(yè)論文的制作與說(shuō)明書(shū)的撰寫(xiě)。通過(guò)本次的設(shè)計(jì)使我比較系統(tǒng)的掌握了單片機(jī)的設(shè)計(jì)思想和方法。對(duì)單片機(jī)的一些功以及結(jié)構(gòu)都得到了相應(yīng)的了解和學(xué)習(xí)。在河南理工大學(xué)上學(xué)的這兩年讓我深刻意識(shí)到了學(xué)習(xí)的重要性,剛開(kāi)始選題目時(shí)頭腦一片空白,根本不知道自己擅長(zhǎng)什么,也不知道該如何下手。最后向王老師咨詢了一下,老師根據(jù)我的個(gè)人能力給我提出了一些建議和要求,最終確定了此次題目。既然確定了題目,接下來(lái)首先要做的便是開(kāi)始查閱文獻(xiàn),翻看書(shū)籍,借鑒一下往年的優(yōu)秀范文,開(kāi)始進(jìn)行粗略的定一下大框架。所謂知識(shí)融會(huì)貫通,當(dāng)然少不了理論聯(lián)系實(shí)踐;就連毛爺爺也曾說(shuō)過(guò):實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn);實(shí)踐的同時(shí)也提高了了我的思維能力與邏輯能力。為了更清楚的了解單片機(jī),我買(mǎi)了郭天祥的51單片機(jī)C語(yǔ)言教程這本書(shū),配以開(kāi)發(fā)板進(jìn)行更深入的了解;還簡(jiǎn)單的學(xué)習(xí)了Keil軟件,STC燒寫(xiě)等。本次畢業(yè)設(shè)計(jì),使我對(duì)單片機(jī)的功能與結(jié)構(gòu)都有了更進(jìn)一步的了解與學(xué)習(xí),也使我對(duì)keil軟件和STC軟件以及程序的編寫(xiě)有了進(jìn)一步的學(xué)習(xí)和掌握。并且使我對(duì)程序的編寫(xiě)有了更確切的掌握。所以說(shuō)對(duì)于這些單片機(jī)系統(tǒng)我們只有自己切身實(shí)際的動(dòng)手去做了,才會(huì)有深刻的理解和收獲。參考文獻(xiàn)[1]李瑜芳.傳感器原理及其應(yīng)用[M].電子科技大學(xué)出版社.2008.2第2版[2]李剛,林凌等.傳感器及其接口電路應(yīng)用300問(wèn)[M].電子工業(yè)出版社.2015.1第1版[3]郭天祥.新51單片機(jī)單片機(jī)C語(yǔ)言教程[M].電子工業(yè)出版社[4]孫俊喜.LCD驅(qū)動(dòng)電路、驅(qū)動(dòng)程序設(shè)計(jì)及典型應(yīng)用[M].人民郵電出版社[5]余發(fā)山,王福忠,楊凌霄,王莉等.微機(jī)原理與單片機(jī)接口技術(shù)[M].煤炭工業(yè)出版社.2013.8[6]劉篤仁.傳感器原理及應(yīng)用技術(shù)[M].西安電子科技大學(xué)出版社[7]廖惜春主編.模擬電子技術(shù)基礎(chǔ)[M].華中科技大學(xué)出版社.2008[8]王增福.新編常用穩(wěn)壓電源電路.電[M]子工業(yè)出版社[9]李光飛,胡佳文編.單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)[M].北京航空航天大學(xué)出版社.2004:105-125[10]程詠梅,夏雅琴,尚嵐等.人體脈搏波信號(hào)檢測(cè)系統(tǒng)[J].北京生物醫(yī)學(xué)工程.2006(05)[11]胡偉,季曉衡編.單片機(jī)C程序設(shè)計(jì)及應(yīng)用[M].人民郵電出版社.2004:20-75.[12]黃劼,徐曉秋編.單片機(jī)原理及接口技術(shù)[M].國(guó)防工業(yè)出版社.2008:150-213[13]謝自美主編.電子線路設(shè)計(jì)[M]第三版.華中科技大學(xué)出版社.2006:23-80[14]劉丕順主編.C語(yǔ)言寶典[M].電子工業(yè)出版社.2011:3-350[15]MurphyJohnC,MorrisonKatherine.

JournalofClinicalHypertension,2011,Vol.13(7),pp.497-505[16]ChouHsi-Chiang,LinKai-Jie,FangYun-Xiang,LiouJia-Fu.Technologyandhealthcare:officialjournaloftheEuropeanSocietyforEngineeringandMedicine,2015,Vol.24Suppl1,pp.S83-95[17]沈德金,陳粵初編.單片機(jī)接口電路與應(yīng)用程序?qū)嵗齕M].北京航天航空大學(xué)出版社.1990:1-50[18]周立功編.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M].北京航空航天大學(xué)出版社.2006:5-38[19]胡偉,季曉衡編.單片機(jī)C程序設(shè)計(jì)及應(yīng)用[M].人民郵電出版社.2004:20-75[20]YU-CHENGLIUANDGLENNA.GIBSON.MICROCOMPUTERSYSTEMS.PRENTICE-HALL.c1984.:15-30附錄一:系統(tǒng)原理圖附錄二:源程序#include<reg52.h>#include<intrins.h> // 包含頭文件#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlong //宏定義#defineLCD_DATAP0 //定義P0口為L(zhǎng)CD_DATAsbitLCD_RS=P2^5;sbitLCD_RW=P2^6;sbitLCD_E=P2^7; //定義LCD控制引腳sbitXintiao=P3^2; //脈搏檢測(cè)輸入端定義sbitspeaker=P2^4; //蜂鳴器引腳定義voiddelay5ms(void);//誤差0usvoidLCD_WriteData(ucharLCD_1602_DATA); /********LCD1602數(shù)據(jù)寫(xiě)入***********/voidLCD_WriteCom(ucharLCD_1602_COM); /********LCD1602命令寫(xiě)入***********/voidlcd_1602_word(ucharAdress_Com,ucharNum_Adat,uchar*Adress_Data);/*1602字符顯示函數(shù),變量依次為字符顯示首地址,顯示字符長(zhǎng)度,所顯示的字符*/voidInitLcd();//液晶初始化函數(shù)voidTim_Init();ucharXintiao_Change=0; uintXintiao_Jishu;ucharstop;ucharView_Data[3];ucharView_L[3];ucharView_H[3];ucharXintiao_H=100; //脈搏上限ucharXintiao_L=40; //脈搏下限ucharKey_Change;ucharKey_Value; //按鍵鍵值ucharView_Con; //設(shè)置的位(0正常工作,1設(shè)置上限,2設(shè)置下限)ucharView_Change;voidmain() //主函數(shù){ InitLcd(); Tim_Init(); lcd_1602_word(0x80,16,"HeartRate:"); //初始化顯示 TR0=1; TR1=1; //打開(kāi)定時(shí)器 while(1) //進(jìn)入循環(huán) { if(Key_Change) //有按鍵按下并已經(jīng)得出鍵值 { Key_Change=0; //將按鍵使能變量清零,等待下次按鍵按下 View_Change=1; switch(Key_Value) //判斷鍵值 { case1: //設(shè)置鍵按下 { View_Con++; //設(shè)置的位加 if(View_Con==3) //都設(shè)置好后將此變量清零 View_Con=0; break; //跳出,下同 } case2: //加鍵按下 { if(View_Con==1) //判斷是否設(shè)置上限 { if(Xintiao_H<150) //上限數(shù)值小于150 Xintiao_H++; //上限+ } if(View_Con==2) //判斷是否設(shè)置下限 { if(Xintiao_L<Xintiao_H-1)//下限值小于上限-1(下限值不能超過(guò)上限) Xintiao_L++; //下限值加 } break; } case3: //減鍵按下 { if(View_Con==1) //設(shè)置上限 { if(Xintiao_H>Xintiao_L+1)//上限數(shù)據(jù)大于下限+1(同樣上限值不能小于下限) Xintiao_H--; //上限數(shù)據(jù)減 } if(View_Con==2) //設(shè)置下限 { if(Xintiao_L>30) //下限數(shù)據(jù)大于30時(shí) Xintiao_L--; //下限數(shù)據(jù)減 } break; } } } if(View_Change)//顯示變量 { View_Change=0;//變量清零 if(stop==0) //心率正常時(shí) { if(View_Data[0]==0x30)//最高位為0時(shí)不顯示 View_Data[0]=''; } else //心率不正常(計(jì)數(shù)超過(guò)5000,也就是兩次信號(hào)時(shí)間超過(guò)5s)不顯示數(shù)據(jù) { View_Data[0]=''; View_Data[1]=''; View_Data[2]=''; } switch(View_Con) { case0://正常顯示 { lcd_1602_word(0x80,16,"HeartRate:");//顯示一行數(shù)據(jù) lcd_1602_word(0xc0,16,"");//顯示第二行數(shù)據(jù) lcd_1602_word(0xcd,3,View_Data); //第二行顯示心率 break; } case1://設(shè)置下限時(shí)顯示 { lcd_1602_word(0x80,16,"HeartRate:");//第一行顯示心率 lcd_1602_word(0x8d,3,View_Data); View_L[0]=Xintiao_L/100+0x30; //將下限數(shù)據(jù)拆字 View_L[1]=Xintiao_L%100/10+0x30; View_L[2]=Xintiao_L%10+0x30; if(View_L[0]==0x30) //最高位為0時(shí),不顯示 View_L[0]=''; lcd_1602_word(0xC0,16,"WarningL:");//第二行顯示下限數(shù)據(jù) lcd_1602_word(0xCd,3,View_L);, break; } case2://設(shè)置上限時(shí)顯示(同上) { lcd_1602_word(0x80,16,"HeartRate:"); lcd_1602_word(0x8d,3,View_Data); View_H[0]=Xintiao_H/100+0x30; View_H[1]=Xintiao_H%100/10+0x30; View_H[2]=Xintiao_H%10+0x30; if(View_H[0]==0x30) View_H[0]=''; lcd_1602_word(0xC0,16,"WarningH:"); lcd_1602_word(0xCd,3,View_H); break; } } } }}voidTime1()interrupt3 //定時(shí)器1服務(wù)函數(shù){ staticucharKey_Con,Xintiao_Con; TH1=0xd8; //10ms TL1=0xf0; //重新賦初值 switch(Key_Con)//無(wú)按鍵按下時(shí)此值為0 { case0: //每10ms掃描此處 { if((P1&0x07)!=0x07)//掃描按鍵是否有按下 { Key_Con++; //有按下此值加1,值為1 } break; } case1: //10ms后二次進(jìn)入中斷后掃描此處(Key_Con為1) { if((P1&0x07)!=0x07)//第二次進(jìn)入中斷時(shí),按鍵仍然是按下(起到按鍵延時(shí)去抖的作用) { Key_Con++; //變量加1,值為2 switch(P1&0x07)//判斷是哪個(gè)按鍵按下 { case0x06:Key_Value=1;break; //判斷好按鍵后將鍵值賦值給變量Key_Value case0x05:Key_Value=2;break; case0x03:Key_Value=3;break; } } else //如果10ms時(shí)沒(méi)有檢測(cè)到按鍵按下(按下時(shí)間過(guò)短) { Key_Con=0; //變量清零,重新檢測(cè)按鍵 } break; } case2: //20ms后檢測(cè)按鍵 { if((P1&0x07)==0x07) //檢測(cè)按鍵是否還是按下?tīng)顟B(tài) { Key_Change=1; //有按鍵按下使能變量,(此變量為1時(shí)才會(huì)處理鍵值數(shù)據(jù)) Key_Con=0; //變量清零,等待下次有按鍵按下 } break; } } switch(Xintiao_Con)//此處與上面按鍵的檢測(cè)類似 { case0: //默認(rèn)Xintiao_Con是為0的 { if(!Xintiao)//每10ms(上面的定時(shí)器)檢測(cè)一次脈搏是否有信號(hào) { Xintiao_Con++;//如果有信號(hào),變量加一,程序就會(huì)往下走了 } break; } case1: { if(!Xintiao) //每過(guò)10ms檢測(cè)一下信號(hào)是否還存在 { Xintiao_Con++;//存在就加一 } else { Xintiao_Con=0;//如果不存在了,檢測(cè)時(shí)間很短,說(shuō)明檢測(cè)到的不是脈搏信號(hào),可能是其他干擾,將變量清零,跳出此次檢測(cè) } break; } case2: { if(!Xintiao) { Xintiao_Con++;//存在就加一 } else { Xintiao_Con=0;//如果不存在了,檢測(cè)時(shí)間很短,說(shuō)明檢測(cè)到的不是脈搏信號(hào),可能是其他干擾,將變量清零,跳出此次檢測(cè) } break; } case3: { if(!Xintiao) { Xintiao_Con++;//存在就加一 } else { Xintiao_Con=0;//如果不存在了,檢測(cè)時(shí)間很短,說(shuō)明檢測(cè)到的不是脈搏信號(hào),可能是其他干擾,將變量清零,跳出此次檢測(cè) } break; } case4: { if(Xintiao)//超過(guò)30ms一直有信號(hào),判定此次是脈搏信號(hào),執(zhí)行以下程序 { if(Xintiao_Change==1)//心率計(jì)原理為檢測(cè)兩次脈沖間隔時(shí)間計(jì)算心率,變量Xintiao_Change第一次脈沖時(shí)為0的,所有走下面的else,第二次走這里 { if(60000/Xintiao_Jishu>200) { View_Data[0]='-'; View_Data[1]='-'; View_Data[2]='-'; speaker=1; //不響 } else { View_Data[0]=(60000

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論