2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  睡眠呼吸暫停監(jiān)測(cè)儀的設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  介紹了睡眠呼吸暫停監(jiān)測(cè)的基本原理和重要意義,研究了成本低、體積小、耗電少、使用方便的睡眠呼吸暫停監(jiān)測(cè)儀。該系統(tǒng)由呼吸信號(hào)提取電路,濾波放大電路,峰值檢測(cè)電路, lcd顯示器與單片機(jī)接口電路,日歷芯片與單片機(jī)接口電路組成。該設(shè)計(jì)誤報(bào)率有效降低,并使可靠性

2、大為增強(qiáng),在測(cè)試是否患呼吸暫停癥中有比較高的準(zhǔn)確性。文章分析了睡眠呼吸暫停監(jiān)測(cè)儀的硬件組成,闡述了</p><p>  系統(tǒng)工作原理,介紹了軟件設(shè)計(jì)思想,并給出了主程序的流程圖。</p><p>  關(guān)鍵詞 睡眠呼吸暫停監(jiān)測(cè)儀;呼吸暫停監(jiān)測(cè)方法 </p><p>  DESIGN OF sleep apnea Monitor</p><p&g

3、t;<b>  ABSTRACT</b></p><p>  It introduce the basic principles and important significance of the sleep apnea montior.It research one sleep apnea montior which is small and light,at a low cost, lo

4、w energy consumption ,and easy to use. The system consists of respiratory signal extraction circuit, filter amplifier circuit, Peak detection circuit,lcd display interface circuit, the calendar chip interface circuit. T

5、he design reduce the error,tone up the dependability, and greatly increased the reliability of the system.This pap</p><p>  KEY WORDS sleep apnea monitor;method of apnea monitor </p><p><b&g

6、t;  目 錄</b></p><p><b>  中文摘要I</b></p><p><b>  英文摘要II</b></p><p><b>  前言1</b></p><p><b>  1系統(tǒng)概述2</b></p>

7、<p>  1.1 睡眠呼吸暫停監(jiān)測(cè)儀的基本原理2</p><p>  1.2 本論文的內(nèi)容和安排2</p><p>  2 系統(tǒng)芯片選用3</p><p>  2.1 AT89C52單片機(jī)的選用3</p><p>  2.2 LCD1602的選用4</p><p>  2.3 日歷時(shí)鐘接口芯片

8、的選用6</p><p><b>  3系統(tǒng)設(shè)計(jì)7</b></p><p>  3.1呼吸暫停測(cè)試儀的總體設(shè)計(jì)7</p><p>  3.2呼吸暫停測(cè)試儀的程序設(shè)計(jì)流程9</p><p>  4 功能電路設(shè)計(jì)10</p><p>  4.1呼吸信號(hào)提取電路10</p>&

9、lt;p>  4.2濾波放大電路10</p><p>  4.3平均值提取電路11</p><p>  4.3.1 峰值檢測(cè)電路11</p><p>  4.3.2谷值檢測(cè)電路12</p><p>  4.3.3平均值提取電路12</p><p>  4.4比較放大電路13</p>

10、<p>  4.5時(shí)鐘電路13</p><p>  4.6日歷芯片接口電路14</p><p>  4.7 LCD顯示接口電路15</p><p>  4.8總設(shè)計(jì)電路17</p><p><b>  5 結(jié)論18</b></p><p><b>  參考文獻(xiàn)19&

11、lt;/b></p><p><b>  附錄20</b></p><p><b>  致謝26</b></p><p><b>  前言</b></p><p>  隨著科技的發(fā)展,人們對(duì)睡眠生理 、病理的了解日益增多,一門新興邊緣學(xué)科一睡眠醫(yī)學(xué)作為現(xiàn)代醫(yī)學(xué)的一個(gè)重

12、要組成部分正在建立和發(fā)展起來,并廣泛的受到重視 在美國(guó)有數(shù)百家大型研究機(jī)構(gòu)正在從事睡眠呼吸方面的研究,他們?cè)谒呒膊。绕涫巧虾粑雷枞鸬?“阻塞性睡眠呼吸暫停綜合癥”的可能病因、危害、診斷及治療方法等方面進(jìn)行了大量的研究工作。 研究發(fā)現(xiàn):“打鼾”這種現(xiàn)象很有可能潛伏著睡眠呼吸暫停綜合癥 正常人有輕度鼾聲不屬呼吸暫停,呼吸暫停的定義是指呼吸道停止氣流達(dá) 1O秒以上。如果每夜暫停次數(shù)在 30次以 上,每次暫停時(shí)間在 10秒以上 ,即可

13、被診斷為“呼吸暫停綜合癥” 這是一種潛在的致死性疾病[12]。其特點(diǎn)是睡眠時(shí)上呼吸道阻塞導(dǎo)致進(jìn)行性缺氧.酸中毒,呼吸困難。造成白天嗜睡、頭暈、頭痛、記憶力減退、乏力、反應(yīng)遲緩 、睡眠行為異常等癥狀。長(zhǎng)期有睡眠暫停的患者可引起高血壓、心率失常及猝死。</p><p>  睡眠呼吸暫停低通氣綜合征是指睡眠時(shí)上氣道塌陷阻塞引起的呼吸暫停和通氣不足、伴有打鼾、睡眠結(jié)構(gòu)紊亂,頻繁發(fā)生血氧飽和度下降、白天嗜睡等病征。國(guó)外早在

14、20世紀(jì)60年代就有了外科手術(shù)治療OSAHS的報(bào)道。1964年Kashina設(shè)計(jì)懸雍垂腭咽成形術(shù)治療單純打鼾。隨后又相繼出現(xiàn)以下報(bào)道:1965年Gastaut等發(fā)現(xiàn)呼吸暫停及低通氣的存在;1978年Guilleminault等提出了OSAHS的概念;1981年Fujita等用UPPP治療OSAHS;1981年Sullivan用CPAP治療OSAHS。我國(guó)最早對(duì)OSAHS的報(bào)道出現(xiàn)在1983年,近10年來對(duì)此病的認(rèn)識(shí)和治療取得了長(zhǎng)足發(fā)展,

15、已成為耳鼻咽喉科最為引人注目的研究領(lǐng)域之一[13]。</p><p>  國(guó)外醫(yī)學(xué)界對(duì)此類疾病的研究十分重視,且已取得重大成果。目前國(guó)內(nèi)對(duì)此類患者的診斷檢查主要有 :(1)鼻 喉??茩z查 (鼻及 咽);(2)纖 維 喉鏡 檢查 (清醒 狀態(tài);睡眠狀態(tài));(3)影像學(xué)檢查 (頭測(cè)量法、CT);(4)多導(dǎo)睡眠儀檢查(PSG)等 。不過,目前國(guó)內(nèi)對(duì)此類患者的診斷大多采用多導(dǎo)儀或者其他呼吸診斷儀器。而此類儀器價(jià)格昂貴且基

16、本需從國(guó)外進(jìn)口,不便在國(guó)內(nèi)醫(yī)院和患者中推廣使用。因此我們必須研制一種價(jià)格更加便宜,使用更加方便,性能更加優(yōu)良的“呼吸暫停監(jiān)測(cè)儀”以滿足各級(jí)醫(yī)院和患者的需求[14]。</p><p><b>  1.系統(tǒng)概述</b></p><p>  1.1 睡眠呼吸暫停監(jiān)測(cè)儀的基本原理</p><p>  人的呼吸途徑有兩個(gè),一個(gè)是鼻腔,另一個(gè)是口腔。在呼吸

17、時(shí),口、鼻腔處由于氣流流過而使壓力和溫度發(fā)生變化。因此,人體的呼吸狀態(tài)可以從檢測(cè)壓力和溫度變化得知。如采用壓力法,由于口、鼻腔處的壓力變化很微弱,而弱壓傳感器的靈敏度很高,容易受各種因素的影響,造成誤動(dòng)作,故壓力法不宜采用。溫度檢測(cè)的方法,既用熱敏電阻作傳感器,將熱敏傳感器用膠帶粘在鼻腔或口腔下方。此類儀器簡(jiǎn)單易用,被檢測(cè)者沒有不舒服的感覺,不影響正常的睡眠[2]。</p><p>  通過熱敏傳感器作為重點(diǎn)部件

18、的呼吸信號(hào)提取電路,可以得到較為準(zhǔn)確的呼吸模擬信號(hào)[6]。但提取的呼吸模擬信號(hào)較弱,極易受環(huán)境溫度及其他干擾的影響,因此必須對(duì)其濾波放大,以隔除直流成分,消除環(huán)境溫度和其他各種干擾的影響而對(duì)有用的信號(hào)進(jìn)行放大便于利用。為了監(jiān)測(cè)呼與吸,必須用呼吸模擬信號(hào)與它的平均值進(jìn)行比較得到[5]。平均值提取是通過峰谷值檢測(cè),然后用兩個(gè)嚴(yán)格匹配的電阻計(jì)算出峰谷值的平均值。之后進(jìn)入比較放大環(huán)節(jié),模擬信號(hào)與平均值的交點(diǎn)即是信號(hào)的跳變點(diǎn),經(jīng)過比較放大電路輸出

19、的是數(shù)字信號(hào)。比較放大器內(nèi)產(chǎn)生的數(shù)字信號(hào)是占空比不一定的方波,輸入單片機(jī)后,主要測(cè)試的是數(shù)字信號(hào)低電平的時(shí)間。本設(shè)計(jì)用了中斷和計(jì)時(shí)器來計(jì)算每一次的低電平時(shí)間,具體是在數(shù)字信號(hào)為低跳變的時(shí)候中斷并開啟計(jì)時(shí)器,當(dāng)數(shù)字信號(hào)到高電平時(shí)結(jié)束計(jì)時(shí)器可得到它的低電平時(shí)間。再判斷低電平時(shí)間是否大于10S。若是,則記錄于存儲(chǔ)器并在LCD上顯示。若不是,則忽略此數(shù)據(jù)。為了更好的測(cè)試和研究呼吸暫停癥狀,在LCD上同時(shí)顯示呼吸暫停的時(shí)間和超過10S的低電平時(shí)間

20、。呼吸暫停的系統(tǒng)時(shí)間可用日歷芯片來實(shí)現(xiàn),同時(shí)可加入存儲(chǔ)器來保留有效數(shù)據(jù)以便于查看。</p><p>  1.2 本論文的內(nèi)容和安排</p><p>  本論文首先闡述了睡眠呼吸暫停測(cè)試儀的主體思路和基本原理。針對(duì)這一測(cè)試儀,分別從硬件和軟件兩個(gè)方面進(jìn)行了設(shè)計(jì)。</p><p>  硬件設(shè)計(jì)包括:睡眠呼吸暫停測(cè)試儀的硬件設(shè)計(jì)包括利用熱傳感奇的呼吸信號(hào)的提取電路,峰值谷

21、值檢測(cè)電路,比較放大電路,lcd顯示器與單片機(jī)接口電路,日歷芯片與單片機(jī)接口電路設(shè)計(jì)。</p><p>  程序設(shè)計(jì)包括:中斷計(jì)時(shí)程序, LCD顯示程序,日歷芯片程序,總的程序設(shè)計(jì)流程。</p><p><b>  2. 系統(tǒng)芯片選用</b></p><p>  2.1 AT89C52單片機(jī)的選用</p><p>  A

22、T89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央 處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。</p><p>  AT89C52有40個(gè)引腳,

23、32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2 個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的 Flash存儲(chǔ)器可有效地降低開發(fā)成本[1]。

24、 </p><p>  圖2-1 AT89C52引腳分布</p><p>  AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。  主要功能特性[9]:</p><p>  · 兼容MCS51指令系統(tǒng)      </p><p

25、>  · 8k可反復(fù)擦寫(>1000次)Flash ROM  · 32個(gè)雙向I/O口         </p><p>  · 256x8bit內(nèi)部RAM</p><p>  · 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷     

26、60;  </p><p>  · 時(shí)鐘頻率0-24MHz</p><p>  · 2個(gè)串行中斷, 2個(gè)外部中斷源, 共6個(gè)中斷源         </p><p>  · 可編程UART串行通道</p><p>  ·

27、; 2個(gè)讀寫中斷口線        </p><p><b>  · 3級(jí)加密位</b></p><p>  · 低功耗空閑和掉電模式    </p><p>  · 軟件設(shè)置睡眠和喚醒功能</p><p>  2.2

28、LCD1602的選用</p><p>  液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄、抗干擾能力強(qiáng)等優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用[14]。目前字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件,也非常適合用于睡眠呼吸暫停檢測(cè)儀這個(gè)設(shè)計(jì)。最后選用的這一款LCD1602液晶顯示模塊,它可以顯示兩行,每行16個(gè)字符,采用單+5V電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高性價(jià)比

29、,達(dá)到醫(yī)院和患者的要求,非常適用。</p><p>  LCD1602模塊接口的主要引腳功能[15]。VO為液晶顯示對(duì)比度調(diào)整同端,當(dāng)接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高是會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K歐姆的電位器調(diào)整對(duì)比度。RS為寄存器選擇,高電平是選擇數(shù)據(jù)寄存器,低電平是選擇指令寄存器。R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)選擇寫操作。當(dāng)RS和RW同時(shí)為低電平時(shí)可以寫入指

30、令或者顯示地址,當(dāng)RS為低電平且RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平且RW為低電平時(shí)可以寫入數(shù)據(jù)。E端為使能端。當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。LCD1602模塊的指令說明,由于MPU可以直接訪問模塊內(nèi)部的IR(指令寄存器)和DR(數(shù)據(jù)寄存器),作為緩沖區(qū)域,IR和DR在模塊進(jìn)行內(nèi)部操作之前可以暫存來自MPU的控制信息。這樣就給用戶在MPU和外圍控制設(shè)備的選擇上,增加了余地。模塊的內(nèi)部操作由來自MPU的RS、R/W

31、、E及數(shù)據(jù)信號(hào)DB0-DB7決定,這些信號(hào)的組合形成了模塊的指令。本模塊提供11條指令,大致可以分為四大類:模塊功能設(shè)置,設(shè)置內(nèi)部RAM地址,完成內(nèi)部RAM數(shù)據(jù)傳送與其他功能。需要注意的是,在每次訪問</p><p><b>  表2-1清屏</b></p><p>  運(yùn)行時(shí)間(250khz):1.64ms。功能:清DDRAM和AC值</p><

32、p><b>  表2-2歸位</b></p><p>  運(yùn)行時(shí)間(250khz):1.64ms。功能:AC=0,光標(biāo)、畫面回HOME位</p><p>  表2-3輸入方式設(shè)置</p><p>  說明:1、I/D=1,數(shù)據(jù)讀、寫操作后,AC自動(dòng)增一。</p><p>  2、I/D=0,數(shù)據(jù)讀、寫操作后,AC自

33、動(dòng)減一。</p><p>  3、S=1,數(shù)據(jù)讀、寫操作,畫面平移。</p><p>  4、S=0,數(shù)據(jù)讀、寫操作,畫面不動(dòng)。</p><p>  運(yùn)行時(shí)間(250khz):40us。功能:AC=0,光標(biāo)、畫面移動(dòng)方式。</p><p>  表2-4顯示開關(guān)控制</p><p>  說明:1、D表示顯示開關(guān):D=1為

34、開,D=0為關(guān)。</p><p>  2、C標(biāo)識(shí)光標(biāo)開關(guān):C=1為開,C=0為關(guān)。</p><p>  3、B標(biāo)識(shí)閃爍開關(guān):B=1為開,B=0為關(guān)。</p><p>  運(yùn)行時(shí)間(250khz):40us。功能:設(shè)置顯示、光標(biāo)及閃爍開、關(guān)。</p><p><b>  表2-5功能設(shè)置</b></p>&l

35、t;p>  說明:1、DL=1,8位數(shù)據(jù)接口;DL=0,4位數(shù)據(jù)接口。</p><p>  2、N=1,顯示兩行;N=0,顯示一行。</p><p>  3、F=1,5*10點(diǎn)陣字符;F=0,5*7點(diǎn)陣字符。</p><p>  運(yùn)行時(shí)間(250khz):40us。功能:工作方式設(shè)置(初始化口令)</p><p><b>  

36、表2-6寫數(shù)據(jù)</b></p><p>  運(yùn)行時(shí)間:(250khz):40us。功能:根據(jù)最近設(shè)置的地址性質(zhì),數(shù)據(jù)寫入DDRAM或CGRAM內(nèi)。</p><p><b>  表2-7讀數(shù)據(jù)</b></p><p>  運(yùn)行時(shí)間(250khz):40us。功能:根據(jù)最近的地址性質(zhì),從DDRAM或CGRAM數(shù)據(jù)讀出。</p>

37、;<p>  2.3 日歷時(shí)鐘接口芯片的選用</p><p>  在測(cè)量記錄儀表中,特別是應(yīng)用在長(zhǎng)時(shí)間無人職守的工業(yè)控制現(xiàn)場(chǎng)時(shí),經(jīng)常需要記錄某些測(cè)量數(shù)據(jù)及其出現(xiàn)的時(shí)間。記錄分析這些數(shù)據(jù),對(duì)測(cè)控系統(tǒng)的性能分析及正常運(yùn)行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是定時(shí)采樣Ⅲ,主要采用單片機(jī)內(nèi)部定時(shí)器,通過軟件編程和CPU內(nèi)部的中斷實(shí)現(xiàn)定時(shí)記錄及實(shí)時(shí)時(shí)鐘的功能。這種方法簡(jiǎn)單易行成本低廉,但時(shí)鐘的計(jì)時(shí)精度受CPU主

38、晶振以及與其相連電容的影響較大,無法做到很高的精度,累積誤差較大[3]。主電源掉電時(shí)為了維持時(shí)鐘不停擺,必須由備份電源(通常外接電池)給整個(gè)CPU供電,導(dǎo)致儀表功耗增大。采用專用實(shí)時(shí)時(shí)鐘芯片則能很好地解決了上述問題?,F(xiàn)階段常用的時(shí)鐘芯片有并行接口、串行接口兩種。并行接口方式數(shù)據(jù)傳送速度較快,但接口擴(kuò)展電路較復(fù)雜,需要考慮接口擴(kuò)展時(shí)的驅(qū)動(dòng)能力,且芯片引腳多,占用地址、數(shù)據(jù)總線較多,體積大;而串行時(shí)鐘芯片體積小,與MCU的接線少,可大大減少

39、線路板的面積和儀器的體積,特別適用于結(jié)構(gòu)緊湊的系統(tǒng)中。</p><p>  基于以上原因,在本監(jiān)測(cè)儀的設(shè)計(jì)過程中選用了美國(guó)DALLAS公司推出的串行時(shí)鐘芯DSl302。使用該芯片簡(jiǎn)化了硬件電路,過三條線就可以和單片機(jī)進(jìn)行通訊,耗電較?。欢倚酒瑑?nèi)部含有RAM,掉電后還可保存數(shù)據(jù),方便了用戶存儲(chǔ)一些重要時(shí)間信息;同時(shí),它們的時(shí)鐘校準(zhǔn)也較為容易,使用專用的晶振器,幾乎無需調(diào)整即可達(dá)到國(guó)家要求的時(shí)鐘誤差標(biāo)準(zhǔn)[4]。因此

40、采用DSl302串行時(shí)鐘芯片,既可以產(chǎn)生準(zhǔn)確的實(shí)時(shí)時(shí)鐘又可以提供數(shù)據(jù)保護(hù),大大簡(jiǎn)化了硬件電路設(shè)計(jì),提高了CPU使用效率,使用更方便,適于推廣。</p><p>  DSl302是美國(guó)Dallas公司生產(chǎn)的一低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片。該芯片采用3線串行接口方式,可提供年、月、日、星期、時(shí)、分、秒等時(shí)間信息,并可根據(jù)月份和閏年的情況自動(dòng)調(diào)整月份的結(jié)束日期,同時(shí)可以根據(jù)用戶需要決定是采用24小時(shí)或12小時(shí)格式。D

41、S1302內(nèi)部帶有31個(gè)字節(jié)的RAM,用于存放臨時(shí)性數(shù)據(jù),同時(shí)具有可編程涓細(xì)電流充電能力,從而使外圍硬件電路設(shè)計(jì)得到了大大簡(jiǎn)化。該芯片引腳分配如圖2-2所示。</p><p>  圖2-2 DS1302的引腳分配圖</p><p>  其中X1、X2為32.768kHz晶振端,GND為地;為復(fù)位端,高電平時(shí)允許I/o端進(jìn)行數(shù)據(jù)傳輸,低電平則禁止數(shù)據(jù)傳送且使I/O端呈高阻狀態(tài);I/0為串行數(shù)

42、據(jù)輸入、輸出端,所有輸入、輸出數(shù)據(jù)的傳送順序均以最低位LSB打頭,最高位MSB結(jié)束;SCLK為同步時(shí)鐘脈沖端,其上升沿將I/O端數(shù)據(jù)按位寫入DSl302,下降沿使DSl3位輸出數(shù)據(jù)至I/0端;VCC2、VCCI為主電源和備份電源端,當(dāng)主電源VCC2大于備份電源VCCI+0.2V時(shí),由VCC2對(duì)芯片供電,否則,由芯片vcc1供電[6]。工作電壓范圍為2.5~5.5V,工作電源和備份電源雙引腳輸入,功耗很低,當(dāng)工作電壓為2.5V時(shí)正常工作,

43、所需電流不超過300nA。另外,如果選擇了涓流充電功能,在正常情況下,主電源還可對(duì)備份電源進(jìn)行慢速充電,有效延長(zhǎng)了備份電源的使用壽命,保證了系統(tǒng)時(shí)間的連續(xù)可靠運(yùn)行。</p><p><b>  3.系統(tǒng)設(shè)計(jì)</b></p><p>  3.1呼吸暫停測(cè)試儀的總體設(shè)計(jì)</p><p>  呼吸暫停監(jiān)測(cè)儀的硬件電路模塊分為:呼吸信號(hào)提取電路模塊、濾

44、波放大電路模塊、平均值提取電路模塊、比較放大電路模塊、單片機(jī)與LCD顯示模塊,單片機(jī)與日歷芯片接口模塊。 呼吸暫停監(jiān)測(cè)儀的軟件部分可分為中斷計(jì)時(shí)部分,LCD顯示部分,日歷時(shí)鐘部分。本設(shè)計(jì)重點(diǎn)在于實(shí)現(xiàn)硬件電路的設(shè)計(jì)和部分軟件的設(shè)計(jì)。本設(shè)計(jì)希望達(dá)到的目標(biāo):用正弦信號(hào)模擬提取的呼吸信號(hào),通過單片機(jī),聯(lián)合LCD、日歷時(shí)鐘芯片監(jiān)測(cè)出睡眠呼吸暫停的具體時(shí)間和時(shí)長(zhǎng),并且在LCD顯示屏上顯示出監(jiān)測(cè)期間的每一次呼吸暫停的信息。呼吸暫停監(jiān)測(cè)儀的系統(tǒng)設(shè)計(jì)圖如

45、圖3-1所示。</p><p>  人的呼吸途徑有兩個(gè),一個(gè)是鼻腔,另一個(gè)是口腔。在呼吸時(shí),口、鼻腔處由于氣流流過而使壓力和溫度發(fā)生變化。因此,人體的呼吸狀態(tài)可以從檢測(cè)壓力和溫度變化得知。如采用壓力法,由于口、鼻腔處的壓力變化很微弱,而弱壓傳感器的靈敏度很高,容易受各種因素的影響,造成誤動(dòng)作,故壓力法不宜采用。溫度檢測(cè)的方法,既用熱敏電阻作傳感器,將熱敏傳感器用膠帶粘在鼻腔或口腔下方。此類儀器簡(jiǎn)單易用,被檢測(cè)者沒

46、有不舒服的感覺,不影響正常的睡眠。</p><p>  經(jīng)過比較放大電路后,產(chǎn)生一個(gè)數(shù)字信號(hào)。此信號(hào)就是本設(shè)計(jì)主要處理的信號(hào),實(shí)際設(shè)計(jì)中會(huì)用正弦模擬信號(hào)與平均電平比較后產(chǎn)生。此數(shù)字信號(hào)為長(zhǎng)度不一的矩形波,高電平說明患者呼出熱的空氣,低電平說明患者正在吸氣或者已經(jīng)呼吸暫停。在電平下降沿,用T0計(jì)時(shí),在電平上升沿時(shí)中斷計(jì)時(shí),若T0計(jì)時(shí)的時(shí)間超過10S則把日歷時(shí)間和它的時(shí)長(zhǎng)存儲(chǔ)并顯示在LCD上,T0清除;若T0計(jì)時(shí)的時(shí)

47、間不超過10s則清除T0。</p><p>  3.2呼吸暫停測(cè)試儀的程序設(shè)計(jì)流程</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p>  計(jì)時(shí)器清零

48、 計(jì)時(shí)器清零</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p>  圖3-2 設(shè)計(jì)流程圖</p><p>  數(shù)字信號(hào)輸入后,判斷信號(hào)是否為下降沿。

49、若是,則中斷并計(jì)時(shí),若不是,繼續(xù)判斷。中斷計(jì)時(shí)開始后,判斷電平是否為高電平,若是則停止計(jì)時(shí);若不是則繼續(xù)判斷。再判斷低電平時(shí)間是否大于10s,若是則存儲(chǔ)并顯示,清零再進(jìn)入循環(huán);若不是,則直接清零并進(jìn)入循環(huán)。</p><p><b>  4. 功能電路設(shè)計(jì)</b></p><p>  4.1呼吸信號(hào)提取電路</p><p>  在呼吸時(shí),口鼻腔底

50、部由于氣流流過使溫度發(fā)生變化,因此人體的呼吸狀態(tài)可以從檢測(cè)溫度變化獲得[2]。按此原理設(shè)計(jì)呼吸信號(hào)提取電路如圖4-1所示:</p><p>  圖4-1呼吸信號(hào)提取電路</p><p>  由電源接一個(gè)電阻和熱敏電阻Rt串聯(lián)至地,熱敏電阻在常溫下(25°C)阻值為1kΩ,熱敏電阻為負(fù)溫度型,靈敏度為0.1%,當(dāng)呼吸溫差達(dá)8°C時(shí),其阻值變化為。相應(yīng)電壓變化為</p

51、><p><b>  (4-1)</b></p><p>  因熱敏電阻Rt在常溫下一般工作在線性區(qū),這使Rt上電壓變化將準(zhǔn)確地隨呼吸狀態(tài)的變化而變化,不會(huì)出現(xiàn)非線性失真。</p><p><b>  4.2濾波放大電路</b></p><p>  由于提取的信號(hào)較弱,易受環(huán)境溫度及其他干擾的影響,因此

52、必須進(jìn)行濾波放大,以隔除直流成分,消除環(huán)境溫度及其他各種干擾的影響,對(duì)有效信號(hào)進(jìn)行放大[10]。濾波放大電路如圖4-2所示:</p><p>  圖4-2 濾波放大電路</p><p>  Rt取下呼吸信號(hào),經(jīng)過R2、C1構(gòu)成的高通隔除直流,同時(shí)由C2、R3構(gòu)成的低通,以實(shí)現(xiàn)濾波的目的。根據(jù)放大的需要可適當(dāng)選擇R2、R3。放大增益K1=-R3/R2。R2、C1的選取要保證周期小于10s的呼

53、吸信號(hào)均能通過。運(yùn)算放大器A1選用具有高輸入阻抗,且可由較低的電源供電的CA3140。</p><p>  4.3平均值提取電路</p><p>  4.3.1 峰值檢測(cè)電路</p><p>  峰值檢測(cè)電路如圖4-3所示。經(jīng)濾波放大的呼吸信號(hào)接放大器同相端,當(dāng)呼吸信號(hào)大于電容C3上的電壓時(shí),放大器輸出高電平,D1導(dǎo)通,給C3充電。當(dāng)呼吸信號(hào)升至峰值并開始下降時(shí),C

54、3充電至峰值電壓,此時(shí)放大器將輸出低電平,D1截止,C3上保持峰值電壓[9]。為保證該電路不影響前級(jí),且使電容C3能將峰值電壓保存適當(dāng)長(zhǎng)的時(shí)間,都需要放大器的輸入阻抗要高,于是,我們選擇了CA3130,它有高的輸入阻抗和低輸入偏置電流,且能用單電源供電。</p><p>  圖4-3 峰值檢測(cè)電路</p><p><b>  谷值檢測(cè)電路</b></p>

55、<p>  谷值檢測(cè)電路如圖4-4所示。該電路結(jié)構(gòu)與峰值檢測(cè)電路結(jié)構(gòu)相同,放大器也選用CA3130。當(dāng)輸入電壓小于電容C4上電位時(shí),放大器輸出低電平,D2導(dǎo)通,C4通過D2放電。當(dāng)輸入電壓下降時(shí),電容就保持放電。當(dāng)輸入電壓Vi降至谷值并開始上升時(shí),C4就取得谷值電壓,此時(shí)放大器輸出高電平,D2截止,C4保存谷值電壓[8]。</p><p>  圖4-4 谷值檢測(cè)電路</p><p&

56、gt;<b>  平均值提取電路</b></p><p>  從峰谷值輸出端接兩個(gè)嚴(yán)格匹配的電阻R6、R7。從R6、R7之間提取平均值電壓,如圖4-5所示:</p><p>  圖4-5 平均值提取電路</p><p>  為延緩峰值電壓經(jīng)R6、R7向谷值電壓存儲(chǔ)電容C5充電,R6、R7應(yīng)選得較大[6]。該電路中R6=R7=10MΩ</p

57、><p><b>  4.4比較放大電路</b></p><p>  將提取的平均值加到運(yùn)放的反相端,原呼吸模擬信號(hào)加到同相端[14],如圖4-6所示。</p><p>  圖4-6 比較放大電路</p><p>  波形變化如圖4-7所示。模擬信號(hào)與平均值的交點(diǎn)就是信號(hào)的跳變點(diǎn),經(jīng)比較放大電路輸出數(shù)字信號(hào)[4]。</

58、p><p>  圖4-7 輸出數(shù)字信號(hào)</p><p><b>  4.5時(shí)鐘電路</b></p><p>  時(shí)鐘電路的主控單元采用12MHz的晶體振蕩器。具體設(shè)計(jì)如圖4-8:</p><p>  圖4-8 時(shí)鐘電路</p><p>  4.6日歷芯片接口電路</p><p&g

59、t;  DS1302內(nèi)部具有實(shí)時(shí)時(shí)鐘、日歷和用戶可用RAM,通過一個(gè)簡(jiǎn)單的串行接口與微機(jī)通信,可根據(jù)月份和閏年的情況自動(dòng)調(diào)整月份的結(jié)束日期。串行接口的日歷時(shí)鐘芯片以其使用簡(jiǎn)單、接口容易、與微機(jī)連線少等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng),尤其是手持式信息設(shè)備中得到廣泛應(yīng)用。下面介紹在單片機(jī)應(yīng)用系統(tǒng)中廣為使用的串行接口實(shí)時(shí)時(shí)鐘芯片DS1302的特點(diǎn)和使用方法。為了初始化任何數(shù)據(jù)的傳輸,RST/引腳信號(hào)應(yīng)由低變高,并且應(yīng)將具有地址和控制信息的8位數(shù)據(jù)(控

60、制字節(jié))裝入芯片的移位寄存器內(nèi)。數(shù)據(jù)的讀寫可以用單字節(jié)或多字節(jié)的突發(fā)模式進(jìn)行。所有的數(shù)據(jù)應(yīng)在時(shí)鐘的下降沿變化,而在時(shí)鐘的上升沿,在芯片或與之相連的設(shè)備進(jìn)行輸入。時(shí)鐘/日歷寄存器共有秒、分、日、月、星期、年共7個(gè)寄存器。秒寄存器的最高為CH標(biāo)識(shí)位是時(shí)鐘的暫停標(biāo)識(shí)。這一位被置為1時(shí),時(shí)鐘振蕩電路停振,且DS1302進(jìn)入低功耗空閑狀態(tài),這是芯片消耗電流將小于100nA。置為0時(shí),時(shí)鐘將工作。控制寄存器即寫保護(hù)寄存器,該寄存器的最高位是芯片的寫

61、保護(hù)位,D0-D6應(yīng)強(qiáng)迫寫0,且讀出時(shí)始終為0[7]。對(duì)任何片內(nèi)時(shí)鐘/日歷寄存器或RAM,在寫操作之前寫保護(hù)必須是0,否則將不可</p><p>  圖4-9 日歷芯片接口電路</p><p>  4.7 LCD顯示接口電路</p><p>  LCD1602模塊接口的主要引腳功能。RS為寄存器選擇,高電平是選擇數(shù)據(jù)寄存器,低電平是選擇指令寄存器[11]。R/W為讀

62、寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)選擇寫操作。當(dāng)RS和RW同時(shí)為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平且RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平且RW為低電平時(shí)可以寫入數(shù)據(jù)。E端為使能端。當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。LCD1602模塊的指令說明,由于MPU可以直接訪問模塊內(nèi)部的IR(指令寄存器)和DR(數(shù)據(jù)寄存器),作為緩沖區(qū)域,IR和DR在模塊進(jìn)行內(nèi)部操作之前可以暫存來自MPU的控制信息。具體如表4

63、-1所示。在每次訪問模塊之前,MPU應(yīng)首先檢測(cè)忙標(biāo)識(shí)BF,確認(rèn)BF=0后,訪問過程才能進(jìn)行。設(shè)計(jì)中,第一行顯示日歷時(shí)間,第二行顯示檢測(cè)的呼吸暫停時(shí)間。</p><p>  表4-1 RS和R/W輸入信號(hào)組合</p><p>  圖4-10 LCD顯示接口電路</p><p><b>  4.8總設(shè)計(jì)電路</b></p><p

64、>  圖4-11 總設(shè)計(jì)電路</p><p>  總設(shè)計(jì)電路主要包括呼吸信號(hào)提取電路,濾波放大電路,平均值提取電路,比較放大電路。LCD1602顯示接口電路,DS1302接口電路,單片機(jī)時(shí)鐘電路。</p><p><b>  5. 結(jié)論</b></p><p>  本文中的呼吸暫停測(cè)試儀主要目標(biāo)是實(shí)現(xiàn)呼吸信號(hào)處理和在LCD上顯示系統(tǒng)時(shí)間和

65、呼吸暫停時(shí)間,并存儲(chǔ)于存儲(chǔ)器,可翻閱數(shù)據(jù)。</p><p>  實(shí)際實(shí)現(xiàn)了LCD顯示系統(tǒng)時(shí)間和呼吸暫停時(shí)間和呼吸信號(hào)提取與處理。呼吸信號(hào)提取與處理部分主要由電子電路完成。首先為呼吸信號(hào)的提取電路,因?yàn)樘崛〉暮粑盘?hào)易受環(huán)境溫度及其他干擾的影響而需要進(jìn)行對(duì)其隔除直流,消除環(huán)境溫度及其他各種干擾的影響,所以應(yīng)加入濾波放大電路。進(jìn)入單片機(jī)的數(shù)字信號(hào)是由經(jīng)濾波放大器的呼吸信號(hào)與其平均值比較而得到的。平均值是由經(jīng)濾波放大的

66、呼吸信號(hào)再通過平均值提取電路得到。平均值提取電路主要有峰值檢測(cè)電路,谷值檢測(cè)電路,平均值提取電路。而比較這一作用是由比較放大電路實(shí)現(xiàn)的,通過此電路的信號(hào)即為單片機(jī)要監(jiān)測(cè)的數(shù)字信號(hào)。單片機(jī)處理的數(shù)字信號(hào)是高電平與低電平時(shí)間不一樣的數(shù)字信號(hào),主要是監(jiān)測(cè)低電平的時(shí)間。若低電平的時(shí)間超過10s,那么就記錄此數(shù)據(jù)并顯示出來。</p><p>  設(shè)計(jì)睡眠呼吸暫停監(jiān)測(cè)儀,難點(diǎn)是如何確切監(jiān)測(cè)人體呼吸空氣的溫度,除去各種干擾,并

67、很好地實(shí)現(xiàn)濾波的目的。而重點(diǎn)是中斷計(jì)時(shí)程序的設(shè)計(jì)。但是它的靈敏度還不夠,特別是熱敏電阻和各個(gè)電路中電子元器件的規(guī)格的選擇,存儲(chǔ)器的功能也還沒有加上。</p><p>  本設(shè)計(jì)基本上研制了一種價(jià)格相對(duì)便宜,使用更加方便,性能更加優(yōu)良的“呼吸暫停監(jiān)測(cè)儀”以滿足各級(jí)醫(yī)院和患者的需求。</p><p><b>  參考文獻(xiàn)</b></p><p> 

68、 [1] 張洪潤(rùn). 單片機(jī)應(yīng)用設(shè)計(jì)200例(上冊(cè))[M].北京:北京航空航天大學(xué)出版社,2006.1~610</p><p>  [2] 張洪潤(rùn),傅瑾新. 傳感器應(yīng)用電路200例[M]. 北京:北京航空航天大學(xué)出版社,2006.1~883 </p><p>  [3] 張永瑞.電子測(cè)量技術(shù)基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,1994.1~300</p><p>

69、;  [4] 鄧親愷. 現(xiàn)代醫(yī)學(xué)儀器設(shè)計(jì)原理[M].北京:科學(xué)出版社,2004.1~527</p><p>  [5] 周洪建. HHT譜分析方法在利用ECG信號(hào)檢測(cè)睡眠呼吸暫停中的應(yīng)用[J].中國(guó)醫(yī)學(xué)物理學(xué)雜志,2009,26(04):1309~1313</p><p>  [6] 張瑞華,葉逢春. 一種具有自動(dòng)補(bǔ)償功能的呼吸信號(hào)檢測(cè)電路[J].醫(yī)療衛(wèi)生裝備,2009,30(3):62~

70、63,65 </p><p>  [7] 楊躍平. 睡眠呼吸暫停綜合征及檢測(cè)方法[J].張家口醫(yī)學(xué)院學(xué)報(bào),2003,20(3):59~61</p><p>  [8] 俞夢(mèng)孫. 睡眠呼吸暫停與生物醫(yī)學(xué)工程[J].引進(jìn)國(guó)外醫(yī)藥技術(shù)與設(shè)備,1998,4(2):106~109</p><p>  [9] 彭思,陳淑鈴. 用于呼吸暫停綜合癥的呼吸監(jiān)測(cè)系統(tǒng)的研制[J]. 傳感

71、技術(shù)學(xué)報(bào),2008,21(8):1325~1328</p><p>  [10]吳海鋒. 熱釋電式睡眠呼吸暫停監(jiān)測(cè)[J].紅外技術(shù),2004,26(1):31~33</p><p>  [11]金鑫,張慶稼. 簡(jiǎn)易睡眠呼吸暫停監(jiān)測(cè)儀的研究[J]. 醫(yī)療設(shè)備信息,2002,17(5):24~26</p><p>  [12] 郭興明. 睡眠呼吸暫停監(jiān)測(cè)方法及儀器的研究

72、[J]. 生物醫(yī)學(xué)工程學(xué)雜志,2000,17(3):358~359</p><p>  [13] 郭興明. 睡眠呼吸暫停監(jiān)測(cè)儀的研究[J]. 電子技術(shù)應(yīng)用,1999,25(2):34~36</p><p>  [14] 徐現(xiàn)通. 睡眠狀態(tài)下人體生理信號(hào)的監(jiān)測(cè)[J]. 醫(yī)學(xué)信息:醫(yī)學(xué)與計(jì)算機(jī)應(yīng)用,2004,17(6):326~329</p><p>  [15] 莊志

73、. 零負(fù)荷多參數(shù)睡眠監(jiān)測(cè)方法的研究[J]. 北京生物醫(yī)學(xué)工程,2002,21(2):57~61</p><p><b>  附錄</b></p><p>  #include<reg51.h></p><p>  #include<string.h></p><p>  #include<i

74、ntrins.h></p><p>  #include<lcd1602.h></p><p>  //#include<24c04.h></p><p>  #include<ds1302.h></p><p>  #define uchar unsigned char</p><

75、;p>  #define uint unsigned int</p><p>  uchar display[]={" "};</p><p>  uchar i=0,j=0;</p><p><b>  uint x=0;</b></p><p>  //---

76、------------INT0中斷----------------</p><p>  void INT0_0() interrupt 0</p><p><b>  {</b></p><p><b>  i++;</b></p><p><b>  if(i==1)</b>

77、;</p><p><b>  {</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //----------------I

78、NT1中斷----------------</p><p>  void INT1_1() interrupt 2</p><p><b>  {</b></p><p><b>  j++;</b></p><p><b>  if(j==1)</b></p>

79、<p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  x=256*TH0+TL0;</p><p><b>  }</b></p><p><b>  }</b></p><p&

80、gt;  //------------------初始化-----------------</p><p>  void INIT()</p><p><b>  {</b></p><p>  TMOD=0x01;</p><p><b>  TH0=0;</b></p><p

81、><b>  TL0=0;</b></p><p><b>  EA=1;</b></p><p><b>  EX0=1;</b></p><p><b>  EX1=1;</b></p><p><b>  IT0=1;</b&g

82、t;</p><p><b>  IT1=1;</b></p><p><b>  PX0=1;</b></p><p><b>  }</b></p><p>  //------------------數(shù)據(jù)轉(zhuǎn)換----------------</p><

83、p>  void dispose()</p><p><b>  {</b></p><p>  display[7]=x/10000+'0';</p><p>  display[8]=x%10000/1000+'0';</p><p>  display[10]='s&#

84、39;;</p><p>  display[11]='e';</p><p>  display[12]='c';</p><p><b>  }</b></p><p>  //----------------------------主程序-----------------------

85、</p><p>  void main()</p><p>  { </p><p>  Init_LCD(); //初始化LCD </p><p>  //display[7]='1';</p><p>  //display[8]=

86、'1';</p><p>  //display[10]='s';</p><p>  //display[11]='e';</p><p>  //display[12]='c';</p><p>  //IIC_24C04_Init(); //初

87、始化24C04 </p><p><b>  INIT();</b></p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  GetTime();</p><p>  Format_DateTi

88、me(DateTime[6],LCD_DSY_BUFFER1+5);</p><p>  Format_DateTime(DateTime[4],LCD_DSY_BUFFER1+8);</p><p>  Format_DateTime(DateTime[3],LCD_DSY_BUFFER1+11);</p><p>  //strcpy(LCD_DSY_BUFFE

89、R1+13,WEEK[DateTime[5]]);</p><p>  Format_DateTime(DateTime[2],LCD_DSY_BUFFER2+5);</p><p>  Format_DateTime(DateTime[1],LCD_DSY_BUFFER2+8);</p><p>  Format_DateTime(DateTime[0],LCD_

90、DSY_BUFFER2+11);</p><p>  //Display_String(display,0x40);</p><p>  Display_String(LCD_DSY_BUFFER2,0x00);</p><p>  dispose();</p><p>  Display_String(display,0x40);</

91、p><p><b>  }}</b></p><p>  #ifndef _lcd1602_2010_4_28_</p><p>  #define _lcd1602_2010_4_28_</p><p>  /*******************************lcd1602*******************

92、****************/</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit RS=P2^0;</p><p>  sbit RW=P2^1;</p><p>  sbit EN=P2

93、^2;</p><p>  //------------延時(shí)------------------------</p><p>  void DelayMs(uint x)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p&

94、gt;  while(x--) for(i=0;i<120;i++);</p><p><b>  }</b></p><p>  //------------讀LCD狀態(tài)------------------------</p><p>  uchar Read_LCD_State()</p><p><b&

95、gt;  {</b></p><p>  uchar state;</p><p>  RS=0;RW=1;EN=1;DelayMs(1);state=P0;EN=0;DelayMs(1);</p><p>  return state;</p><p><b>  }</b></p><

96、p>  //------------忙等待----------------------------</p><p>  void LCD_Busy_Wait()</p><p><b>  {</b></p><p>  while((Read_LCD_State() & 0x80) == 0x80);</p>&l

97、t;p>  DelayMs(5);</p><p><b>  }</b></p><p>  //------------向LCD寫數(shù)據(jù)------------------------</p><p>  void Write_LCD_Data(uchar dat)</p><p><b>  {<

98、;/b></p><p>  LCD_Busy_Wait();</p><p>  RS=1;RW=0;EN=0;P0=dat;EN=1;DelayMs(1);EN=0;</p><p><b>  }</b></p><p>  //-------------寫LCD指令---------------------

99、----</p><p>  void Write_LCD_Command(uchar cmd)</p><p><b>  {</b></p><p>  LCD_Busy_Wait();</p><p>  RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMs(1);EN=0;</p>

100、<p><b>  }</b></p><p>  //-------------LCD初始化-------------------------</p><p>  void Init_LCD()</p><p><b>  {</b></p><p>  Write_LCD_Comman

101、d(0x38);DelayMs(1);</p><p>  Write_LCD_Command(0x01);DelayMs(1);</p><p>  Write_LCD_Command(0x06);DelayMs(1);</p><p>  Write_LCD_Command(0x0c);DelayMs(1);</p><p><b&

102、gt;  }</b></p><p>  //-------------設(shè)置液晶顯示位置------------------</p><p>  void Set_LCD_POS(uchar p)</p><p><b>  {</b></p><p>  Write_LCD_Command(p | 0x80

103、);</p><p><b>  }</b></p><p>  //---------------在LCD上顯示字符串---------------</p><p>  void Display_String(uchar *s,uchar p)</p><p><b>  {</b></p&

104、gt;<p><b>  uchar i;</b></p><p>  Set_LCD_POS(p);</p><p>  for(i=0;i<16;i++)</p><p><b>  {</b></p><p>  Write_LCD_Data(s[i]);</p>

105、;<p>  DelayMs(1);</p><p><b>  }}</b></p><p>  /******************************lcd1602結(jié)束*********************************/</p><p><b>  #endif</b></p

106、><p>  #ifndef _ds1302_2010_4_28_</p><p>  #define _ds1302_2010_4_28_</p><p>  /*******************************ds1302***********************************/</p><p>  #define

107、uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit IO=P2^4;</p><p>  sbit SCLK=P2^5;</p><p>  sbit RST=P2^6;</p><p>  //uchar *WEEK[]={&q

108、uot;SUN","***","MON","TUS","WEN","THU","FRI","SAT"};</p><p>  uchar LCD_DSY_BUFFER1[]={"DATE 00-00-00 "};</p><

109、;p>  uchar LCD_DSY_BUFFER2[]={"TIME 00:00:00 "};</p><p>  uchar DateTime[7];</p><p>  //-------------向DS1302寫入一字節(jié)-----------</p><p>  void Write_A_Byte_TO_DS1302(uchar

110、 x)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p>  IO=x & 0x01;

111、 SCLK=1;SCLK=0;x>>=1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //---------------從DS1302讀取一字節(jié)---------</p><p>  uchar Get_A_Byte_FROM_D

112、S1302()</p><p><b>  {</b></p><p>  uchar i,b=0x00;</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p>  b|=_crol_((uchar)IO,i);&

113、lt;/p><p>  SCLK=1;SCLK=0;</p><p><b>  }</b></p><p>  return b / 16 * 10+b % 16;</p><p><b>  }</b></p><p>  //---------------從DS1302指定

114、位置讀數(shù)據(jù)------</p><p>  uchar Read_Data(uchar addr)</p><p><b>  {</b></p><p>  uchar dat;</p><p>  RST=0;SCLK=0;RST=1;</p><p>  Write_A_Byte_TO_DS

115、1302(addr);</p><p>  dat=Get_A_Byte_FROM_DS1302();</p><p>  SCLK=1;RST=0;</p><p>  return dat;</p><p><b>  }</b></p><p>  //----------------讀取當(dāng)

116、前日期時(shí)間------------</p><p>  void GetTime()</p><p><b>  {</b></p><p>  uchar i,addr=0x81;</p><p>  for(i=0;i<7;i++)</p><p><b>  {</b&

117、gt;</p><p>  DateTime[i]=Read_Data(addr);addr+=2;</p><p><b>  }}</b></p><p>  //---------------日期與時(shí)間轉(zhuǎn)換為數(shù)字字符---------</p><p>  void Format_DateTime(uchar d,u

118、char *a)</p><p><b>  {</b></p><p>  a[0]=d/10+'0';</p><p>  a[1]=d%10+'0';</p><p><b>  }</b></p><p>  /************

119、******************ds1302結(jié)束*********************************/</p><p><b>  #endif</b></p><p><b>  致謝</b></p><p>  在論文即將完成之際,我首先向關(guān)心幫助和指導(dǎo)我的指導(dǎo)老師**老師表示衷心的感謝﹗</p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論