基于at89s51單片機(jī)的電子血壓計設(shè)計畢業(yè)設(shè)計_第1頁
基于at89s51單片機(jī)的電子血壓計設(shè)計畢業(yè)設(shè)計_第2頁
基于at89s51單片機(jī)的電子血壓計設(shè)計畢業(yè)設(shè)計_第3頁
基于at89s51單片機(jī)的電子血壓計設(shè)計畢業(yè)設(shè)計_第4頁
基于at89s51單片機(jī)的電子血壓計設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEIV基于AT89S51單片機(jī)的電子血壓計設(shè)計摘要電子血壓計具有易攜帶、精度高、智能化等特點,隨著現(xiàn)代電子技術(shù)的發(fā)展,電子血壓計呈現(xiàn)出家用化的趨勢。然而傳統(tǒng)單片機(jī)的電路設(shè)計復(fù)雜、穩(wěn)定性不好、測量精度不高,因此本設(shè)計首先從血壓測量方法切入設(shè)計出電路系統(tǒng),然后以AT89S51單片機(jī)為控制核心,外圍硬件電路由氣體壓力傳感器US9111、串行A/D轉(zhuǎn)換芯片ADC0832、LCD驅(qū)動芯片和其他模擬電路組成,同時采用KeiluVision2進(jìn)行C語言編程來使硬件滿足一個簡易血壓計的功能。本文所設(shè)計的血壓計穩(wěn)定性高,測量速度快,測量精度高,測試結(jié)果基本與水銀血壓計一致。另外,本系統(tǒng)的設(shè)計能滿足人體健康測量需要,對提高日常生活質(zhì)量有很多好處,具有很高的市場價值。關(guān)鍵詞:單片機(jī)血壓計傳感器精度

TheDesignofElectronicSphygmomanometerBasedonAT89S51MCUAbstractTheelectronicbloodpressuremonitoriseasytobecarried,highaccuracy,intelligentfeatures.Withthedevelopmentofmodernelectronictechnology,electronicbloodpressuremonitorshowsthetrendofthehousehold.Thecircuitofthetraditionalmicrocontroller’sdesignprocessiscomplex,andthestabilityisnotgood,aswellasthatthemeasurementaccuracyisnothigh.Therefore,tosumup,themethodofhowtodesignthecircuitsystemisthebloodpressuremeasurementbriefly,andthenaroundtheAT89S51microcontrollerdevelopmentplatform,composedoftheperipheralhardwarecircuitbythegaspressuresensorUS9111,theserialA/DconversionchipADC0832,theLCDdriverchipandotheranalogcircuitsunderthepreparationofKeiluVision2theCprogramminglanguage.Thissphygmomanometerdesignedperfectstability,excellentspeed,highaccuracy,andaboveall,thetestresultsarebasicallyconsistentwiththemercurysphygmomanometer.Inaddition,thedesignofthissystemmeetstheneedsofthehumanhealthmeasurement.Moreover,therearemanybenefitstoimprovethequalityofdailylife,andofcourseithasaveryhighmarketvalue.KeyWords:MCU;sphygmomanometer;sensor;accuracy;

目錄1.緒論 11.1課題背景與現(xiàn)實意義 11.2血壓計發(fā)展現(xiàn)狀 21.3本文的研究內(nèi)容 32.設(shè)計要求及方案論證 42.1血壓測量原理 42.2設(shè)計要求 52.3設(shè)計方案 52.4器件介紹 62.4.1AT89S51單片機(jī)簡介 62.4.2模數(shù)轉(zhuǎn)換器ADC0832簡介 72.4.3壓力傳感器(US9111-006-D)簡介 92.4.4運(yùn)算放大器OP07和AD620簡介 103.硬件電路設(shè)計 113.1數(shù)據(jù)處理模塊 113.2模數(shù)轉(zhuǎn)換模塊 123.31602點陣液晶顯示 123.4氣體壓力傳感器電路模塊 143.5血壓信號二次放大電路 153.6濾波電路 153.7氣泵和氣閥驅(qū)動電路 174.軟件設(shè)計 184.1數(shù)據(jù)處理模塊 184.2A/D轉(zhuǎn)換模塊 194.3液晶顯示模塊 205.系統(tǒng)性能測試 23結(jié)語 24參考文獻(xiàn) 25附錄 26附1實物圖 26附2部分程序代碼 27致謝 32PAGE321.緒論1.1課題背景與現(xiàn)實意義伴隨著單片機(jī)的不斷升級,許多智能型電器設(shè)計都加入了單片機(jī),單片機(jī)也成為許多產(chǎn)品不可或缺的一部分,因此,現(xiàn)在的電子產(chǎn)品的開發(fā)單片機(jī)為核心。電子血壓計就是電子產(chǎn)品中一個典型例子,目前,電子血壓計在日常生活中得到越來越廣泛的使用,它操作簡單,使用者能迅速掌握其操作要點,使用方便,冬天無需使用者脫衣,并且測量時間段,極大的提高了工作效率。而且可自動加壓,排氣,直接顯示測量值,不要操作者熟練程度,聽覺和環(huán)境等人為因素的干擾。在醫(yī)療保健中準(zhǔn)確地提供血壓信息是十分重要的,而現(xiàn)代人患血管疾病呈現(xiàn)低齡化趨勢,如果經(jīng)常測量自己的血壓,就可以做到對自己的健康情況心里有數(shù),早期發(fā)現(xiàn)問題,得到及時的治療效果。單片機(jī)是電子血壓開發(fā)的平臺,它具有體積小、功耗低、功能強(qiáng)、穩(wěn)定、可靠、使用靈活、性能、價格比高等顯著特點。中國從80年代起開始了單片機(jī)的熱潮,三十多年過去了,單片機(jī)成為智能電器的一個不可缺少的部件,單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。單片機(jī)全稱為單片微型計算機(jī)(SingleChipMicrocomputer)。它是將計算機(jī)的基本部件微型化并集成到一塊芯片上的微型計算機(jī),通常片內(nèi)都含有CPU、ROM、RAM、并行I/O、串行I/O、定時器/計數(shù)器、中斷控制、系統(tǒng)時鐘及系統(tǒng)總線等。如電機(jī)控制,UPS控制、信號處理等;內(nèi)容較多、功能復(fù)雜的系統(tǒng)多采用嵌入式操作系統(tǒng),單片機(jī)在各個領(lǐng)域都得到了廣泛而又充分的應(yīng)用,較微處理器更具個性的發(fā)展趨勢,得到了廣大用戶的認(rèn)可[1]。單片機(jī)全稱為單片微型計算機(jī)(SingleChipMicrocomputer)。它主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司,該公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢,將MCS-51從單片微型計算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時,不要忘記Intel和Philips的歷史功績。單片機(jī)是嵌入式系統(tǒng)的獨立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計會有較大的發(fā)展。因此,對單片機(jī)的理解可以從單片微型計算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用Windows和Linux操作系統(tǒng)。而51單片機(jī)是初學(xué)者基礎(chǔ)入門的一種單片機(jī),現(xiàn)在使用的型號主要有ATMEL公司89C51、89C52、89C2051;INTEL公司的80C31、80C51、87C51和其它如Philips、華邦等公司的許多產(chǎn)品。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的[1]??傊?,單片機(jī)開創(chuàng)了現(xiàn)代電子系統(tǒng)時代,成為主流電子系統(tǒng)。它帶動了整個電子產(chǎn)業(yè)的發(fā)展,造就新一代電子精英,單片機(jī)將帶你進(jìn)入智能化電子領(lǐng)域和計算機(jī)工程控制領(lǐng)域,該設(shè)計對自己從事相關(guān)領(lǐng)域具有重要意義。1.2血壓計發(fā)展現(xiàn)狀電子血壓計從使用原理上為兩類:一是聽診法(又稱柯氏音法)電子血壓計,目前只有極少數(shù);二是示波法(又稱振蕩法)電子血壓計,是目前的主流血壓計。電子血壓計有臂式、腕式之分,其技術(shù)經(jīng)歷了最原始的第一代、第二代(臂式使用)、第三代(腕式使用)的發(fā)展,具體介紹如下所示[2]。第一代電子血壓計(G1-NIBPM)使用MWD技術(shù)(減壓時測量)。電路內(nèi)部有快速加壓氣閥、電子快速排氣閥、機(jī)械式定速排氣閥和氣壓壓力傳感器等主要器件。第一代電子血壓計有三個顯著特征:一是使用了兩個排氣閥:電子快速排氣閥和機(jī)械式定速排氣閥;二是初始加壓壓力大多設(shè)定在200mmHg,強(qiáng)調(diào)加壓速度要快,9~10秒內(nèi)達(dá)到300mmHg等;三是加壓剛停止時,放氣速度超過7mmHg/s,2~3秒內(nèi)后才能大致穩(wěn)定為2~7mmHg/s。當(dāng)快速加壓到某一壓力時,通過一個機(jī)械式定速排氣閥按2~7mmHg/s的速度放氣,并在此放氣過程中進(jìn)行血壓測量。第一代電子血壓計在原理上存在缺陷,由于機(jī)械式定速排氣閥的不穩(wěn)定性,客觀上提高血壓初始壓力。用戶使用時,手臂有明顯壓迫感,同時由于機(jī)械式定速排氣閥不穩(wěn)定性,測量結(jié)果有時也會不穩(wěn)定。當(dāng)然,目前大部分國產(chǎn)血壓計,初始壓力大多設(shè)在190~200mmHg,一定程度上可以克服加壓速度造成測量不穩(wěn)定問題。第二代電子血壓計(G2-NIBPM)和第一代一樣使用MWD技術(shù)(減壓時測量)。使用的主要元器件有加壓氣泵、電子控制排氣閥和氣體壓力傳感器。與第一代電子血壓計相比,第二代電子血壓計只使用一個排氣閥:電子控制排氣閥,同時用于定速排氣及測量結(jié)束時的快速排氣。當(dāng)然第二代還有其他優(yōu)點,如在加壓過程中對血壓進(jìn)行一定程度的粗測量,用于決定加壓壓力,且在放氣開始就穩(wěn)定在3~4mmHg/s。這一代電子血壓計解決了上一代存在的原理性缺陷,真正做到了定速排氣,測量結(jié)果也相當(dāng)穩(wěn)定。第三代電子血壓計(G3-NIBPM)與前兩代不同,它采用MWI技術(shù)(加壓時測量)。它有伺服加壓氣泵、電子控制排氣閥和氣壓壓力傳感器等主要元器件組成。第三代在前兩代的基礎(chǔ)上增加了新功能,就是使用伺服加壓氣泵控制加壓速度,在加壓過程中測量血壓。電子血壓計經(jīng)歷了三代的發(fā)展,目前國內(nèi)一些制造商,其技術(shù)水平都處于第一代,而且所有的方案提供商手上也只有這一代的技術(shù)方案;先進(jìn)的電子血壓計技術(shù)都掌握在國外,這些公司主要有:歐姆龍、松下、愛安德、優(yōu)勝醫(yī)學(xué)和金億帝。1.3本文的研究內(nèi)容本課題的內(nèi)容就是要用AT89S51單片機(jī)為核心器件,通過C語言編程實現(xiàn)一個簡單實用的電子血壓計。首先根據(jù)電子血壓計的具體性能與要求將其分為A/D轉(zhuǎn)換、數(shù)據(jù)處理和數(shù)據(jù)顯示三大模塊,采用C語言對各個模塊進(jìn)行編程處理,然后運(yùn)用Keiluvision2軟件進(jìn)行軟件仿真測試,最后通過ISP在線燒寫器下載到實物電子血壓計上進(jìn)行調(diào)試,實現(xiàn)血壓測量功能。本課題的主要工作首先是熟悉單片機(jī)和軟件的使用;再是查閱資料進(jìn)行方案設(shè)計;最后完成硬件電路設(shè)計和軟件編寫。本課題各章內(nèi)容安排如下所示。第一章為基于AT89S51單片機(jī)的電子血壓計設(shè)計課題的概述。第二章闡述設(shè)計要求、方案論證及主要元器件功能介紹。第三章為硬件電路設(shè)計。第四章為軟件設(shè)計。第五章為系統(tǒng)性能測試。2.設(shè)計要求及方案論證2.1血壓測量原理血壓的概念是指血管內(nèi)的血液作用于血管管壁所產(chǎn)生的側(cè)壓力,也即血管側(cè)面單位面積所承受的壓力,通常以毫米水銀柱(mmHg)為單位,1mmHg相當(dāng)于133Pa或0.133kPa。它是人體健康的一項重要指標(biāo),在醫(yī)學(xué)檢測中精確測量血壓是十分有必要的。一般醫(yī)院通常所使用的是水銀血壓計,它是基于柯氏法,醫(yī)生使用專業(yè)醫(yī)用聽診器聽到動脈血管產(chǎn)生的不同聲音來判斷收縮和舒張壓。但這種方法存在一些不可避免的缺點:一是確定舒張壓比較困難;二是使用時僅憑人的視覺和聽覺,帶有個人主觀因素。雖然以前出現(xiàn)過各種基于柯氏法電子血壓計,但是還是不能克服其自身的缺點。目前,醫(yī)學(xué)上大多數(shù)電子血壓計都采用示波法,示波法電子血壓計是目前的主流血壓計[3]。示波法的測量過程與柯氏法類似,仍采用充氣袖套來阻斷上臂動脈血流。由于心搏的血液動力學(xué)作用,在氣袖壓力上將重疊與心搏同步的壓力波動,即脈搏波。當(dāng)氣袖壓力遠(yuǎn)高于收縮壓時,脈搏波消失。隨著袖套壓力下降,脈搏波開始出現(xiàn)。當(dāng)袖套壓力從高于收縮壓降到收縮壓以下時,脈搏波會突然增大。到平均壓時達(dá)到最大值。然后又隨袖套壓力下降而衰減。示波法血壓測量就是根據(jù)脈搏波振幅與氣袖壓力之間關(guān)系來估計血壓。與脈搏波最大值對應(yīng)的是平均值,收縮壓和舒張壓分別用對應(yīng)脈搏波最大振幅的比例來確定。收縮壓的確定采用最大振幅法,即在放氣過程中脈搏波幅度包絡(luò)線的上升段,當(dāng)某一個脈搏波的幅度Ui與最大幅度Um(平均壓)之比剛剛大于Ks(Ks為經(jīng)驗參數(shù))時,就認(rèn)為此時對應(yīng)的氣袖壓力為收縮壓。舒張壓的確也是用最大振幅法來判定的,不過是在脈搏波幅度包絡(luò)線的下降段,當(dāng)某一個脈搏波的幅度Ui與最大幅度Um(平均壓)之比剛剛小于Kd(Kd為經(jīng)驗參數(shù))時,就認(rèn)為此時對應(yīng)的氣袖壓力為舒張壓。圖2.1袖帶壓力、脈搏波形袖帶氣壓和脈搏波經(jīng)信號處理模塊的處理后,得出如圖2.1數(shù)據(jù)。圖中的下方為被測者的脈搏波,上方為血壓計升壓和降壓過程中的袖帶壓力。在此基礎(chǔ)上分析信號,提供收縮壓、舒張壓和平均壓的計算。2.2設(shè)計要求本設(shè)計以AT89S51單片機(jī)為控制核心,功能是實現(xiàn)人體血壓的精確測量,并且采用了合適的人機(jī)接口,基本功能框圖如圖2.2所示。設(shè)計的基本功能要求如下所示。(1)血壓測量:測量方式為上臂式。(2)液晶顯示:選擇1602點陣液晶顯示屏顯示人體血壓信息。(3)按鍵控制:按鍵主要由開始鍵和復(fù)位鍵兩個按鍵組成。開始鍵控制測量開始。復(fù)位鍵使顯示數(shù)據(jù)復(fù)位,為再次測量血壓作準(zhǔn)備。電子血壓計電子血壓計血壓測量液晶顯示按鍵圖2.2電子血壓計基本功能框圖上述是電子血壓計的基本組成和功能,是一個簡易實用的電子血壓計。市場上的血壓計除了具備基本功能外,還可能具有其他附加功能,如溫度測量和時鐘功能等。2.3設(shè)計方案由于現(xiàn)代化的電子血壓計功能不斷增加,在給我們提供各種服務(wù)功能的同時,也使用愈加繁瑣,對此,我們可以根據(jù)自己的需求設(shè)計簡易電子血壓計。本次設(shè)計以AT89S51單片機(jī)為控制核心,并結(jié)合C語言編程來設(shè)計電子血壓計。整個系統(tǒng)分為硬件和軟件兩個部分,硬件部分主要由單片機(jī)最小系統(tǒng),壓力傳感器,放大電路,A/D轉(zhuǎn)換和顯示部分組成。軟件部分主要由數(shù)據(jù)處理模塊,A/D轉(zhuǎn)換模塊和顯示模塊組成。系統(tǒng)中人體上臂血壓經(jīng)過壓力傳感器,產(chǎn)生含有脈搏波的袖帶壓力信號。袖帶的壓力為直流電壓信號,脈搏波為頻率小于2Hz的低頻電壓信號。含有脈搏波的袖帶壓力信號經(jīng)過一次放大后,袖帶壓力信號傳送至ADC0832通道0進(jìn)行模數(shù)轉(zhuǎn)換,采集袖帶氣壓進(jìn)行。為了得到脈搏波信號,必須濾除傳感器產(chǎn)生的直流分量。然后再對脈搏波信號進(jìn)行二次放大濾波,最后接到ADC0832通道1進(jìn)行模數(shù)轉(zhuǎn)換。經(jīng)A/D轉(zhuǎn)換后通過顯示電路進(jìn)行輸出顯示。該血壓計能正確的測量和顯示人體血壓,血壓數(shù)據(jù)能正確顯示。電子血壓計總體設(shè)計框圖如圖2.3所示。圖2.3電子血壓計總體設(shè)計框圖2.4器件介紹2.4.1AT89S51單片機(jī)簡介AT89S51是一個低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP可反復(fù)擦寫1000次的Flash只讀程序存儲器。器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu)。芯片內(nèi)集成通用8位中央處理器和ISPFlash存儲單元,功能強(qiáng)大的微型計算機(jī)AT89S51成為許多嵌入式控制應(yīng)用系統(tǒng)的控制核心。AT89SXX系列單片機(jī)實現(xiàn)了ISP下載功能,因此取代89CXX系列的下載方式,正因為這樣,ATMEL公司已經(jīng)停產(chǎn)了89CXX系列的單片機(jī),現(xiàn)在市面上的AT89CXX多是停產(chǎn)前的庫存產(chǎn)品。所以綜合考慮采用ATMEL公司的AT89S51芯片[4]。圖2.4.1為AT89S51單片機(jī)系統(tǒng)結(jié)構(gòu)框圖,由圖可以看出,單片機(jī)內(nèi)部主要包含下列幾個部件所示。圖2.4.1AT89S51單片機(jī)系統(tǒng)結(jié)構(gòu)框圖8位CPU。片內(nèi)帶震蕩器,震蕩頻率f范圍為1.2~12MHz:可有時鐘輸出。128個字節(jié)片內(nèi)數(shù)據(jù)存儲器。4K字節(jié)片內(nèi)程序存儲器。程序存儲器,尋址范圍為64K字節(jié)。片外數(shù)據(jù)存儲器,尋址范圍為64K字節(jié)。4個8位并行I/O接口:P0、P1、P2、P3。2個16位定時器/計數(shù)器。中斷系統(tǒng)有5個中斷源。2.4.2模數(shù)轉(zhuǎn)換器ADC0832簡介ADC0832是美國國家半導(dǎo)體公司生產(chǎn)的一種具有8位分辨率、雙通道的A/D轉(zhuǎn)換芯片,如圖2.4.2所示。由于它體積小,兼容性強(qiáng),性價比高深受單片機(jī)愛好者及企業(yè)的好評,其目前已經(jīng)有很高的普及率。學(xué)習(xí)并使用ADC0832可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機(jī)開發(fā)和應(yīng)用技術(shù)水平的提高。ADC0832具有以下特點[5]。8位分辨率。雙通道A/D轉(zhuǎn)換。輸入輸出電平與TTL/CMOS相兼容。5V電源供電時輸入電壓在0~5V之間。工作頻率為250KHZ,轉(zhuǎn)換時間為32μS。一般功耗僅為15mW。8P、14P-DIP(雙列直插)、PICC多種封裝。商用級芯片溫寬為0℃到+70℃,工業(yè)級芯片溫寬為-40℃到+85℃。圖2.4.2模數(shù)轉(zhuǎn)換器ADC0832芯片接口說明如下所示。CS片選使能,低電平芯片使能。CH0模擬輸入通道0,或作為IN+/-使用。CH1模擬輸入通道1,或作為IN+/-使用。GND芯片參考0電位(地)。DI數(shù)據(jù)信號輸入,選擇通道控制。DO數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。CLK芯片時鐘輸入。Vcc/ref電源輸入及參考電壓輸入(復(fù)用)。ADC0832為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級,適用于一般模擬量轉(zhuǎn)換。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉(zhuǎn)換時間僅為32μS,具有雙數(shù)據(jù)輸出,因此可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨立的芯片始能輸入,使多器件掛接和處理器控制變的更加方便。通過DI數(shù)據(jù)輸入端,可以輕易的實現(xiàn)通道功能的選擇[5]。正常情況下ADC0832與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但是由于DO端與DI端在通信時并未同時有效與單片機(jī)的接口實現(xiàn)數(shù)據(jù)傳輸,所以電路設(shè)計時可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時其CS輸入端應(yīng)為高電平,此時芯片禁用,CLK和DO/DI的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時,須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時芯片開始轉(zhuǎn)換工作,同時由處理器向芯片時鐘輸入端CLK輸入時鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號。在第1時鐘脈沖的下沉之前DI端必須是高電平,表示起始信號在第2、3個脈沖下沉之前DI端應(yīng)輸入2位數(shù)據(jù)用于選擇通道功能[6],其功能項見表2.4.1和表2.4.2。表2.4.1單端輸入模式MUXAddressChannel#SGL/DIFODD/SIGN0110+11+表2.4.2差分輸入模式MUXAddressChannel#SGL/DIFODD/SIGN0100+-01-+如表2.4.1和表2.4.2所示,當(dāng)此2位數(shù)據(jù)為“1”、“0”時,只對CH0進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“1”、“1”時,只對CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“0”、“0”時,將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。當(dāng)2位數(shù)據(jù)為“0”、“1”時,將CH0作為負(fù)輸入端IN-,CH1作為正輸入端IN+進(jìn)行輸入[6]。到第3脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4脈沖下沉開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個脈沖下沉DO端輸出下一位數(shù)據(jù)。直到第11個脈沖時發(fā)出最低位數(shù)據(jù)DATA0,一個字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個相反字節(jié)的數(shù)據(jù),即從第11個字節(jié)的下沉輸出DATD0。隨后輸出8位數(shù)據(jù),到第19沖時數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了[7]。作為單通道模擬信號輸入時,ADC0832的輸入電壓是0~5V且8位分辨率時的電壓精度為19.53mV。果作為由IN+與IN-輸入的輸入時,可是將電壓值設(shè)定在某一個較大范圍之內(nèi),從而提高轉(zhuǎn)換的寬度。但值得注意的是,在進(jìn)行IN+與IN-的輸入時,如果IN-的電壓大于IN+的電壓則轉(zhuǎn)換后的數(shù)據(jù)結(jié)果始終為00H[7]。2.4.3壓力傳感器(US9111-006-D)簡介本設(shè)計選用型號為US9111-006-D作為壓力傳感器。其中006表示量程為5.8PSI(磅/平方英寸),D表示DIPToptube封裝為DIP(雙列直插)與一般的DIP封裝不同,兩列之間的距離比DIP大2.54mm,使用時需要自畫封裝。下面介紹傳感器US111-006-D性能參數(shù)如下所示。壓力范圍:0~5.8PSIG,15PSIG,100PSIG。過載能力:2X(200%)。測量介質(zhì):無腐蝕、非導(dǎo)電氣體。工作方式:表壓。工作電壓:5VDC或1.5mA。工作溫度范圍:-40~125℃。圖2.4.3US111-006-D內(nèi)部結(jié)構(gòu)引腳說明:US111-006-D內(nèi)部結(jié)構(gòu)如圖2.4.3所示,其工作原理與電阻橋相同。圖中1和6腳接地,3腳接激勵源,5腳接正電壓輸出,2腳為負(fù)電壓輸出。激勵源選用恒壓5V~10V供電。設(shè)計中選用DC5V電壓。此型號產(chǎn)品穩(wěn)定性強(qiáng),一致性好,價格便宜,主要應(yīng)用于電子血壓計,呼吸機(jī),麻醉機(jī),醫(yī)療儀器,家用吸塵器,消費(fèi)性電子,胎壓計,輪胎壓力檢測系統(tǒng)等領(lǐng)域。2.4.4運(yùn)算放大器OP07和AD620簡介OP07芯片是一種低噪聲,長期穩(wěn)定的雙極性運(yùn)算放大器集成電路,其引腳圖如圖2.4.4所示。由于OP07具有非常低的輸入失調(diào)電壓(對于OP07A最大為25μV),所以O(shè)P07在很多應(yīng)用場合不需要額外的調(diào)零措施。OP07同時具有輸入偏置電流低(OP07A為±2nA)和開環(huán)增益高(對于OP07A為300V/mV)的特點,這種低失調(diào)、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設(shè)備和放大傳感器的微弱信號等方面。OP07芯片性能參數(shù)如下所示。超低偏移:150μV最大。低輸入偏置電流:1.8nA。低失調(diào)電壓漂移:0.5μV/℃。超穩(wěn)定,時間:2μV/month最大。高電源電壓范圍:±3V至±22V。圖2.4.4運(yùn)算放大器OP07圖2.4.5運(yùn)算放大器AD620AD620是一款低成本、高精度儀表放大器,僅需要一個外部電阻來設(shè)置增益,引腳圖如圖2.4.5所示,增益范圍為1至10000。此外,AD620采用8引腳SOIC和DIP封裝,尺寸小于分立電路設(shè)計,并且功耗更低,因而非常適合電池供電及便攜式應(yīng)用。AD620具有高精度、失調(diào)電壓低和失調(diào)漂移低等特性,是傳感器接口等精密數(shù)據(jù)采集系統(tǒng)的理想之選。此外,AD620還具有噪聲低、功耗低和輸入偏置電流低等特性,使之非常適用于ECG和無創(chuàng)血壓監(jiān)測儀等醫(yī)療應(yīng)用。

3.硬件電路設(shè)計在第二章已經(jīng)闡述了本設(shè)計由A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊和顯示模塊三部分組成,并且介紹一些主要元器件的性能及功能。本章除具體介紹三大模塊外,還要介紹其它外圍小模塊,如氣體壓力傳感器電路、濾波電路、氣泵和氣閥驅(qū)動電路等。3.1數(shù)據(jù)處理模塊數(shù)據(jù)處理模塊采用AT89S51單片機(jī)工作的最小系統(tǒng),如圖3.1所示。單片機(jī)晶振選用12MHZ。將P0口作為普通I/O口使用時必須加上拉電阻,阻值為4.7K。單片機(jī)是測量和控制的核心,在本設(shè)計中單片機(jī)主要有以下作用。(1)接收按鍵控制并做出處理。(2)讀取模數(shù)轉(zhuǎn)換的血壓信息。(3)處理分析血壓數(shù)據(jù)得出收縮壓和舒張壓及脈搏信息。(4)控制顯示人體的血壓和脈搏信息。圖3.1單片機(jī)最小系統(tǒng)復(fù)位方式采用上電復(fù)位。復(fù)位按鍵電路簡單,在電子設(shè)計電路中廣泛使用。Key1鍵為開始鍵,控制氣泵充氣,完成一次血壓測量。Key2為復(fù)位鍵,當(dāng)一次測量結(jié)束液晶顯示測量結(jié)果后,按下Key2鍵顯示結(jié)果清零,為第二次測量作準(zhǔn)備。Key1和Key2直接接到單片機(jī)的外部中斷,可以在中斷時掃描按鍵以提高CPU的工作效率。存儲擴(kuò)展在一些系統(tǒng)中是不可缺少的的基本組成部分。根據(jù)不同的需求選取不同容量的存儲芯片。24CXX系列IIC接口EEPROM得到使用廣泛。有1K、2K、4K、8K、16K、32K、64K、128K、256Kbit容量可供用戶選擇。該類存儲芯片電路簡單可靠、只占用兩條I/O口線。在本設(shè)計中主要用來存儲模數(shù)轉(zhuǎn)換的血壓直流分量和脈搏波交流分量,提供單片機(jī)進(jìn)行數(shù)據(jù)處理分析。24C256中WP為讀寫屏蔽引腳,WP為高電平時只讀操作,當(dāng)?shù)碗娖綍r可讀可寫。由于IIC總線為開漏時輸出,就是集電極開路,需要上拉電阻構(gòu)成回路[8]。所以SDA、SCL上拉4.7K電阻。3.2模數(shù)轉(zhuǎn)換模塊模數(shù)轉(zhuǎn)換模塊選用8位逐次逼近式A/D轉(zhuǎn)換器ADC0832,如圖3.2所示。由于信號采集包括脈搏信號和袖帶壓力信號。其中袖帶壓力信號為直流電壓信號,脈搏波信號為小于2Hz的交流信號。在不增加器件的情況下,A/D通道至少為兩個。器件ADC0832具有兩個通道,模數(shù)轉(zhuǎn)換周期是32us,與數(shù)據(jù)采集速度和通道數(shù)量相適應(yīng)。另外,ADC0832價格低廉,節(jié)省了系統(tǒng)制作成本。圖3.2模數(shù)轉(zhuǎn)換電路3.31602點陣液晶顯示在日常生活中,顯示器件通常采用液晶顯示。液晶顯示模塊已作為很多電子產(chǎn)品的不可或缺的模塊,如在電子表、計算器、萬用表以及其他很多家用電子產(chǎn)品中都可以看到,顯示的主要以數(shù)字、專用符號和圖形為主。在單片機(jī)的人機(jī)交流過程中,一般輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管和液晶顯示屏。在單片機(jī)系統(tǒng)中作為輸出器件,液晶顯示器主要有以下幾個優(yōu)點[9]。(1)數(shù)字式接口特點液晶顯示器都是數(shù)字式的,與單片機(jī)系統(tǒng)的接口簡單可靠,操作方便。(2)功耗低的特點與其它顯示器件相比較,1602點正液晶顯示屏的功耗主要消耗在驅(qū)動IC上和其內(nèi)部的電極,所以功耗要比其它顯示器少很多。(3)體積小、重量輕的特點液晶顯示屏的原理是通過顯示屏上的電極來控制液晶分子的狀態(tài)來達(dá)到顯示的功能,在重量上比等面積的傳統(tǒng)顯示器要輕得多。(4)顯示質(zhì)量高的特點液晶顯示器每一個點在收到信號后就會保持那種色彩和亮度,恒定發(fā)光,并不像陰極射線管顯示器(CRT)那樣需要不斷刷新。因此,液晶顯示器畫質(zhì)高并且比較穩(wěn)定。液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣不僅可以顯示數(shù)字還可以顯示出圖形。液晶顯示器具有很多優(yōu)點,例如:厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示等。目前它已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動通信工具等眾多領(lǐng)域[9]。一個字符在LCD屏上顯示出來的過程比較復(fù)雜,因為一個字符由6×8或8×8點陣組成,不但找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),而且要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。內(nèi)帶字符發(fā)生器的控制器與其相比較,顯示字符就比較簡單了,可以讓控制器以文本的方式工作,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可[9]。圖3.3.11206點陣液晶顯示屏外觀字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如圖3.3.1。1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中無差別,1602LCD主要技術(shù)參數(shù)如下所示。顯示容量:16×2個字符。芯片工作電壓:4.5~5.5V。工作電流:2.0mA(5.0V)。模塊最佳工作電壓:5.0V。字符尺寸:2.95×4.35(W×H)mm。顯示部分采用1602點陣液晶顯示,圖3.3.2中R17用于液晶對比度的調(diào)節(jié)。1602液晶用于顯示采集到的血壓值。界面設(shè)計是軟件設(shè)計重要部分。界面具有美觀性和實用性。圖3.3.2液晶顯示電路3.4氣體壓力傳感器電路模塊本設(shè)計選取型號US9111-006-D作為氣體壓力傳感器。內(nèi)部原理與普通電阻電橋相同,可以將5V的直流電壓源作為激勵源,也可以選用1.5mA的恒流源作為激勵源。本設(shè)計對激勵源的精度要求比較高,激勵源將直接影響傳感器測量的精度。設(shè)計時可以選用比較精確的電壓基準(zhǔn)源或恒流源來提高測量的準(zhǔn)確性。氣體壓力傳感器在沒有加壓的室溫條件下(5VDC),輸出不為零。在本系統(tǒng)中輸出為11mv左右。所以在兩個輸出端加入10K的電位器進(jìn)行調(diào)零。如圖3.4.1所示R5接到US9111的2、5引腳,電位器引腳接地。在沒有氣泵工作的情況下,調(diào)整電位器R5使AD620輸出為0,這樣就完成了傳感器調(diào)零工作。圖3.4.1傳感器電路型號AD620是儀表放大器,又稱測量儀用放大器,是一類重要的集成運(yùn)算放大器,廣泛應(yīng)用于信號調(diào)理器、精密測量、工業(yè)現(xiàn)場數(shù)據(jù)采集和預(yù)處理等領(lǐng)域。下圖3.4.2為AD620是儀表放大器內(nèi)部結(jié)構(gòu)圖,信號由前兩個運(yùn)放同相端輸入,輸入阻抗非常大。電路高度對稱的差動結(jié)構(gòu)的共模抑制比CMRR很高,有利于抑制共模信號干擾。電路通過Rx調(diào)節(jié)增益,非常方便。一次信號放大采用低價格,高精度儀器用AD620。電路簡單如圖3.4.1所示,只需要外加一個電阻就可以放大1到10000倍。C5、C6、C7為電源旁路電容,一般選用0.1uF、10uF、1uF作為電源旁路電容,濾除電源高頻干擾。R4、R6為增益調(diào)節(jié)部分,可以調(diào)節(jié)R4來作精確地調(diào)節(jié)增益。圖3.4.2AD620內(nèi)部電路增益計算公式采用下式(1)計算(Rx=R4+R6)所示。(1)3.5血壓信號二次放大電路血壓信號經(jīng)過一次放大,提取出的脈搏信號依然很小。需要進(jìn)一步進(jìn)行放大處理,電路如圖3.5所示。信號放大采用AD620儀表運(yùn)放。C8、C9為電源旁路電容,濾除電源高頻干擾。凡是使用有緣器件的地方在貼近電源端,需要加一個或幾個旁路電容。圖3.5二次放大電路R7對運(yùn)放增益進(jìn)行調(diào)節(jié)。AD620的5腳為電壓基準(zhǔn),為了使信號電平總體上移1V。電壓基準(zhǔn)接到-1V電平。這樣信號電平總體上移,便于AD0832進(jìn)行模數(shù)轉(zhuǎn)換(因為AD0832轉(zhuǎn)換范圍為0-5V,不能對負(fù)載電壓進(jìn)行轉(zhuǎn)換)。調(diào)節(jié)R8可以改變基準(zhǔn)電壓的值。R10、R11分別為100歐姆的保護(hù)電阻。3.6濾波電路從壓力傳感器出來的信號是脈搏信號和靜壓信號的混合信號,還夾雜著來自外界的高頻干擾和直流或低頻分量。靜壓信號屬低頻信號,頻率小于或等于0.4Hz,脈搏信號頻率一般約為1Hz。因此需要提取的信號非常微弱,而傳感器和電路中的器件又常會產(chǎn)生噪聲,為了提高模擬輸入信號的信噪比,增大所需要的信號,可以用放大濾波電路放大輸入信號并衰減噪聲,提取出某些特定頻段的信號。0.8Hz二階高通巴特沃思濾波電路由OP07構(gòu)成,濾掉信號中的直流成分,電源、皮膚與袖帶摩擦的高頻噪聲和工頻干擾,得到脈搏圖3.6.10.8Hz二階高通巴特沃思濾波電路信號,電路如圖3.6.1所示,內(nèi)部運(yùn)放接成跟隨器方式,放大倍數(shù)為1,高通濾波器的傳遞函數(shù)如公式(2)所示[10][11]。(2)取二階巴特沃思網(wǎng)絡(luò)函數(shù)的系數(shù)為a11=1.414,截止角頻率ωc=0.8×2π,取電容值C10=C11=0.1μF。如公式(3)和(4)可以計算得到R12和R13。(3)(4)在一次濾波電路的后面是血壓信號二次放大電路,雖然已經(jīng)過一次濾波濾除掉許多脈搏干擾信號,但是還有高頻干擾,在這里運(yùn)用器件OP07構(gòu)成38Hz二階低通巴特沃思濾波電路,如圖3.6.2所示[12][13]。圖3.6.238Hz二階低通巴特沃思電路二階巴特沃思二階低通濾波,內(nèi)部運(yùn)放接成射極跟隨器的形式以提高電路的穩(wěn)定性,放大倍數(shù)為1,低通濾波器的傳遞函數(shù)如公式(5)所示。(5)取二階巴特沃茲網(wǎng)絡(luò)函數(shù)系數(shù)a11=1.414,截止角頻率ωc=38×2π,取電容值C12=C13=0.1μF。可以由公式(6)和(7)計算得到R14和R15。(6)(7)3.7氣泵和氣閥驅(qū)動電路微型氣泵和電磁閥的控制電路基本相同,如圖3.7所示。微型氣泵和電磁閥門的工作電流較大,微型氣泵的額定電流最大為300mA,電磁閥門的額定電流為75mA。為了與單片機(jī)實現(xiàn)隔離,在控制端使用普通光耦PS2501進(jìn)行隔離。當(dāng)單片機(jī)引腳輸出低電平時,內(nèi)部發(fā)光二極管導(dǎo)通使相對的三極管導(dǎo)通接地。其中R24和R25分別為限流電阻。當(dāng)光耦的三極管導(dǎo)通時,TIP42C的基極接地電平,TIP42C導(dǎo)通。電路接通微型氣泵和電磁閥開始工作。R20和R28分別為限流電阻。當(dāng)安裝使用時,微型氣泵和電磁閥通過J2和J3連接到電路中。圖3.7氣泵和氣閥驅(qū)動電路本章從硬件方面對電子血壓計在各個功能模塊進(jìn)行說明介紹,下一章將在硬件基礎(chǔ)上進(jìn)行軟件編寫,主要是針對各個模塊進(jìn)行軟件編程,仿真檢查模塊功能。

4.軟件設(shè)計軟件的主要流程如下所示:電源上電以后,首先完成系統(tǒng)的初始化工作。單片機(jī)開始給氣泵供電,讓袖帶迅速充氣至約200mmHg左右。之后單片機(jī)通過1路A/D開始采集袖帶的氣壓,并根據(jù)袖帶內(nèi)氣壓下降的速度來控制排氣閥排氣,使袖帶內(nèi)勻速降壓(3-5mmHg/s)。與此同時,另外1路A/D開始采集經(jīng)過隔直流的脈搏波。當(dāng)脈搏波的振幅達(dá)到最大時,袖帶的壓力就是動脈的平均壓。動脈的收縮壓對應(yīng)于振幅包絡(luò)線的第一個拐點,舒張壓對應(yīng)于包絡(luò)線的第二個拐點,處理后的數(shù)據(jù)通過液晶顯示,主流程圖4如圖所示。圖4主流程圖4.1數(shù)據(jù)處理模塊盡管氣閥有自動緩慢放氣的特點,但為了使袖帶迅速充氣至被測者收縮壓以上30mmHg左右后勻速降壓,而不能用普通的處理方法,因為整個測量過程中容易受到外界震動的影響,如人為的震動袖帶、氣管的震動、人的身體運(yùn)動等,另外氣管的剛性度也會影響到袖帶內(nèi)氣壓微弱的變化。所以袖帶內(nèi)的壓力降低的速度與氣閥開關(guān)的頻率為非線形關(guān)系,通過單片機(jī)控制氣閥的開關(guān)時間來確保袖帶以3-5mmHg/s的速度勻速降壓。將血壓測量信號分為2路,US9111-006氣體壓力傳感器的信號首先經(jīng)過低通濾波處理,排除因外界干擾造成的信號讀數(shù)的誤差,之后放大送AD0,作為靜態(tài)血壓信號;隔直流后經(jīng)再次放大送AD1,作為脈搏波信號。如圖4.1.1所示,在測量模式下,氣泵自動加壓進(jìn)行充氣,當(dāng)袖帶中壓力至大于或等于200mmHg,無脈搏信號出現(xiàn)時,停止充氣,袖帶中氣體緩慢釋放。每隔5ms采集1次脈搏信號值,在檢測到第1個峰值后,以周期為5ms采集脈搏信號值和靜壓信號值,分別獲得靜壓信號序列和脈搏信號序列,并判斷采集的脈搏信號值是否為峰值。若是峰值,則記錄此時的脈搏信號值和靜壓信號值,以及從上一個峰值到當(dāng)前時刻的時間差,分別生成序峰值序列和峰值時間間隔序列。一般,當(dāng)袖帶壓力小于60mmHg時,脈搏信號峰值消失,當(dāng)連續(xù)4s內(nèi)檢測不到脈搏信號峰值,系統(tǒng)退出本次血壓測量。圖4.1.1血壓測量流程圖4.1.2血壓計算流程示波法血壓測量沒有完善的理論推導(dǎo),使得特征點的確定只能依賴采集樣本的統(tǒng)計歸納,因而示波法測量血壓是基于統(tǒng)計的方法,有一定的離散性。如圖4.1.2所示,數(shù)據(jù)處理過程主要包括平均壓力位置的確定、收縮壓和舒張壓的計算3個重要部分。4.2A/D轉(zhuǎn)換模塊采樣信號為兩路,一路為靜壓信號,另一路為脈搏信號。其中靜壓信號為直流信號,而脈搏信號為低頻小于2Hz的電壓信號,根據(jù)采樣定理采樣頻率至少是模擬信號的2倍以上,才能得到模擬信號的全部信息,設(shè)計中采用低頻最高頻率的4~10倍為采樣頻率,所以采樣頻率f為20Hz,數(shù)據(jù)處理后在液晶上顯示,流程圖如圖4.2所示。圖4.2A/D轉(zhuǎn)換流程圖4.3液晶顯示模塊LCD1602采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表4.3.1所示[14]。表4.3.1引腳接口說明編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。1602液晶模塊內(nèi)部的控制器共有11條控制指令[14],如表4.3.2所示。表4.3.2控制指令序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001LNF**表4.3.2續(xù)表控制指令7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的,各個指令說明如下所示[15]。指令1:清屏顯示,指令代碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置I/D:光標(biāo)移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5×7的點陣字符,高電平時顯示5×10的點陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫和常用的符號等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”[15]。顯示部分LCD1602點陣液晶屏驅(qū)動程序編寫較復(fù)雜,要注意指令含義的理解及靈活運(yùn)用,顯示部分流程圖如4.3所示。圖4.3液晶顯示流程圖5.系統(tǒng)性能測試在設(shè)計、調(diào)試過程中遇到了一些難題,在這里介紹如下所示。(1)充氣時在限定時間內(nèi)氣壓不足夠高,即不滿足停止充氣的條件,則要先放氣然后重新充氣。連續(xù)2次出現(xiàn)此異常情況,則LCD1602輸出錯誤信息。(2)放氣時在限定時間內(nèi)氣壓不夠低,即不滿足血壓測量的條件,則放棄此次測量數(shù)據(jù)再放氣然后重新充氣并測量。連續(xù)2次出現(xiàn)此異常情況,則LCD1602輸出錯誤信息。(3)測量后計算出的收縮壓和舒張壓沒有達(dá)到要求,則放棄此次測量數(shù)據(jù)再放氣然后重新充氣并測量。連續(xù)2次出現(xiàn)此異常,則LCD1602輸出錯誤信息。選取3組測量者,采用重復(fù)和對比的方法,對同一個測量者在同一時期分別使用本電子血壓計和水銀血壓計進(jìn)行連續(xù)測量,將測量結(jié)果進(jìn)行對比、分析,以觀察測量結(jié)果的一致性和準(zhǔn)確性,如表5.1所示。表5.1測量結(jié)果對比本電子血壓計水銀血壓計收縮壓(mmHg)舒張壓(mmHg)收縮壓(mmHg)舒張壓(mmHg)測量者1771207311874115701187511074113測量者2841188012183120801178311085108測量者3561115911053108551115510757108由表5.1實驗數(shù)據(jù)可以看出,本電子血壓計測量結(jié)果基本與水銀血壓及保持一致,血壓誤差范圍<6mmHg,因此可以在臨床診斷和家庭醫(yī)療保健中應(yīng)用。結(jié)語本課題針對以AT89S51單片機(jī)為控制核心,通過C語言編程實現(xiàn)一個簡單實用的電子血壓計,首先根據(jù)電子血壓計的具體性能與要求將系統(tǒng)整體其分為A/D轉(zhuǎn)換、數(shù)據(jù)處理和數(shù)據(jù)顯示三大模塊,采用C語言對各個模塊進(jìn)行編程處理,然后運(yùn)用Keiluvision2軟件進(jìn)行軟件仿真測試,最后通過ISP在線燒寫并下載到實物電子血壓計上的單片機(jī)進(jìn)行調(diào)試,實現(xiàn)精確測量血壓的功能,結(jié)果顯示基本符合設(shè)計要求。根據(jù)電子血壓計的功能要求,本課題總共有五個章節(jié)對電子血壓計的整個設(shè)計過程進(jìn)行了說明,主要內(nèi)容如下所示。(1)基于AT89S51單片機(jī)電子血壓計設(shè)計課題的概述。(2)闡述設(shè)計要求、方案論證及元器件功能介紹。(3)硬件電路設(shè)計。 (4)軟件設(shè)計。(5)系統(tǒng)性能測試。對這次畢業(yè)設(shè)計,我得到以下幾點感悟如下所示。(1)經(jīng)過這次畢業(yè)設(shè)計,對接觸到的儀器設(shè)備和元器件性能及使用方法了解不夠,體會到了所學(xué)理論應(yīng)用的重要性:理論掌握越扎實,設(shè)計得就越合理。(2)學(xué)會了怎樣查閱資料和利用工具書,在設(shè)計一個項目時,應(yīng)該盡可能多的查閱相關(guān)資料,才能系統(tǒng)的掌握理論只是,應(yīng)用起來也更合理。(3)畢業(yè)設(shè)計培養(yǎng)了嚴(yán)肅認(rèn)真和實事求是的科學(xué)態(tài)度,而且培養(yǎng)了吃苦耐勞的精神以及相對應(yīng)工程意識。(4)經(jīng)過本次畢業(yè)設(shè)計,本人掌握了本課題的理論研究、設(shè)計和實物調(diào)試的過程,這些在將來的工作和學(xué)習(xí)中都會有很大幫助。

參考文獻(xiàn)[1]王迎旭.單片機(jī)原理與應(yīng)用[M].北京機(jī)械工業(yè)出版社.2004.[2]王虎.醫(yī)學(xué)論電子血壓計產(chǎn)業(yè)在中國的未來.[J].醫(yī)學(xué)信息:中旬刊,2010,卷號(5):2994-2995.[3]張桂平.電子血壓計測量原理及存在的問題.[J].醫(yī)療保健器具,2005,卷號(5):48-49.[4]李相偉.微機(jī)系統(tǒng)原理與接口技術(shù)[M].北京:國防工業(yè)出版社,2007.[5]肖忠祥.數(shù)據(jù)采集原理[M].西北工業(yè)大學(xué)出版社.2001.[6]馬明建等.數(shù)據(jù)采集與處理技求[M].西安交通大學(xué)出版社.1998.[7]沈蘭蓀.數(shù)據(jù)采集技術(shù)[M].中國科學(xué)技術(shù)大學(xué)出版社.1990.[8]趙雁南,溫冬嬋,楊澤紅.微型計算機(jī)系統(tǒng)與接口[M].北京:清華大學(xué)出版社,2005.[9]楊天怡,黃勤.微型計算機(jī)控制技術(shù)[M].重慶大學(xué)出版社.1999.[10]康華光,陳大欽.電子技術(shù)基礎(chǔ)(模擬部分)[M].高等教育出版社,第四版.[11]范昕.基于MN101EF32D單片機(jī)的電子血壓計設(shè)計.[J].世界電子元器件,2008,期號(10):60-64.[12]錢峰,劉曄.基于示波法的電子血壓計實現(xiàn).[J].儀器儀表學(xué)報,2006,卷號(z2):1534-1535.[13]劉堅強(qiáng),王永才.基于示波法的電子血壓計系統(tǒng)設(shè)計.[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,卷號(4):62-65.[14]馬忠梅,籍順心,張凱,馬巖.單片機(jī)的C語言應(yīng)用程序設(shè)計[M].北京航空航天大學(xué)出版社.[15]陶孝海.51單片機(jī)C語言編程技巧[J].計算機(jī)時代,2009,期號(6):41-42.

附錄附1實物圖圖1顯示部分外觀圖2控制部分外觀所設(shè)計的簡易血壓計測量過程流暢,當(dāng)開始鍵按下后,氣泵給袖帶充氣,同時袖帶通過排氣閥排氣,由于舒張壓和收縮壓會產(chǎn)生兩次信號波動。采集到的信號被傳輸?shù)揭訟T89S51為核心的控制電路,處理后的數(shù)據(jù)通過LCD點陣液晶屏精確顯示。附2部分程序代碼/***************************************************************************/#include<reg51.h>#include<math.h>#include<stdio.h>#include<stddef.h>#include"dtype.h"/*宏定義*/#defineLCD1602_FLAG#defineLCD1602_PORTP1#defineucharunsignedchar#defineuintunsignedint/*管腳定義*/sbitADC_CS=P2^0;//ADC命令sbitADC_RD=P2^1;//ADC讀sbitADC_WR=P2^2;//ADC寫sbitlcd1602_rs=P2^5;//LCD命令/數(shù)據(jù)端sbitlcd1602_e=P2^7;//LCD使能端sbitlcd1602_rw=P2^6;//LCD讀/寫端/***************************************************************************/函數(shù)名稱:delay(uintdelaytime)函數(shù)功能:延時函數(shù)輸入?yún)?shù):uintdelaytime返回參數(shù):無/***************************************************************************/voiddelay(uintdelaytime){uinti,j;for(i=0;i<delaytime;i++)//用for函數(shù)雙循環(huán)延時for(j=0;j<2:j++);}/***************************************************************************/函數(shù)名稱:StartADC(void)函數(shù)功能:開始進(jìn)行AD轉(zhuǎn)換輸入?yún)?shù):無返回參數(shù):無/***************************************************************************/voidStartADC(void){ADC_CS=0;//開啟AD轉(zhuǎn)換_nop_();//為延時函數(shù),時間非常短ADC_WR=0;//開啟ADC寫_nop_();ADC_WR=1;//關(guān)閉ADC寫_nop_();ADC_CS=1;//禁止AD轉(zhuǎn)換}/***************************************************************************/函數(shù)名稱:ReadADC(void)函數(shù)功能:讀取AD采集出來的數(shù)據(jù)函數(shù)輸入?yún)?shù):無返回參數(shù):ucharTemp/***************************************************************************/intReadADC(void){ucharTemp;ADC_CS=0;//開啟AD轉(zhuǎn)換_nop_();//為延時函數(shù),時間非常短ADC_RD=0;//開啟ADC讀_nop_();Temp=P1;//P1端數(shù)據(jù)給Temp_nop_();ADC_RD=1;//關(guān)閉ADC讀_nop_();ADC_CS=1;//禁止AD轉(zhuǎn)換return(Temp);}/***************************************************************************/函數(shù)名稱:lcd1602_CheckBusy()函數(shù)功能:狀態(tài)查詢輸入?yún)?shù):無返回參數(shù):無/***************************************************************************/voidlcd1602_CheckBusy(){ucharflag=0x80;//賦初值,高位為1,禁止while(flag&0x80);//讀寫操作使能位禁止時等待,繼續(xù)檢測 { LCD1602_PORT=0xff; lcd1602_rs=0;//指向地址計數(shù)器 lcd1602_rw=1;//讀 lcd1602_e=1;//信號下升沿有效flag=LCD1602_PORT;//讀狀態(tài)位,高位為狀態(tài) lcd1602_e=0;//信號上降沿有效 } }/***************************************************************************/函數(shù)名稱:lcd1602_WriteCmd()函數(shù)功能:寫命令輸入?yún)?shù):命令字返回參數(shù):無/***************************************************************************/voidlcd1602_WriteCmd(ucharcmd){lcd1602_CheckBusy(); lcd1602_rs=0;//指向命令計數(shù)器 lcd1602_rw=0;//寫入 lcd1602_e=1;//允許,高電平有效LCD1602_PORT=cmd;//命令 lcd1602_e=0;delay(1);}/***************************************************************************/函數(shù)名稱:lcd1602_WriteData()函數(shù)功能:寫數(shù)據(jù)輸入?yún)?shù):待寫數(shù)據(jù)返回參數(shù):無/***************************************************************************/voidlcd1602_WriteData(uchardata){lcd1602_CheckBusy(); lcd1602_rs=1;//指向數(shù)據(jù)寄存器 lcd1602_rw=0;//寫入 lcd1602_e=1;//允許 LCD1602_PORT=data;//寫數(shù)據(jù) lcd1602_e=0;delay(1);}/***************************************************************************/函數(shù)名稱:lcd1602_Init()函數(shù)功能:初始化LCD輸入?yún)?shù):無返回參數(shù):無/***************************************************************************/voidlcd1602_Init(void){lcd1602_WriteCmd(0x38);//顯示模式為8位,2行,5*7點陣lcd1602_WriteCmd(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍lcd1602_WriteCmd(0x06);//設(shè)定輸入方式,增量不移位lcd1602_WriteCmd(0x01);//清除屏幕顯示delay(100);//延時等待清除結(jié)束}/***************************************************************************/函數(shù)名稱:lcd1602_Display()函數(shù)功能:字符顯示輸入?yún)?shù):字符或字符串指針返回參數(shù):無/***************************************************************************/voidlcd1602_Display(ucharx,uchary,unchardata){ucharaddress;if(y==1)address=0x80+x;elseaddress=0xc0+x;lcd1602_WriteCmd(address);//函數(shù)調(diào)用lcd1602_WriteData(data);//函數(shù)調(diào)用}/***************************************************************************/函數(shù)名稱:Inteppt_init()函數(shù)功能:中斷初始化函數(shù)輸入函數(shù):無返回參數(shù):無/***************************************************************************/voidInteppt_init(){TMOD=0x01;//工作方式1ET0=1;//允許定時器T0中斷IT0=0;//低電平觸發(fā)中斷EX0=1;//允許外部中斷EA=1;//中斷總允許TH0=0xD8;//定時器高8位TL0=0xF0;//定時器低8位TR0=1;//啟動定時器T0}/***************************************************************************/函數(shù)名稱:Time0()interrupt1函數(shù)功能:定時器0中斷函數(shù)輸入?yún)?shù):無返回參數(shù):無/***************************************************************************/Time0()interrupt1{TH0=0xD8;//AD采集周期5ms采集一次TL0=0xF0;//計數(shù)器低8位StartADC();//函數(shù)調(diào)用,開啟AD轉(zhuǎn)換}/***************************************************************************/函數(shù)名稱:main()函數(shù)功能:主函數(shù)輸入?yún)?shù):無返回參數(shù):無/***************************************************************************/voidmain(){lcd_init();//lcd初始化inteppt_init();//中斷初始化while(1){lcd1602_Display(0,1,LCD1602_PORT);//lcd數(shù)據(jù)顯示delay(100);}}/***************************************************************************/致謝基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論