基于SPCE061A具有語音功能的濕度測控系統設計論文_第1頁
基于SPCE061A具有語音功能的濕度測控系統設計論文_第2頁
基于SPCE061A具有語音功能的濕度測控系統設計論文_第3頁
基于SPCE061A具有語音功能的濕度測控系統設計論文_第4頁
基于SPCE061A具有語音功能的濕度測控系統設計論文_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 PAGE41 / NUMPAGES46 畢業設計論文題目:基于SPCE061A具有語音功能的濕度測控系統設計畢業設計(論文)原創性聲明和使用授權說明原創性聲明本人重承諾:所呈交的畢業設計(論文),是我個人在指導教師的指導下進行的研究工作與取得的成果。盡我所知,除文中特別加以標注和致的地方外,不包含其他人或組織已經發表或公布過的研究成果,也不包含我為獲得與其它教育機構的學位或學歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了意。作 者 簽 名:日 期:指導教師簽名: 日期:使用授權說明本人完全了解大學關于收集、保存、使用畢業設計(論文)的規定,即:

2、按照學校要求提交畢業設計(論文)的印刷本和電子版本;學校有權保存畢業設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學校可以采用影印、縮印、數字化或其它復制手段保存論文;在不以贏利為目的前提下,學校可以公布論文的部分或全部容。作者簽名: 日 期:學位論文原創性聲明本人重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的容外,本論文不包含任何其他個人或集體已經發表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律后果由本人承擔。作者簽名: 日期: 年 月 日學位論文使用授權書本學位論文作

3、者完全了解學校有關保留、使用學位論文的規定,同意學校保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權大學可以將本學位論文的全部或部分容編入有關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。涉密論文按學校規定處理。作者簽名:日期: 年 月 日導師簽名: 日期: 年 月 日指導教師評閱書指導教師評價:一、撰寫(設計)過程1、學生在論文(設計)過程中的治學態度、工作精神 優 良 中 與格 不與格2、學生掌握專業知識、技能的扎實程度 優 良 中 與格 不與格3、學生綜合運用所學知識和專業技能分析和解決問題的能力 優 良 中 與格 不與格4、研

4、究方法的科學性;技術線路的可行性;設計方案的合理性 優 良 中 與格 不與格5、完成畢業論文(設計)期間的出勤情況 優 良 中 與格 不與格二、論文(設計)質量1、論文(設計)的整體結構是否符合撰寫規? 優 良 中 與格 不與格2、是否完成指定的論文(設計)任務(包括裝訂與附件)? 優 良 中 與格 不與格三、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義 優 良 中 與格 不與格2、論文的觀念是否有新意?設計是否有創意? 優 良 中 與格 不與格3、論文(設計說明書)所體現的整體水平 優 良 中 與格 不與格建議成績:優 良 中 與格 不與格(在所選等級前的畫“”)指導

5、教師: (簽名) 單位: (蓋章)年 月 日評閱教師評閱書評閱教師評價:一、論文(設計)質量1、論文(設計)的整體結構是否符合撰寫規? 優 良 中 與格 不與格2、是否完成指定的論文(設計)任務(包括裝訂與附件)? 優 良 中 與格 不與格二、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義 優 良 中 與格 不與格2、論文的觀念是否有新意?設計是否有創意? 優 良 中 與格 不與格3、論文(設計說明書)所體現的整體水平 優 良 中 與格 不與格建議成績:優 良 中 與格 不與格(在所選等級前的畫“”)評閱教師: (簽名) 單位: (蓋章)年 月 日教研室(或答辯小組)與教

6、學系意見教研室(或答辯小組)評價:一、答辯過程1、畢業論文(設計)的基本要點和見解的敘述情況 優 良 中 與格 不與格2、對答辯問題的反應、理解、表達情況 優 良 中 與格 不與格3、學生答辯過程中的精神狀態 優 良 中 與格 不與格二、論文(設計)質量1、論文(設計)的整體結構是否符合撰寫規? 優 良 中 與格 不與格2、是否完成指定的論文(設計)任務(包括裝訂與附件)? 優 良 中 與格 不與格三、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義 優 良 中 與格 不與格2、論文的觀念是否有新意?設計是否有創意? 優 良 中 與格 不與格3、論文(設計說明書)所體現的整

7、體水平 優 良 中 與格 不與格評定成績:優 良 中 與格 不與格(在所選等級前的畫“”)教研室主任(或答辯小組組長): (簽名)年 月 日教學系意見:系主任: (簽名)年 月 日目 錄 TOC o 1-3 h z u TOC o 1-3 h z u HYPERLINK l _Toc293576571摘 要HYPERLINK l _Toc293576572AbstractHYPERLINK l _Toc293576573前 言HYPERLINK l _Toc293576574一、總體設計和實現的功能 PAGEREF _Toc293576574 h 4HYPERLINK l _Toc293576

8、5751.1 系統參數 PAGEREF _Toc293576575 h 4HYPERLINK l _Toc2935765761.2 功能簡介 PAGEREF _Toc293576576 h 4HYPERLINK l _Toc293576577二、系統硬件設計 PAGEREF _Toc293576577 h 4HYPERLINK l _Toc2935765822.1SPCE061A芯片特點 PAGEREF _Toc293576582 h 5HYPERLINK l _Toc2935765832.1.1SPCE061A簡介 PAGEREF _Toc293576583 h 5HYPERLINK l _

9、Toc2935765882.1.2芯片特性 PAGEREF _Toc293576588 h 5HYPERLINK l _Toc2935766102.2SPCE061A精簡開發板 PAGEREF _Toc293576610 h 6HYPERLINK l _Toc2935766122.3濕度傳感器HS1101 PAGEREF _Toc293576612 h 7HYPERLINK l _Toc2935766132.3.1濕度測量簡介 PAGEREF _Toc293576613 h 7HYPERLINK l _Toc2935766252.3.2HS1101簡介 PAGEREF _Toc29357662

10、5 h 8HYPERLINK l _Toc2935766342.3.3測量原理 PAGEREF _Toc293576634 h 9HYPERLINK l _Toc2935766372.3.4測量方法 PAGEREF _Toc293576637 h 9HYPERLINK l _Toc2935766472.4硬件電路 PAGEREF _Toc293576647 h 11HYPERLINK l _Toc2935766482.4.1SPCE061A最小系統 PAGEREF _Toc293576648 h 11HYPERLINK l _Toc2935766522.4.2電源模塊 PAGEREF _Toc

11、293576652 h 12HYPERLINK l _Toc2935766612.4.3電容式濕度傳感器HS1101電路模塊 PAGEREF _Toc293576661 h 12HYPERLINK l _Toc2935766672.4.4按鍵電路 PAGEREF _Toc293576667 h 13HYPERLINK l _Toc293576671三、系統軟件設計 PAGEREF _Toc293576671 h 13HYPERLINK l _Toc2935766773.1主程序 PAGEREF _Toc293576677 h 13HYPERLINK l _Toc2935766833.2按鍵掃描

12、模塊 PAGEREF _Toc293576683 h 14HYPERLINK l _Toc2935766883.3濕度測量程序流程圖 PAGEREF _Toc293576688 h 15HYPERLINK l _Toc2935766953.4語音播放任意整數數據程序 PAGEREF _Toc293576695 h 16HYPERLINK l _Toc2935767003.5中斷服務程序流程圖 PAGEREF _Toc293576700 h 17HYPERLINK l _Toc293576706結束語20HYPERLINK l _Toc293576707參考文獻 PAGEREF _Toc2935

13、76707 h 21HYPERLINK l _Toc293576708致 PAGEREF _Toc293576708 h 22HYPERLINK l _Toc293576709附 錄23基于SPCE061A具有語音功能的濕度測控系統設計摘要本文以SPCE061A單片機為控制核心,主要針對一般電子濕度計,研究了被測濕度值存在只能檢測和數字顯示、不可以語音播出的實際問題,運用16位單片機控制,利用電容式濕度傳感器,設計了一種具有濕度的測量、數字顯示以與語音報警功能的濕度檢測系統。目前市面上已經出現了很多基于SPCE061A的相關產品。本文通過比較基礎的方法,闡述了SPCE061A單片機是一種性價比

14、很高的產品,它自帶語音模塊,功能強大,應用面極廣。關鍵詞:單片微型計算機;語音播報;濕度傳感器;HS1101;SPCE061ABased on theSPCE061Adesign of humidity measurement and control system with speech functionAbstractIn this article tospce061asingle-chip microcomputer to control core, is for general electronic hygrometers, study the measured humidity val

15、ue can only detect and problems of digital display, not the actual voice broadcast, using16-bit single-chip microcomputer control, the use of capacitive humidity sensor, designed a measurement with humidity humidity detection, digital displays, and voice alarm system. Currently there have been many

16、on the market based onspce061aof related products. By comparing the basic method in this article, expounded thespce061asingle-chip is a high price/performance of the product, it comes with voice modules, powerful, very wide.Key words:single-chip microcomputerstool;voicebroadcasts;HS1101;SPCE061A基于SP

17、CE061A具有語音功能的濕度測控系統設計摘要本文以SPCE061A單片機為控制核心,主要針對一般電子濕度計,研究了被測濕度值存在只能檢測和數字顯示、不可以語音播出的實際問題,運用16位單片機控制、利用電容式濕度傳感器,設計了一種具有濕度的測量、數字顯示以與語音報警功能的濕度檢測系統。目前市面上已經出現了很多基于SPCE061A的相關產品。本文通過比較基礎的方法,闡述了SPCE061A單片機是一種性價比很高的產品,它自帶語音模塊,功能強大,應用面極廣。關鍵詞:單片微型計算杌;語音播報;濕度傳感器;HS1101;SPCE061A前 言目前,嵌入式系統的發展萬興未艾:其種類從小到一個芯片,大到一臺

18、獨立的應用設備,數量繁多,讓人目不暇接;其應用領域從以工農業控制為主,滲透到人們日常生活的各個方面:在電冰箱、洗衣機、空調、電視機、手機、數碼相機,甚至電飯鍋和手表里,都有嵌入式系統的身影。正如美國福特汽車公司高級經理所說的那樣:“福特出售的計算能力已經超過了IBM。因此,嵌入式系統成為了種無處不在的數字系統,并且成為了后PC時代的驕子。”在農工業方面,我國農業正處于從傳統農業想以優質、高產、高效益為目標的現代農業轉化的新階段。環境的控制和檢測作為農業生物速成、優質、高產的手段,是農業現代化的重要標志。溫室大棚中的環境有多個因素組成,如溫度、光照、濕度與二氧化碳濃度等。人工管理已經不能滿足農業

19、的生產要求了,阻礙了農業的發展。另外,在工業領域里,比如礦井、鍋爐、水溫檢測等等,諸多方面都需要進行溫度、濕度、瓦斯、光照方面的檢測。而且這些方面有時候要求特別嚴格,不容有誤。比如礦井里的瓦斯檢測。所以,綜合很多方面,在此設計了一種基于SPCE061A具有語音功能的濕度測控系統,用于對濕度進行檢測,語音報警,讓檢測系統更加安全和方便。此系統還能進行擴展,比如:擴展成多點濕度實時監測;變換檢測模塊進行其他諸如瓦斯、二氧化碳、光線的檢測。總是次系統可以擴展的空間很大,用途很廣。一、總體設計和實現的功能1.1 系統參數本方案系統的主要參數:工作溫度:070;工作濕度:0100%RH;測量圍:1%99

20、%RH;精度:5RH%。1.2 功能簡介本方案預期實現的功能如下:按鍵控制啟動濕度測量;語音播放測量濕度值;濕度判斷,并有溫馨提示語,當濕度太高時,播放“潮濕,請打開除濕機”,濕度太低時,播放“太干,請打開加濕器”。二、系統硬件設計對于濕度測量儀,除了具有一個控制器控制測量外,還需要測量器。本系統中采用SPCE061A作為控制器,電容式濕度傳感器HS1101作為測量器,利用一個按鍵來啟動濕度測量和語音播放。由于電容不能直接和SPCE061A的I/O口連接進行測量,所以需要一個電路模塊,與SPCE061A的Feedback接口IOB2、IOB4,IOB3、IOB5連接,實現從電容到頻率的轉換,系

21、統的結構框圖如圖 2.1。圖2.1系統結構框圖SPCE061A單片機作為主控芯片,根據讀到的鍵值判斷是否啟動測量,測量時負責讀取Feedback電路的工作頻率,根據頻率計算HS1101的電容和它所在環境的濕度,并把濕度通過喇叭播放出來。同時如果濕度值太高或者太低,系統會播放提示。2.1SPCE061A芯片特點2.1.1SPCE061A簡介SPCE061A是凌陽科技研發生產的性價比很高的一款十六位單片機,該芯片擁有8路10位精度的ADC,兩路10精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外凌陽十六位單片機具有易學易用的效率較高的一套指令系統和集成開發環境。在此環境中,

22、支持標準C語言,可以實現C語言與凌陽匯編語言的互相調用為軟件開發提供了方便的條件。SPCE061A片還集成了一個ICE(在線仿真電路)接口,使得對該芯片的編程、仿真都變得非常方便,而ICE接口不占用芯片上的硬件資源,結合凌陽科技提供的集成開發環境(unSP IDE)我們可以利用它對芯片進行真實的仿真;而程序的下載(燒寫)也是通過該接口進行下載。下圖為SPCE061A單片機的部結構框圖:圖 2.2 SPCE061A部結構圖2.1.2芯片特性16位nSP微處理器核心,能完成16為算術邏輯運算、16*16為硬件乘法運算和DSP的積濾波運算;CPU工作電壓VDD為3.03.6V(CPU),IO口工作電

23、壓VDDH為3.05.5V(I/O);CPU的工作時鐘頻率為0.32MHz49.152MHz;置2K字的靜態存(SRAM);置32K字的閃存(FLASH);可編程音頻處理;晶體振蕩器;省電模式:系統處于備用狀態下(時鐘處于停止狀態),耗電僅為2A(3.6V);2個16位可編程定時器/計數器(可自動預置初始計數值);2個10位DAC(數-模轉換)輸出通道;32位通用可編程輸入/輸出端口;14個中斷源:包括2個定時器與時器,2個外部時鐘源輸入和按鍵喚醒;具備觸鍵喚醒的功能;使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數據;鎖相環PLL振蕩器提供系統時鐘信號;327

24、68Hz實時時鐘;7通道10位電壓模-數轉換器(ADC)和單通道聲音模-數轉換器;聲音模-數轉換器輸入通道置麥克風放大器和自動增益控制(AGC)功能;具備串行設備接口;低電壓復位(LVR)功和低電壓監測(LVD)功能;置在線仿真(ICE,In- Circuit Emulator)接口。2.2SPCE061A精簡開發板SPCE061A精簡開發板(簡稱61板),是以凌陽16位單片機SPCE061A為核心的精簡開發仿真實驗板,是凌陽專為大學生、電子愛好者等進行電子實習、課程設計、畢業設計、電子制作與電子競賽所設計的,也可作為單片機項目初期研發使用。61板除了具備單片機最小系統電路外,還包括有電源電路

25、、音頻電路(含MIC輸入部分和DAC音頻輸出部分)、復位電路等,采用電池供電,方便學生隨身攜帶!使學生在掌握軟件的同時,熟悉單片機硬件的設計制作,鍛煉學生的動手能力,也為單片機學習者和開發者創造了一個良好的學習條件和開發新產品的機會!61板上有調試器接口(Probe接口)以與下載線(EZ_Probe)接口,分別可接凌陽科技的在線調試器、簡易下載線,配合unSP IDE,可方便地在板上實現程序的下載、在線仿真調試。下圖為61板的實物圖:圖2.3 61板實物圖2.3濕度傳感器HS11012.3.1濕度測量簡介1、濕度定義在計量法中規定,濕度定義為物象狀態的量。日常生活中所指的濕度為相對濕度,用RH

26、%表示。總言之,即氣體中(通常為空氣中)所含水蒸氣量(水蒸氣壓)與其一樣情況下飽和水蒸氣量(飽和水蒸氣壓)的百分比。2、電子式濕度傳感器的特點電子式濕度傳感器是近幾十年,特別是近20年才迅速發展起來的。濕度傳感器生產廠在產品出廠前都要采用標準濕度發生器來逐支標定,電子式濕度傳感器的準確度可以達到2一3RH。精度下降,濕度傳感器年漂移量一般都在2%左右,甚至更高。一般情況下,生產廠商會標明1次標定的有效使用時間為1年或2年,到期需重新標定。電子式濕度傳感器的精度水平要結合其長期穩定性去判斷,一般說來,電子式濕度傳感器的長期穩定性和使用壽命都不是很好。濕度傳感器是采用半導體技術,因此對使用的環境溫

27、度有要求,超過其規定的使用溫度將對傳感器造成損壞。所以電子式濕度傳感器測濕方法更適合于在潔凈與常溫的場合使用。電子式濕度傳感器主要有電容式和電阻式兩種:電容式濕敏元件的優點在于響應速度快、體積小、線性度好、較穩定,國外有些產品還具備高溫工作性能。但是達到上述性能的產品多為國外名牌,價格都較昂貴。市場上出售的一些電容式濕敏元件低價產品,往往達不到上述水平,線性度、一致性和重復性都不甚理想,30%RH以下,80%RH以上感濕段變形嚴重。有些產品采用單片機補償修正,使濕度出現階躍性的跳躍,使精度降低,出現一致性差、線性差的缺點。無論高檔次或低檔次的電容式濕敏元件,長期穩定性都不理想,多數長期使用漂移

28、嚴重,濕敏電容容值變化為pF級,1%RH的變化不足0.5pF,容值的漂移改變往往引起幾十%RH的誤差,大多數電容式濕敏元件不具備40以上溫度下工作的性能,往往失效和損壞。本系統中我們使用電容式濕度傳感器HS1101,這顆傳感器比較常見,適用于一些對精度要求不高的場合。2.3.2 HS1101簡介1、基本參數如圖 2.4。如果沒有特別標注,默認下圖的測量溫度T=25,測量時HS1101工作頻率為10KHz。圖2.4HS1101參數圖2、特性曲線如圖 2.5。測量溫度T=25,測量時HS1101工作頻率為10KHz。圖2.5HS1101特性曲線2.3.3測量原理HS1100濕度傳感器是一種基于電容

29、原理的濕度傳感器,相對濕度的變化和電容值呈線性規律。在自動測試系統中,電容值隨著空氣濕度的變化而變化,因此將電容值的變化轉換成電壓或頻率的變化,才能進行有效地數據采集。用555集成電路組成振蕩電路, HS1100濕度傳感器充當振蕩電容,從而完成濕度到頻率的轉換,電路圖如圖2.6所示。圖2.6 測量電路圖2.3.4測量方法HS1101濕敏傳感器是采用側面開放式封裝,只有2個引腳,有線性電壓輸出和線性頻率輸出2種電路。在使用時,將2 腳接地,這里選用頻率輸出電路。該傳感器采用電容構成材料,不允許直流方式供電,所以我們使用555定時器電路組成單穩態電路。具體電路分析如下。電源電壓工作圍是+3.5+1

30、2V。利用一片CMOS定時器TLC555 , 配上HS1101 和電阻R2 、R4構成單穩態電路,將相對濕度值變化轉換成頻率信號輸出。輸出頻率圍是73516033Hz,所對應的相對濕度為0100%。當RH=55%時,f=6660Hz。輸出的頻率信號可送至數字頻率計或控制系統,經整理后送顯示。R3為輸出端的限流電阻,起保護作用。通電后,電源沿著U ccR4R2C對HS1101 充電,經過t1 時間后濕敏電容的壓降Uc就被充電到TLC555的高觸發電平(Uh = 0.67Ucc) ,使部比較器翻轉, OUT端的輸出變成低電平。然后C開始放電, 放電回路為CR2D部放電管地。經過t2 時間后,Uc降

31、到低觸發電平(Ul =0.33Ucc) ,部比較器再次翻轉,使OUT端的輸出變成高電平。這樣周而復始的進行充、放電,形成了振蕩。充電、放電時間計算公式分別為:t1 =C(R2+R4)ln2; t2 =CR2ln2輸出波形的頻率(f)和占空比(D)的計算公式如下:f =1/T=1/(t1+t2) =1/C(2R2+R4)ln2D =t1/T=t1/(t1+t2) =R2+R4/(2R2+R4)通常取R480)PlaySnd(15);/播放潮濕PlaySnd(17);/播放請PlaySnd(18);/播放打開PlaySnd(19);/播放除濕機if(Result30)PlaySnd(16);/播放

32、太干PlaySnd(17);/播放請PlaySnd(18);/播放打開PlaySnd(20);/播放加濕器else*P_Watchdog_Clear = 0 x0001;/清看門狗 *P_IOA_Data &= 0 xfffe;/IOA2口回低電平 *P_Watchdog_Clear = 0 x0001;/清看門狗按鍵掃描程序/=/文件名稱:Key.c/功能描述:初始化鍵盤函數和掃描鍵盤函數/=#include SPCE061A.h/=/語法格式:void Key_Init(void)/實現功能:鍵盤初始化/參數:無/返回值:無/=void Key_Init(void)*P_IOA_Dir &

33、= 0 xfffe;/初始化IOA0為帶下拉電阻輸入口*P_IOA_Attrib &= 0 xfffe;*P_IOA_Data &= 0 xfffe;/=/語法格式:void Delay(void)/實現功能:延時/參數:無/返回值:無/=void delay(void)unsigned int uiCount;for(uiCount = 0;uiCount = 3000;uiCount+)*P_Watchdog_Clear = 0 x0001;/清看門狗/=/語法格式:unsigned int KeyScan(void)/實現功能:獲得鍵盤值并返回/參數:無/返回值:鍵盤值/=unsigne

34、d int KeyScan(void)unsigned int uiData;unsigned int uiTemp;uiData = *P_IOA_Data;/讀取IOA端口輸入uiData = uiData&0 x0001;/僅取最低位有效值if(uiData!=0)/非零則表示有鍵按下delay();/延時消抖uiTemp = *P_IOA_Data;uiTemp = uiTemp&0 x0001;/僅取最低位有效值if(uiData != uiTemp)uiData = 0;/兩次讀數不相等,則置返回值為0return uiData;/返回鍵值濕度測量程序/=/文 件 名: Hum_M

35、easure.c/功能描述: 濕度測量驅動程序/=#include SPCE061A.h#include math.h#define P_FeedBack (volatile unsigned int*)0 x7009unsigned int F_Counter,Flag=0;/=/語法格式:void Humidity_Init(void)/功能描述: 濕度測量初始化/入口參數: 無/出口參數: 無/=void Humidity_Init(void)*P_IOB_Dir |= 0 x020C;/初始化IOB2/IOB3為反相低電平輸出口,IOB4/IOB5為懸浮高電平輸入口,*P_IOB_At

36、trib |= 0 x0230;/如果要用SPCE061A的Feedback功能,必須這樣設置.詳細可參考SPCE061A的數據/編程手冊*P_IOB_Data |= 0 x0230;*P_FeedBack = 0 x000C;/設置IOB2345為特殊功能(反饋功能)口/=/語法格式:void Humidity_Measure(void)/功能描述: 濕度測量函數,測量數據存儲RH中,同時播放這個數據/入口參數: 無/出口參數: 無/=unsigned int Humidity_Measure(void)unsigned int i,iRH,max,min,f1,f2,err;/iRH為測量

37、濕度返回值,i用來循環/f1、f2分別為每次測量得到的Feedback1和Feedback2頻率計數值,err為測量錯誤判斷變量,iRH為測量返回值,unsigned int F_Con14,F_Con24;/兩個數組分別用來存放的4次頻率測量計數值 float RH,C,C1,Ca,f;/C為濕度傳感器的矯正電容、RH為濕度、f為Feedback1的頻率/C1為每次測量得到的濕度傳感器的電容,Ca為頻率補償后55%RH的電容 F_Counter = 0;/初始化各個變量f = 0;C = 0;iRH = 0;Humidity_Init();/濕度測量初始化for(i=0;i4;i+)/進行4

38、次的電容測量 *P_TimerB_Ctrl = 0 x0001;/32768Hz*P_TimerB_Data = 0 xF0FF;/計1280個數 (FFFF-FAFF)=160/FAFF/2560/3840*P_TimerA_Ctrl = 0 x0037;/EXT1 *P_TimerA_Data = 0 x0000;/設置定時初值Flag = 0;/中斷標志,這個位會在isr.asm的IRQ2中改變*P_INT_Ctrl |= 0 x0400;/允許IRQ2中斷_asm(int irq);/開IRQ中斷 while(Flag=0)/讀計數器的數據 *P_Watchdog_Clear = 0

39、x0001;/清看門狗 *P_TimerA_Ctrl = 0 x0006;/停止TimerA和TimerB的計數或者定時*P_TimerB_Ctrl = 0 x0006;F_Con1i = F_Counter;/讀取測量值,F_Counter在isr.asm的IRQ2中改變F_Counter = 0; *P_TimerB_Ctrl = 0 x0001;/32768Hz*P_TimerB_Data = 0 xF0FF;/計1280個數/3840 *P_TimerA_Ctrl = 0 x003D;/EXT2*P_TimerA_Data = 0 x0000;/設置定時初值Flag = 0;/中斷標志

40、,這個位會在isr.asm的IRQ2中改變 *P_INT_Ctrl |= 0 x0400;/允許IRQ2中斷_asm(irq on);/開IRQ中斷 while(Flag=0)/讀計數器的數據*P_Watchdog_Clear = 0 x0001;*P_TimerA_Ctrl = 0 x0006;/停止TimerA和TimerB的計數或者定時*P_TimerB_Ctrl = 0 x0006;F_Con2i = F_Counter;/讀取測量值,F_Counter在isr.asm的IRQ2中改變F_Counter = 0;/f1的處理;去掉測量4次中的一個最大值.一個最小值,兩個中間值的平均值即

41、為要測量數據max = F_Con10;/找出最大值,放在F_Con10中for(i=1;imax) max = F_Con1i;F_Con1i = F_Con10;F_Con10 = max;*P_Watchdog_Clear = 0 x0001;min = F_Con13;/找出最小值,放在F_Con13for(i=2;i0;i-)if(F_Con1iF_Con12)/錯誤處理,如果中間兩個數據相差太大,忽略這次測量數據,認為是一次錯誤測量err = F_Con11 - F_Con12; else err = F_Con12 - F_Con11;if(err10)f1 = (F_Con11

42、+F_Con12)/2; else f1 = 0;/f2的處理;去掉測量4次中的一個最大值.一個最小值,兩個中間值的平均值即為要測量數據max = F_Con20;/找出最大值,放在F_Con20中for(i=1;imax)max = F_Con2i;F_Con2i = F_Con20;F_Con20 = max;*P_Watchdog_Clear = 0 x0001;min = F_Con23;/找出最小值,放在F_Con23for(i=2;i0;i-)if(F_Con2iF_Con22)/錯誤處理,如果中間兩個數據相差太大,忽略這次測量數據,認為是一次錯誤測量err = F_Con21 -

43、 F_Con22;else err = F_Con22 - F_Con21;if(err100)/如果濕度大于100iRH = 0;/濕度強制賦0return iRH;*P_Watchdog_Clear = 0 x0001;/清看門狗語音播放程序/=/文 件 名: PlayVoice.c/功能描述: 語音播放函數/=#include SPCE061A.h#include s480.h/=/語法格式: void PlaySnd(unsigned int SndIndex) /功能描述: 指定段的語音播放函數/入口參數: SndIndex:播放的語音索引號,索引順序在Resource.asm中定義

44、/出口參數: 無/=void PlaySnd(unsigned int SndIndex)SACM_S480_Initial(1);/初始化為自動播放SACM_S480_Play(SndIndex,1,3);/選擇播放的段為第SndIndex段,DAC1通道,聲音可淡入淡出while(SACM_S480_Status()&0 x0001)!=0)/判斷是否播放完成 SACM_S480_ServiceLoop();/沒有播放完成,填充語音隊列*P_Watchdog_Clear = 0 x0001;/清看門狗SACM_S480_Stop();/語音播放停止/=/語法格式: void PlaySnd

45、(unsigned int SndIndex) /功能描述: 指定三位數據的語音播放函數/入口參數: iData:任意三位數據/出口參數: 無/=void PlayData(unsigned int iData)unsigned bai,shi;/分別存放百和十的語音索引號unsigned int Bw,Sw,Gw;/分別存放百位十位和個位數據bai = 11;/初始化百和十的語音索引號 shi = 10; Bw = iData/100;/計算百位Sw = (iData%100)/10;/計算十位 Gw = iData%10;/計算個位if(Bw!=0)PlaySnd(Bw);/播放百位,百位

46、為0時,不播放PlaySnd(bai);/播放百if(Sw!=0) PlaySnd(Sw);/如果十位不為0,播放十位PlaySnd(shi);/播放十 elseif(Bw!=0)/如果百位不為0,十位為0,播放0PlaySnd(Sw); if(Gw!=0)/如果個位不為0,播放個位PlaySnd(Gw); elseif(Bw=0)&(Sw=0)/如果百位、十位、個位都為0,播放0PlaySnd(Gw);*P_Watchdog_Clear = 0 x0001;FIQ中斷服務程序/=/文件名:isr.asm/功能描述:中斷服務函數文件/=.INCLUDE SPCE061A.inc.INCLUDE

47、 s480.inc/.EXTERNAL _iData/外部變量用來存儲IOA口讀到的數據/.EXTERNAL _RN_Rx/.EXTERNAL _iCouter/外部變量用來存儲電平的持續時間.EXTERNAL _F_Counter/外部變量用來存儲電平的持續時間.EXTERNAL _Flag/外部變量用來存儲電平的持續時間.TEXT/=/匯編語言格式:_BREAK/功能描述:BREAK的中斷服務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _BREAK_BREAK:reti /=/匯編語言格式:_FIQ/功能描述:FIQ的中斷服務函數/

48、 調用F_FIQ_Service_SACM_S480函數進行語音解碼和語音數據的輸出/入口參數:無/出口參數:無/=.PUBLIC _FIQ_FIQ:push r1,r5 tospr1 = 0 x2000test r1,P_INT_Ctrl/判斷是否為FIQ_TMA中斷jnz ?FIQ_TMA/是則轉向?FIQ_TMAr1 = 0 x0800test r1,P_INT_Ctrl/判斷是否為TMB中斷jnz ?FIQ_TMB/是則轉向?FIQ_TMBr1 = 0 x8000 P_INT_Clear = r1/清FIQ_PWM中斷標志 jmp ?exit?FIQ_TMA:P_INT_Clear =

49、 r1/清FIQ_TMA中斷標志call F_FIQ_Service_SACM_S480/調用F_FIQ_Service_SACM_S480函數解碼并輸出到語音輸出通道jmp ?exit?FIQ_TMB:P_INT_Clear = r1/清FIQ_TMB中斷?exit:pop r1,r5 fromspreti /=/匯編語言格式:_IRQ0/功能描述:IRQ0的中斷服務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _IRQ0_IRQ0:reti /=/匯編語言格式:_IRQ1/功能描述:IRQ1的中斷服務函數/ 如果需要,請在reti前面

50、寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _IRQ1_IRQ1:reti/=/匯編語言格式:_IRQ2/功能描述:IRQ2的中斷服務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _IRQ2_IRQ2:push r1,r5 tospr1 = 0 x0400P_INT_Clear = r1/清中斷標志位r1 = P_TimerA_Data _F_Counter = r1/保存TimerA的計數值r1 = 1_Flag = r1/設置定時時間溢出標志pop r1,r5 fromspreti /=/匯編語言格式:_IRQ

51、3/功能描述:IRQ3的中斷服務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _IRQ3_IRQ3:reti /=/匯編語言格式:_IRQ4/功能描述:IRQ4的中斷服務函數/ 這個中斷服務程序進行發送和接受數據/入口參數:無/出口參數:無/=.PUBLIC _IRQ4_IRQ4:reti /=/匯編語言格式:_IRQ5/功能描述:IRQ5的中斷服務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _IRQ5_IRQ5:reti /=/匯編語言格式:_IRQ6/功能描述:IRQ6的中斷服

52、務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無/=.PUBLIC _IRQ6_IRQ6:reti /=/匯編語言格式:_IRQ7/功能描述:IRQ7的中斷服務函數/ 如果需要,請在reti前面寫用戶的中斷服務函數/入口參數:無/出口參數:無.PUBLIC _IRQ7_IRQ7:Reti學位論文原創性聲明本人重聲明:所呈交的學位論文,是本人在導師的指導下進行的研究工作所取得的成果。盡我所知,除文中已經特別注明引用的容和致的地方外,本論文不包含任何其他個人或集體已經發表或撰寫過的研究成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式注明并表示感。本人完全意識到本聲明的法律結果由本人承擔。學位論文作者(本人簽名): 年 月 日學位論文出版授權書本人

溫馨提示

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

評論

0/150

提交評論