




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