atmega16軟硬件溫室大棚數(shù)據(jù)采集畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計</b></p><p>  ATMEGA16軟硬件溫室大棚數(shù)據(jù)采集</p><p>  題 目:ATMEGA16軟硬件溫室大棚數(shù)據(jù)采集</p><p><b>  摘要</b></p><p>  濕度與人們的生活和工農(nóng)業(yè)生產(chǎn)有著密切的關(guān)系。為了創(chuàng)造舒適

2、的生活環(huán)境和理想的生產(chǎn)條件,必須對空氣濕度進行精確檢測和調(diào)整控制。本文論述了基于測控技術(shù)的空氣濕度檢測報警裝置的硬件和監(jiān)控軟件的設(shè)計與實現(xiàn)。該系統(tǒng)以AVR單片機ATmega16為硬件核心,通過實時采集和數(shù)據(jù)處理能夠準確地監(jiān)測環(huán)境濕度,采用LED 數(shù)碼管作為輔助顯示模塊,顯示當(dāng)前環(huán)境濕度,當(dāng)被測環(huán)境濕度超過預(yù)設(shè)定數(shù)值時,將產(chǎn)生聲光報警,并且用PC機作為上位機為系統(tǒng)提供一個可視的操作界面,實現(xiàn)串口通信,數(shù)據(jù)庫保存、查詢、備份等功能。文中重點

3、講述系統(tǒng)的軟硬件結(jié)構(gòu)和功能特點,著重闡述了信號采集處理、單片機及擴展電路的設(shè)計思路和實現(xiàn)方法。在目前的試用中,該系統(tǒng)能夠可靠、穩(wěn)定、安全的測量現(xiàn)場濕度,具有推廣應(yīng)用價值。</p><p>  關(guān)鍵詞:濕度傳感器;AVR單片機;濕度檢測;</p><p><b>  目 錄</b></p><p><b>  摘要I</b&g

4、t;</p><p><b>  第1章 緒論1</b></p><p>  1.1 課題背景、目的及意義1</p><p>  1.1.1 課題背景1</p><p>  1.1.2 課題的目的及意義2</p><p>  1.2 系統(tǒng)設(shè)計內(nèi)容2</p><

5、;p>  第2章 系統(tǒng)概述4</p><p>  2.1 系統(tǒng)設(shè)計主要原理4</p><p>  2.2 系統(tǒng)硬件設(shè)計方案4</p><p>  2.2.1 微控制器的選擇4</p><p>  2.2.2 濕度傳感器的選擇5</p><p>  2.2.3 顯示方案的確定6</p&

6、gt;<p>  2.3 系統(tǒng)軟件設(shè)計方案7</p><p>  2.3.1 上位機軟件設(shè)計方案8</p><p>  2.3.2 微控器軟件設(shè)計方案9</p><p>  第3章 系統(tǒng)硬件設(shè)計實現(xiàn)12</p><p>  3.1 電子濕度計系統(tǒng)的組成結(jié)構(gòu)12</p><p>  3.

7、2 主控器最小系統(tǒng)13</p><p>  3.2.1 ATmega16簡介13</p><p>  3.2.2 引腳圖及引腳介紹14</p><p>  3.2.3 單片機最小系統(tǒng)電路設(shè)計15</p><p>  3.2.3.1 電源設(shè)計15</p><p>  3.2.3.2 復(fù)位電路設(shè)計1

8、6</p><p>  3.2.3.3 晶振電路設(shè)計17</p><p>  3.2.3.4 串口通信電路設(shè)計18</p><p>  3.3 濕度傳感器檢測模塊電路設(shè)計19</p><p>  3.4 LED數(shù)碼管的顯示電路設(shè)計20</p><p>  第4章 系統(tǒng)軟件設(shè)計實現(xiàn)22</p&g

9、t;<p>  4.1 總體軟件設(shè)計22</p><p>  4.2 開機自檢模塊程序設(shè)計23</p><p>  4.3 濕度采集程序設(shè)計23</p><p>  濕度數(shù)據(jù)采集程序流程圖下圖如圖4-3所示:23</p><p>  4.4 數(shù)據(jù)處理與聲光報警程序設(shè)計24</p><p>

10、;  4.5 串行通信模塊程序設(shè)計25</p><p>  4.6 上位機程序設(shè)計26</p><p>  第5章系統(tǒng)調(diào)試29</p><p>  5.1 硬件靜態(tài)測試29</p><p>  5.2 系統(tǒng)聯(lián)機調(diào)試及結(jié)果30</p><p>  5.2.1 微控制器測試30</p>

11、<p>  5.2.2 顯示電路調(diào)試31</p><p>  5.2.3 聲光報警電路測試31</p><p>  5.3 測試結(jié)果31</p><p><b>  總結(jié)32</b></p><p>  附錄1 ATmega16的引腳圖33</p><p>  附錄2

12、 系統(tǒng)設(shè)計溫濕度采集程序34</p><p>  第1章 緒 論</p><p>  本章主要介紹本次畢業(yè)設(shè)計的研究的背景、目的與作用,以及在本次設(shè)計的主要內(nèi)容和設(shè)計技術(shù)指標。</p><p>  1.1 課題背景、目的及意義</p><p>  1.1.1 課題背景</p><p>  濕度是表示大氣干

13、燥程度的物理量。在一定的溫度下在一定體積的空氣里含有的水汽越少,則空氣越干燥;水汽越多,則空氣越潮濕。空氣的干濕程度叫做“濕度”。在此意義下,常用絕對濕度、相對濕度、比較濕度、混合比等物理量來表示。</p><p>  空氣濕度在許多方面有重要的用途,在大氣學(xué)、氣象學(xué)和氣候?qū)W中它主要是理論中的一個重要值,而在實際生產(chǎn)生活中應(yīng)用也極為廣泛。下雨的時候,空氣濕度是非常大的在氣象學(xué)和水文學(xué)中濕度是決定蒸發(fā)和蒸騰的重要數(shù)

14、據(jù)。它對不同的氣候區(qū)的產(chǎn)生起決定性的作用。而在天氣預(yù)報中,更常用到相對濕度。它反映了降雨、有霧的可能性。在醫(yī)學(xué)上空氣的濕度與呼吸之間的關(guān)系非常緊密。在一定的濕度下氧氣比較容易通過肺泡進入血液。一般人在45—55%的相對濕度下感覺最舒適。過熱而不通風(fēng)的房間里的相對濕度一般比較低,這可能對皮膚不良和對粘膜有刺激作用。濕度過高影響人調(diào)節(jié)體溫的排汗功能,人會感到悶熱。在生物學(xué)中,尤其是在生態(tài)學(xué)中空氣濕度是一個非常關(guān)鍵的量,它決定一個生態(tài)系統(tǒng)的組

15、成。在存放水果的倉庫里濕度決定水果的成熟。在存放金屬的倉庫里濕度過高可能導(dǎo)致腐蝕,其它許多貨物比如化學(xué)藥劑、煙、酒、香腸、木、藝術(shù)品、集成電路等等也必須在一定的濕度或在濕度為零的則件下存放。因此在許多倉庫、博物館、圖書館、計算機中心和一定的工廠(比如微電子工業(yè))中都有空調(diào)裝置來控制室內(nèi)的濕度。在建筑物理中露點是一個非常重要的量。假如一座建筑內(nèi)的溫度不一樣的話,那</p><p>  因此,實時、及時、準確地測量環(huán)

16、境濕度在實際應(yīng)用中具有重要的意義。</p><p>  1.1.2 課題的目的及意義</p><p>  數(shù)據(jù)采集是工農(nóng)業(yè)生產(chǎn)過程中進行監(jiān)控所必需的環(huán)節(jié),本課題是對嵌入式技術(shù)與數(shù)據(jù)采集技術(shù)的應(yīng)用,即用流行的AVR單片機平臺實現(xiàn)數(shù)據(jù)的采集與顯示。</p><p>  近年來隨著計算機在社會領(lǐng)域的滲透,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。

17、在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。目前AVR單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機、攝象機、全自動洗衣機的控制

18、,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。AVR單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,AVR單片機的應(yīng)用如此廣泛而又潛力,因而也不用質(zhì)疑其生命力[1]。</p><p>  本課題需要完成一個完整系統(tǒng)的設(shè)計,涉及到電子技術(shù)、傳感器技術(shù)、計算機應(yīng)用與控制技術(shù)等多學(xué)科知識,是一個硬軟件相結(jié)合的設(shè)計性題目

19、。本課題融知識性與趣味性于一體,提供了一個有力的了解小家電設(shè)計技術(shù)的平臺,能提高檢索文獻資料的能力、電子系統(tǒng)設(shè)計的能力、實際動手的能力。而且可以通過這次設(shè)計,很好的掌握系統(tǒng)設(shè)計的工作流程、開發(fā)步驟;熟悉單片機開發(fā)的通用編程語言。</p><p>  1.2 系統(tǒng)設(shè)計內(nèi)容</p><p>  本設(shè)計的題目是“基于單片機Mega16的電子濕度計設(shè)計”。選擇Mega16單片機為系統(tǒng)的主控芯片,

20、采用DHT11濕度傳感器作為環(huán)境濕度的傳感器,經(jīng)過一系列處理實現(xiàn)對環(huán)境濕度進行智能地實時監(jiān)測,當(dāng)濕度超出標準范圍時能自動報警。并且用PC機作為上位機為系統(tǒng)提供一個可視的操作界面,實現(xiàn)串口通信,數(shù)據(jù)庫保存、查詢以及備份等功能。</p><p>  系統(tǒng)設(shè)計詳細任務(wù)如下:</p><p> ?。?)整體方案的確定:包括單片機、傳感器的選型,用AVR單片機作為主控器,分析ATmegal16單片機

21、與溫濕度傳感器等部件實現(xiàn)軟、硬件接口的技術(shù)以及數(shù)據(jù)顯示方案濕度傳感器模塊設(shè)計:熟悉濕度傳感器工作原理,確定其與AVR單片機的接口設(shè)計方案。</p><p> ?。?)數(shù)據(jù)采集的算法設(shè)計:將采集的數(shù)據(jù)經(jīng)過數(shù)字濾波轉(zhuǎn)化為數(shù)字量傳入單片機,濕度數(shù)據(jù)是由傳感器測得現(xiàn)場濕度信號經(jīng)變送器轉(zhuǎn)換直流信號,送到A/D模數(shù)轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字量后,再送入單片機進行數(shù)據(jù)處理,對處理后的數(shù)據(jù)比較做出控制量的選擇。</p>&l

22、t;p> ?。?)數(shù)據(jù)顯示模塊設(shè)計:系統(tǒng)使用DV12864液晶顯示屏,并擴展報警功能,在要求的濕度達到一定的上界或者下界時,報警電路開始工作。</p><p> ?。?)上位機程序設(shè)計: 該部分的主要任務(wù)是用PC機為上位機提供一個可視的操作界面,實現(xiàn)串口通信,數(shù)據(jù)保存、查詢以及備份等功能。</p><p> ?。?)AVR單片機最小系統(tǒng)的設(shè)計。</p><p>

23、;  實現(xiàn)所有的硬件、軟件設(shè)計、系統(tǒng)整體調(diào)試、形成可以正常運行的產(chǎn)品為本次設(shè)計的最終目標。</p><p>  論文將從系統(tǒng)的設(shè)計總體方案;硬件、軟件的設(shè)計實現(xiàn);系統(tǒng)的調(diào)試等方面進行介紹。</p><p><b>  第2章 系統(tǒng)概述</b></p><p>  本章分為三個部分,主要介紹本次設(shè)計的系統(tǒng)的主要設(shè)計原理,給出硬件選擇以及軟件設(shè)計

24、的最終方案。</p><p>  2.1 系統(tǒng)設(shè)計主要原理</p><p>  空氣濕度檢測是生活和工業(yè)測量中很重要的部分,根據(jù)采用的測量元件和測量方法的不同,其精度也不同,因而對數(shù)據(jù)采集(A/D轉(zhuǎn)換)的精度也不同,對測量結(jié)果的定標要到專業(yè)的計量部門才能進行,這樣就給現(xiàn)場測量帶來了很大的不便,我們在空氣濕度測量的研究和設(shè)計過程中查閱了大量的資料和成果,結(jié)合測控專業(yè)的特點,提出了能夠?qū)崿F(xiàn)空

25、氣濕度檢測和報警的系統(tǒng)設(shè)計方案。</p><p>  系統(tǒng)由濕度傳感器將濕度轉(zhuǎn)換為模擬電壓信號,此mV級電信號經(jīng)低通濾波器濾掉干擾信號,然后由放大器將信號放大為0~5V后,送A/D轉(zhuǎn)換器,變換成數(shù)字量送MCU[2]。MCU接收到信號后進行數(shù)據(jù)分析,當(dāng)空氣濕度達到設(shè)定邊緣值,將輸出數(shù)字信號驅(qū)動聲光報警(若組建網(wǎng)絡(luò)后將向上位PC機輸出所處位置及報警值)以讓監(jiān)控人員及時進行處理。</p><p>

26、;  2.2 系統(tǒng)硬件設(shè)計方案</p><p>  2.2.1 微控制器的選擇</p><p>  目前,再電子系統(tǒng)研究與設(shè)計中,常用的微控器有MC51單片機、PIC單片機、AVR單片機和ARM芯片。</p><p>  方案一:采用ARM作為微控器</p><p>  ARM 微處理器已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、

27、無線系統(tǒng)等各類產(chǎn)品市場,基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場份額。但是,ARM技術(shù)往往需要第三方工具、軟件的支持,且ARM系列處理器很少集成片上硬件資源,實際產(chǎn)品成本方面,ARM配置外設(shè)價格較高,PCB版也好設(shè)計,往往還需要考慮信號的完整性等,因此,對于初學(xué)者來說,使用起來不是很方便。</p><p>  方案二:采用PIC單片機作為微控器</p><p&

28、gt;  PIC單片機速度快,片內(nèi)資源豐富,抗干擾能力強,價格便宜。但沒有地址總線,不適宜做大系統(tǒng),而且只能使用匯編指令,雖然筒單,但不適合寫大程序。CPU采用RISC結(jié)構(gòu),分別僅有33,35,58條指令,采用Harvard雙總線結(jié)構(gòu),運行速度快,低工作電壓,低功耗,較大的輸入輸出直接驅(qū)動能力,一次性編程,小體積,適用于用量大、檔次低、價格敏感的產(chǎn)品。</p><p>  方案三:采用AVR單片機作為微控器[3]

29、</p><p>  AVR單片機采用的RISC優(yōu)先選取使用頻率最高的簡單指令,避免復(fù)雜指令:并固定指令寬度,減少指令格式和尋址方式的種類,從而縮短指令周期,提高運行速度。AVR單片機的程序存儲器和數(shù)據(jù)存儲器是分離的,并且可對具有相同地址的程序存儲器和數(shù)據(jù)存儲器進行獨立的尋址。在AVR單片機中,CPU執(zhí)行當(dāng)前指令時取出將要執(zhí)行的下一條指令放入寄存器中,從而可以避免傳統(tǒng) MCS51系列單片機中多指令周期的出現(xiàn)。傳統(tǒng)

30、的MCS51系列單片機所有的數(shù)據(jù)處理都是基于一個累加器的,因此累加器與程序存儲器、數(shù)據(jù)存儲器之間的數(shù)據(jù)轉(zhuǎn)換就成了單片機的瓶頸;在AVR單片機中,寄存器由32個通用工作寄存器組成,并且任何一個寄存器都可以充當(dāng)累加器,從而有效地避免了累加器的瓶頸效應(yīng),提高了系統(tǒng)的性能。</p><p>  綜上所述,AVR單片機與51單片機、PIC單片機相比運行效率高很多、芯片內(nèi)部的Flsah、EEPROM、SRAM容量較大、全部支

31、持在線編程擦寫、每個I/O口都可以以推換驅(qū)動的方式輸出高、低電平,驅(qū)動能力強、內(nèi)部資源豐富,一般都集成AD、DA模數(shù)轉(zhuǎn)換器;PWM;SPI、USART、TWI、I2C通信口;豐富的中斷源等?,F(xiàn)在比較流行的型號是ATmega8/16。所以,本設(shè)計選用ATmega16單片機作為主控芯片。</p><p>  2.2.2 濕度傳感器的選擇</p><p>  目前,市場上有許多類型的濕度傳感器

32、,其參數(shù)及適用場合等各不相同,現(xiàn)就幾種常用的濕度傳感器進行比較。</p><p>  方案一:采用BQ8-CHR系列濕度傳感器</p><p>  BQ8-CHR系列濕度傳感器采用功能高分子膜涂敷在帶有導(dǎo)電電極陶瓷襯底上,形成阻抗隨相對濕度變化成對數(shù)變化的敏感部件,導(dǎo)電機理為水分子的存在影響高分子膜內(nèi)部導(dǎo)電離子的遷移率。其具有穩(wěn)定、低漂移、高精度、快速響應(yīng)特性、高可靠,耐水性好等特點,具有

33、很好的適應(yīng)性。特征阻抗范圍為,但是由于其工作電壓為1V AC(50~2KHz),而本次設(shè)計使用的均為直流電源,所以排除使用BQ8-CHR系列濕度傳感器。</p><p>  方案二:采用HS1101濕度傳感器</p><p>  用濕度傳感器HS1101做成的電壓輸出濕度模塊,高可靠性與長時間穩(wěn)定性,在5VDC供電時,0~100%RH對應(yīng)輸出1~4VDC線性電壓,溫度依賴性非常低;寬量程:

34、0~100%RH,工作溫度范圍寬;5VDC恒壓供電,1-4VDC放大線形電壓輸出;抗靜電,防灰塵,有效抵抗各種腐蝕性氣體物質(zhì)常溫使用無需溫度補償;無需校準;電容與濕度變化0.34pf/%RH;典型值180pf@55%RH;長期穩(wěn)定性及可靠性,年漂移量0.5%RH/年[4]。這款濕度傳感器的參數(shù)比較能適合本次設(shè)計,但是HS1101系列傳感器一般價格較高,通常用于工業(yè)生產(chǎn)過程。</p><p>  方案三:采用DHT

35、11系列濕度傳感器</p><p>  DHT11系列濕度傳感器相對濕度和溫度測量,全部校準,數(shù)字輸出,卓越的長期穩(wěn)定性,無需額外部件,超長的信號傳輸距離,超低能耗,4引腳安裝,完全互換,應(yīng)用范圍廣,供電電壓: 3.3~5.5V DC,測量范圍: 濕度20-90%RH, 溫度0~50℃,測量精度: 濕度+-5%RH, 溫度+-2℃,長期穩(wěn)定性: <±1%RH/年。</p><p

36、>  綜合比較可以發(fā)現(xiàn),DHT11系列濕度傳感器無論從穩(wěn)定性、應(yīng)用范圍,還是從價格等方面都比較適合于本次系統(tǒng)的設(shè)計,所以采用DHT11系列濕度傳感器作為濕度檢測元件。</p><p>  2.2.3 顯示方案的確定</p><p>  LCD和LED是目前普遍采用的兩種顯示技術(shù)。</p><p>  方案一:采用LCD顯示技術(shù)</p><

37、p>  LCD是液晶顯示屏的全稱,主要有TFT、UFB、TFD、STN等幾種類型的液晶顯示屏。其主要特點是:低壓應(yīng)用,低驅(qū)動電壓,固體化使用安全性和可靠性提高;平板化,又輕薄,節(jié)省了大量原材料和使用空間;低功耗,節(jié)省了大量的能源;品種多樣,使用方便靈活、維修、更新、升級容易等許多特點。顯示范圍覆蓋了從1英寸至40英寸范圍內(nèi)的所有顯示器的應(yīng)用范圍以及投影大平面,是全尺寸顯示終端;顯示質(zhì)量從最簡單的單色字符圖形到高分辨率,高彩色保真度

38、,高亮度,高對比度,高響應(yīng)速度的各種規(guī)格型號的視頻顯示器;顯示方式有直視型,投影型,透視式,也有反射式。環(huán)保特性好,無輻射、無閃爍,對使用者的健康無損害。</p><p>  方案二:采用LED顯示技術(shù)</p><p>  LED是發(fā)光二極管(Light Emitting Diode)的英文縮寫,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。LED應(yīng)用可分為兩大類:一

39、是LED單管應(yīng)用,包括背光源LED,紅外線LED等;另外就是LED顯示屏。目前,中國在LED基礎(chǔ)材料制造方面與國際還存在著一定的差距,但就LED顯示屏而言,中國的設(shè)計和生產(chǎn)技術(shù)水平基本與國際同步。LED顯示屏是由發(fā)光二極管排列組成的一顯示器件。它采用低電壓掃描驅(qū)動,具有耗電少、使用壽命長、成本低、亮度高、故障少、視角大、可視距離遠等特點。  綜合比較可以發(fā)現(xiàn),LCE低壓應(yīng)用,低驅(qū)動電壓,固體化使用安全性和可靠性提高;平板化,

40、又輕薄,節(jié)省了大量原材料和使用空間;低功耗,節(jié)省了大量的能源。在本設(shè)計中,采用LCD顯示技術(shù)[5]。</p><p>  2.3 系統(tǒng)軟件設(shè)計方案</p><p>  系統(tǒng)軟件包括單片機應(yīng)用軟件和PC 機應(yīng)用軟件。單片機應(yīng)用軟件主要實現(xiàn)定時數(shù)據(jù)采集、數(shù)字信號處理、存儲、顯示、通信處理等功能;PC 機應(yīng)用軟件主要是對進一步處理總站多路數(shù)據(jù)轉(zhuǎn)發(fā)器傳輸過來的數(shù)據(jù),提供友好的監(jiān)測界面,實現(xiàn)串口通

41、信,數(shù)據(jù)庫保存、查詢等功能。</p><p>  系統(tǒng)軟件部分的設(shè)計主要包括主程序和中斷服務(wù)程序。其中主程序的功能是完成系統(tǒng)的初始化、信號采集及處理、信息顯示、濕度超限報警。中斷服務(wù)程序根據(jù)中斷源來編寫需要執(zhí)行的內(nèi)容。系統(tǒng)的主程序流程圖如下圖圖2-1所示:</p><p>  2.3.1 上位機軟件設(shè)計方案</p><p>  現(xiàn)代化集中管理需要對現(xiàn)場數(shù)據(jù)進行統(tǒng)計

42、、分析、制表、打印、繪圖、報警等,同時,又要求對現(xiàn)場裝置進行實時控制,完成各種規(guī)定操作,達到集中管理的目的。加之單片機的計算能力有限,難以進行復(fù)雜的數(shù)據(jù)處理。因此在功能比較復(fù)雜的控制系統(tǒng)中,通常以PC機為上位機,單片機為下位機,由單片機完成數(shù)據(jù)的采集及對裝置的控制,而由上位機完成各種復(fù)雜的數(shù)據(jù)處理及對單片機的控制。</p><p>  目前,大家普遍采用C++、VB、VC、VC#等高語言進行上位機的編程。<

43、/p><p>  方案一:采用VB作為編程語言</p><p>  用VB開發(fā)串行通信程序有兩種法,一種是利用Windows的API函數(shù);另一種是采用VB的通信控件MSComm。利用API函數(shù)編寫串行通信程序較為復(fù)雜,需要掌握大量的通信知識,其優(yōu)點是可實現(xiàn)的功能更豐富、應(yīng)用面更廣泛,適合于編寫較為復(fù)雜的低層次通信程序。而VB的MSComm通信控件提供了標準的事件處理函數(shù)、事件、方法,并通過控件

44、屬性對串口參數(shù)進行設(shè)置,比較容易地解決了串口通信問題。但是VB不支持繼承,沒有“構(gòu)造函數(shù)”,不能在new操作時根據(jù)情況初試化一些變量,由于不能繼承,如果VB自帶的控件不好用,就只有寄希望于第三方控件,增加了包袱,增加的出錯的風(fēng)險。</p><p>  方案二:采用C++或者VC作為編程語言</p><p>  C++與VC在實質(zhì)上是一種語言,VC是只不過是C++專用在WINDOWS下開發(fā)W

45、IN的軟件,集成WIN的API,而C++是一種泛指,Unix、Linux和WIN等操作系統(tǒng)下都可以用。但由于C++要兼容C的內(nèi)容,而C是面向過程的,所以C++不可避免地出現(xiàn)過程影子,并不算是完全的面向?qū)ο蟮某绦蛟O(shè)計語言。由于C++的事實標準的存在,即各個編譯器總存在差異,所以或多或少存在不兼容。而且各個軟件平臺的C++啟動代碼和硬件指令不同,編譯后的C++程序一般是不能跨平臺的。</p><p>  方案三:采用

46、VC#作為編程語言</p><p>  VC#的特點是簡單、功能強大、類型安全,而且是面向?qū)ο蟮摹C#憑借在許多方面的創(chuàng)新,在保持C語言風(fēng)格的表現(xiàn)力和雅致特征的同時,實現(xiàn)了應(yīng)用程序的快速開發(fā)。VC#保留了對底層操作系統(tǒng)API的直接調(diào)用和指針。VC#對集成現(xiàn)有代碼提供完全COM平臺支持,并且通過提供垃圾回收和類型安全實現(xiàn)可靠性,通過提供內(nèi)部代碼信任機制保證安全性,提供了生成持久系統(tǒng)級組件的能力。</p>

47、;<p>  綜合比較幾種常見的編程語言,本設(shè)計使用方案三,即采用C++或者VC作為上位機編程語言。</p><p>  2.3.2 微控器軟件設(shè)計方案</p><p>  常用的單片機編程語言是匯編和C語言。</p><p>  方案一:使用匯編語言</p><p>  匯編語言(Assembly Language)是面向機

48、器的程序設(shè)計語言。在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。匯編語言是面向具體機型的,它離不開具體計算機的指令系統(tǒng),因此,對于不同型號的計算機,有著不同的結(jié)構(gòu)的匯編語言,而且,對于同一問題所編制的匯編語言程序在不同種類的計算機間是互不相通的。匯編語言像機器指令一樣,是硬件操作的控制信息,因而仍然是面向機器的語言

49、,使用起來還是比較繁瑣費時,通用性也差。</p><p>  匯編語言能夠直接訪問與硬件相關(guān)的存儲器或I/O端口; 能夠不受編譯器的限制,對生成的二進制代碼進行完全的控制;能夠根據(jù)特定的應(yīng)用對代碼做最佳的優(yōu)化,提高運行速度; 能夠最大限度地發(fā)揮硬件的功能。但是還應(yīng)該認識到,匯編語言是一種層次非常低的語言,它僅僅高于直接手工編寫二進制的機器指令碼,因此不可避免地存在一些缺點:編寫的代碼非常難懂,不好維護; 很容易產(chǎn)

50、生Bug,難于調(diào)試;只能針對特定的體系結(jié)構(gòu)和處理器進行優(yōu)化;開發(fā)效率很低,時間長且單調(diào);兼容性不好,與硬件關(guān)系非常緊密。因而不是很適合初學(xué)者的應(yīng)用。</p><p><b>  方案二:使用C語言</b></p><p>  C語言的語法限制不太嚴格,對變量的類型約束不嚴格,影響程序的安全性,對數(shù)組下標越界不作檢查等[6]。指針是C語言的一大特色,可以說C語言優(yōu)于其它

51、高級語言的一個重要原因就是因為它有指針操作可以直接進行靠近硬件的操作,但是C的指針操作也給它帶來了很多不安全的因素。</p><p>  但是對于本次設(shè)計來還說,C語言具有以下優(yōu)點:</p><p>  (1)簡潔緊湊、靈活方便</p><p>  C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實

52、用性結(jié)合起來。C語言可以象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。</p><p><b> ?。?)運算符豐富</b></p><p>  C的運算符包含的范圍很廣泛,共有34個運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化。</p><p><b&

53、gt; ?。?)數(shù)據(jù)結(jié)構(gòu)豐富</b></p><p>  C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運算。</p><p> ?。?)C是結(jié)構(gòu)式語言</p><p>  結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻?/p>

54、晰,便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。</p><p> ?。?)C語法限制不太嚴格,程序設(shè)計自由度大</p><p>  雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。</p><p> ?。?)C語言允許直接訪問物理地址,可以直接

55、對硬件進行操作</p><p>  因為既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進行操作,可以用來寫系統(tǒng)軟件。</p><p> ?。?)C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高</p><p>  一般只比匯編程序生成的目標代碼效率低10へ20%。</p><p>  綜合比較之后,本次設(shè)計采用方案

56、二,即使用C語言作為微控制器的編程語言。</p><p>  第3章 系統(tǒng)硬件設(shè)計實現(xiàn)</p><p>  硬件是系統(tǒng)的載體與執(zhí)行結(jié)構(gòu),硬件設(shè)計是本次設(shè)計的重點,主要設(shè)計傳感器信號放大、采集、處理,顯示處理,聲光報警,執(zhí)行電路設(shè)計,系統(tǒng)供電等多個部分。本章分為6節(jié)介紹系統(tǒng)的硬件設(shè)計實現(xiàn)。</p><p>  3.1 電子濕度計系統(tǒng)的組成結(jié)構(gòu)</p>

57、<p>  系統(tǒng)用時下流行且功能強大的AVR單片機來控制數(shù)據(jù)采集與顯示模塊,利用單片機采集環(huán)境濕度值,進行存儲和顯示,經(jīng)過簡單的運算發(fā)出各種控制命令,并能動態(tài)的顯示當(dāng)前濕度值,設(shè)定目標控制濕度值,當(dāng)空氣濕度高于65%或低于38%時,報警電路(包括報警器、閃爍燈)開始工作。也就是說,現(xiàn)場溫度經(jīng)溫度傳感器采樣后變換為模擬電壓信號,經(jīng)低通濾波濾掉干擾信號后送放大器,信號放大后送單片機,在要求的濕度達到一定的上界或者下界時,報警電路

58、開始工作。并且使用PC機為上位機提供一個可視的操作界面,并實現(xiàn)串口通信,數(shù)據(jù)保存、查詢、備份以及控制功能。</p><p>  系統(tǒng)整體結(jié)構(gòu)方框圖如下圖圖3-1所示:</p><p>  本電子濕度計系統(tǒng)模塊由以下幾個模塊組成:濕度傳感器檢測部分模塊,AVR單片機主控制器,LCE液晶顯示模塊,最終來實現(xiàn)對空氣濕度的檢測報警提示以及數(shù)據(jù)保存和歷史數(shù)據(jù)查詢。</p><p&

59、gt;  3.2 主控制器最小系統(tǒng)</p><p>  3.2.1 ATmega16簡介[7]</p><p>  ATmega16單片機是1997年由ATMEL公司研發(fā)出的增強型內(nèi)置Flash的RISC精簡指令集高速8位單片機。該單片機具有AVR高性能、低功耗RISC結(jié)構(gòu),工作在8MHz時具有8MIPS的性能,同時片內(nèi)16KB的在線可編程FLASH存儲器,可擦除1000次以上,并且集

60、成了512B的SRAM 和512 B在線可編程EEPROM。另一個顯著的特點是自帶8通道10位高精度的逐次逼近式A/D轉(zhuǎn)換器,A/D引腳與PA口的引腳兩者復(fù)用,可以通過程序指定來加以區(qū)別應(yīng)用。另外,它還擁有很寬的工作電壓范圍,可以在2.7~6V之間正常運行,具備很強的適應(yīng)性。</p><p>  AVR單片機具有良好的集成性能,采用低功率、非揮發(fā)的CMOS工藝制造,除具有低功耗、高密度的特點外,還支持低電壓的聯(lián)機

61、Flash,EEPROM寫入功能。AVR單片機還支持 Basic、C等高級語言編程。采用高級語言對單片機系統(tǒng)進行開發(fā)是單片機應(yīng)用的發(fā)展趨勢。對單片機用高級語言編程可很容易地實現(xiàn)系統(tǒng)移植,并加快軟件的開發(fā)過程。</p><p>  ATmega16的主要性能參數(shù)及特性如下:</p><p>  ● 16K 字節(jié)可重擦寫Flash閃存存儲器,擦寫壽命為10000次;</p>&l

62、t;p>  ● 在16MHZ頻率下速度為16MIPS的8位RISC結(jié)構(gòu)單片機,內(nèi)含硬件乘法器;</p><p>  ● 32個可編程的I/O口,40引腳PDIP封裝,32個通用寄存器;</p><p><b>  ● 全靜態(tài)工作;</b></p><p>  ● 8通道10位AD轉(zhuǎn)換器,支持單端和雙端差分信號輸入,內(nèi)帶增益可編程運算放大器

63、;</p><p>  ● 2個8位定時/計數(shù)器,1個16位定時/計數(shù)器,帶捕捉、比較功能;</p><p>  ● 通過JTAG接口實現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程;</p><p>  ● 兩個可編程的串行USART,可工作于主機/ 從機模式的SPI 串行接口。</p><p>  ATmega16可降至0Hz的靜態(tài)邏

64、輯操作,并支持兩種軟件可選的節(jié)電工作模式:空閑方式停止CPU的工作,但允許RAM、定時/計數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作;掉電方式保存RAM中的內(nèi)容,但是振蕩器停止工作并禁止其他所有部件工作到下一個硬件復(fù)位。</p><p><b>  引腳圖及引腳介紹</b></p><p>  ATmega16的引腳圖見附錄1。</p><p>  V

65、CC 電源正 </p><p><b>  GND 電源地</b></p><p>  端口A(PA7~PA0) 端口A作為A/D 轉(zhuǎn)換器的模擬輸入端。端口A為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還

66、未起振,端口A 處于高阻狀態(tài)。</p><p>  端口B(PB7~PB0) 端口B為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口B處于高阻狀態(tài)。</p><p>  端口C(PC7~PC0) 端口C為8位雙向I/O口,具有可

67、編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口C 處于高阻狀態(tài)。如果JTAG接口使能,即使復(fù)位出現(xiàn)引腳PC5(TDI)、PC3(TMS)與PC2(TCK)的上拉電阻被激活。</p><p>  端口D(PD7~PD0) 端口D為8位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸

68、出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口D處于高阻狀態(tài)。</p><p>  RESET 復(fù)位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復(fù)位。持續(xù)時間小于門限間的脈沖不能保證可靠復(fù)位。</p><p>  XTAL1 反向振蕩放大器與片內(nèi)時鐘操作電路的輸入端

69、。</p><p>  XTAL2 反向振蕩放大器的輸出端。</p><p>  AVCC AVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時,該引腳應(yīng)直接與VCC連接。使用ADC時應(yīng)通過一個低通濾波器與VCC 連接。</p><p>  AREF A/D的模擬基準輸入引腳。</p><p>  單片機最小系統(tǒng)電路設(shè)計</p

70、><p>  在單片機硬件最小系統(tǒng)中,沒有任何信號線的連接,只有電源到主板的電源連接,在判斷的過程中通過電源指示燈及工作狀態(tài)指示燈來判斷這一核心組成部分是否可正常工作。ATmega16單片機的最小系統(tǒng)如下圖圖3-3所示。</p><p>  圖3-3 單片機最小系統(tǒng)</p><p>  3.2.3.1 電源設(shè)計</p><p>  圖3-4

71、 ATmega16單片機電源</p><p>  單片機是一個電子器件,一個電子器件能夠工作的第一個前提就是要有電源電源是一切電子器件工作的前提,對于單片機系統(tǒng)也不例外。AVR單片機最常用的電源電壓是5V。</p><p>  ATmega16的電源電路設(shè)計如上圖圖3-4所示。</p><p>  3.2.3.2 復(fù)位電路設(shè)計</p><p&g

72、t;  ATmega16有5個復(fù)位源[8]:</p><p><b>  (1)上電復(fù)位</b></p><p>  電源電壓低于上電復(fù)位門限VPOT時,MCU復(fù)位。上電復(fù)位(POR)脈沖由片內(nèi)檢測電路產(chǎn)生,POR電路保證器件在上電時復(fù)位。VCC達到上電門限電壓后觸發(fā)延遲計數(shù)器。在計數(shù)器溢出之前器件一直保持為復(fù)位狀態(tài)。當(dāng)VCC下降時,只要低于檢測門限,RESET信號立

73、即生效。</p><p><b>  (2)外部復(fù)位</b></p><p>  引腳RESET上的低電平持續(xù)時間大于最小脈沖寬度時MCU復(fù)位。外部復(fù)位由外加于RESET引腳的低電平產(chǎn)生。當(dāng)復(fù)位低電平持續(xù)時間大于最小脈沖寬度時即觸發(fā)復(fù)位過程,即使此時并沒有時鐘信號在運行。當(dāng)外加信號達到復(fù)位門限電壓VRST(上升沿)時,tTOUT延時周期開始。延時結(jié)束后MCU即啟動。&

74、lt;/p><p><b>  (3)看門狗復(fù)位</b></p><p>  看門狗使能并且看門狗定時器溢出時復(fù)位發(fā)生。看門狗定時器溢出時將產(chǎn)生持續(xù)時間為1個CK周期的復(fù)位脈沖。在脈沖的下降沿,延時定時器開始對tTOUT記數(shù)。</p><p><b> ?。?)掉電檢測復(fù)位</b></p><p>  

75、掉電檢測復(fù)位功能使能,且電源電壓低于掉電檢測復(fù)位門限VBOT時MCU即復(fù)位。BOD電路的開關(guān)由熔絲位BODEN控制。當(dāng)BOD使能后(BODEN被編程),一旦VCC下降到觸發(fā)電平以下(VBOT-,F(xiàn)igure 19),BOD復(fù)位立即被激發(fā)。當(dāng)VCC上升到觸發(fā)電平以上時(VBOT+,F(xiàn)igure19),延時計數(shù)器開始計數(shù),一旦超過溢出時間tTOUT,MCU即恢復(fù)工作。</p><p> ?。?)JTAG AVR復(fù)位&

76、lt;/p><p>  復(fù)位寄存器為1時MCU復(fù)位。JTAG通過復(fù)位寄存器mcur,復(fù)位寄存器為1時MCU復(fù)位。通過JTAG指令A(yù)VR_RESET可以使JTAG復(fù)位寄存器置位,并引發(fā)MCU復(fù)位,并使 JTRF 置位。上電復(fù)位將使其清零,也可以通過寫“0”來清除。</p><p>  本設(shè)計選用了最直接的復(fù)位形式,由于AVR單片機本身內(nèi)部帶有復(fù)位電路的優(yōu)勢,只需要接一個10K上拉電阻就可以完成復(fù)

77、位電路的設(shè)計。為了可靠,可以加上一只0.1uF的電容以消除干擾和雜波,如下圖圖3-5所示:</p><p>  圖3-5 單片機復(fù)位電路圖</p><p><b>  晶振電路設(shè)計</b></p><p>  單片機內(nèi)部的各種功能電路絕大多數(shù)是由數(shù)字電路構(gòu)成的。數(shù)字電路的工作過程,尤其是時序邏輯電路的工作過程,離不開時鐘脈沖信號,即時間基準信

78、號,每一步細微的動作都是在一個共同的時間基準信號驅(qū)動之下完成的。作為時基發(fā)生器的時鐘振蕩電路,為整個單片機芯片內(nèi)部各個部分電路的工作提供系統(tǒng)時鐘信號,也在為單片機與其他外接芯片之間的通信以及與其他數(shù)字系統(tǒng)或者計算機系統(tǒng)之間通信,提供可靠的同步時鐘信號。</p><p>  AVR單片機設(shè)計了4種類型的時基振蕩方式可供選擇:標準的晶體振蕩器/陶瓷諧振器振蕩方式XT;高頻的晶體振蕩器/陶瓷諧振器振蕩方式HS(4MHz

79、)以上;低頻的晶體振蕩器/陶瓷諧振器振蕩方式LP(32.768kHz);外接電容元件的阻容振蕩方式RC。在本設(shè)計中,由于需要考慮到通信時的波特率的設(shè)置,所以選用能產(chǎn)生較精確時鐘的晶體振蕩器(7.3728MHz)。晶振電路與單片機內(nèi)部結(jié)構(gòu)關(guān)系圖如下圖圖3-6所示。</p><p>  為了由外部源驅(qū)動器件,當(dāng)XTAL1被驅(qū)動時,XTAL2不能連接,如下圖圖3-7所示。</p><p>  圖

80、3-6 晶振電路設(shè)計</p><p>  3.2.3.4 串口通信電路設(shè)計</p><p>  圖3-8 串口通信電路</p><p>  3.3 濕度傳感器檢測模塊電路設(shè)計</p><p>  傳感器是準確檢測濕度的關(guān)鍵,本次設(shè)計采用DHT11作為濕度檢測元件,其特點如下:</p><p>  (1)卓越的長

81、期穩(wěn)定性</p><p> ?。?)輸 出: 單總線數(shù)字信號</p><p> ?。?)測量范圍: 濕度20-90%RH, 溫度0~50℃</p><p> ?。?)測量精度: 濕度+-5%RH, 溫度+-2℃</p><p>  (5)分 辨 率: 濕度1%RH, 溫度1℃</p><p> ?。?)互 換 性: 可

82、完全互換 </p><p> ?。?)長期穩(wěn)定性: <±1%RH/年</p><p><b> ?。?)超低能耗</b></p><p>  DHT11濕度傳感器引腳說明如表3-9所示:</p><p>  圖3-9 DHT11濕度傳感器引腳說明</p><p>  DHT11濕

83、度傳感器接線示意圖如下圖圖3-10所示:</p><p>  圖3-10 DHT11引腳接法</p><p>  3.4 LCD數(shù)碼管的顯示電路設(shè)計</p><p>  設(shè)計中加入了LCD數(shù)碼管顯示模塊,用來實時顯示濕度的數(shù)值大小,以達到一個更加直觀的效果。本設(shè)計采用了單片機直接驅(qū)動的方式來完成對濕度值的顯示處理。</p><p>  LC

84、D數(shù)碼管的顯示電路設(shè)計電路圖如下圖圖3-11所示:</p><p>  圖3-10 DV12864C液晶顯示屏電路圖</p><p>  第4章 系統(tǒng)軟件設(shè)計實現(xiàn)</p><p>  系統(tǒng)軟件包括單片機應(yīng)用軟件和PC機應(yīng)用軟件。單片機應(yīng)用軟件主要實現(xiàn)定時數(shù)據(jù)采集、數(shù)字信號處理、存儲、顯示、通信處理等功能;PC機應(yīng)用軟件主要是進一步處理下位機傳輸過來的數(shù)據(jù),提供友好

85、的監(jiān)測界面,并進行數(shù)據(jù)的保存和歷史查詢等。</p><p>  本章將分為六個部分介紹系統(tǒng)軟件部分的設(shè)計,主要包括開機自檢、顯示處理、數(shù)據(jù)采集、數(shù)據(jù)處理與報警、串行通信等。</p><p>  4.1 總體軟件設(shè)計</p><p>  系統(tǒng)軟件設(shè)計總體流程框圖如下圖圖4-1所示。</p><p>  系統(tǒng)語言采用C語言編制,包括主程序和中斷

86、服務(wù)子程序。主程序的功能是完成系統(tǒng)的初始化、信號采集及處理、顯示、濕度超限報警以及與上位機之間的通信。根據(jù)系統(tǒng)工作特點,程序采用結(jié)構(gòu)化的軟件設(shè)計方法。</p><p>  4.2 開機自檢模塊程序設(shè)計</p><p>  開機自檢社設(shè)計在電源接通或者是系統(tǒng)復(fù)位之后,自檢中若沒有發(fā)現(xiàn)問題,就進入測控程序,如果發(fā)現(xiàn)問題則及時報警,以避免測控系統(tǒng)帶病工作[13]。</p><

87、;p>  本次設(shè)計僅僅設(shè)計了對CPU數(shù)據(jù)存儲器的校驗程序,采用破壞性校驗選用,只能用于開機自檢。其自檢程序流程圖如下圖圖4-2所示。</p><p><b>  濕度采集程序設(shè)計</b></p><p>  濕度數(shù)據(jù)采集程序流程圖下圖如圖4-3所示:</p><p>  4.4 數(shù)據(jù)處理與聲光報警程序設(shè)計</p><

88、p>  數(shù)據(jù)處理與聲光報警程序流程圖如下圖圖4-5所示:</p><p>  程序設(shè)置從第0路輸入的數(shù)據(jù)開始與設(shè)定的報警值比較,如果出現(xiàn)高于上限或者低于下限報警值的情況,則進入報警狀態(tài),開啟聲光報警,向上位機通信,最后等待外部中斷或者是復(fù)位。</p><p>  4.5串行通信模塊程序設(shè)計</p><p>  通信部分主要是用于向上位機發(fā)送數(shù)據(jù)或者是接收上位機

89、的數(shù)據(jù),只有在由計算機和單片機控制系統(tǒng)組成二級監(jiān)控體系時才會使用。但是本系統(tǒng)為了有良好的擴展功能,設(shè)計了串行通信部分的硬件和軟件,軟件中只有當(dāng)空氣濕度超出正常范圍時才向上位機發(fā)送數(shù)據(jù),以提示主控人員及時處理[15-16]。</p><p>  串行通信程序流程圖如下圖圖4-6所示。</p><p>  4.6 上位機程序設(shè)計</p><p>  通過綜合分析,本系

90、統(tǒng)至少應(yīng)具備如下功能:PC機與單片機都可發(fā)送和接收數(shù)據(jù),進行可以異步串行通信;單片機可接收PC機發(fā)來的數(shù)據(jù)并送LED顯示。</p><p>  本設(shè)計中,上位機程序即PC端程序采用VC#制作,人機界面友好,界面簡潔,功能完善,系統(tǒng)功能模塊圖見下圖圖4-7:</p><p>  在單片機系統(tǒng)中,比較常用的方法是直接調(diào)用串口發(fā)送單個字節(jié)數(shù)據(jù)的函數(shù)。這種方法的缺點是需要處理器在發(fā)送過程中全程參與

91、,優(yōu)點是所要發(fā)送的數(shù)據(jù)能夠立即的出現(xiàn)在通信線路上,能夠立即被接收端接收到[17]。上位機中關(guān)于串口通信的方式有多種,這種方式不是指數(shù)據(jù)有沒有緩沖的問題,而是操作串口的方式不同,因為PC上數(shù)據(jù)發(fā)送基本上都會被緩沖后再發(fā)送。對于編程來說操作串口有三種方式,一、使用windows系統(tǒng)中自帶的串口通信控件,這種方式使用起來比較簡單,需要注意的是接收時的阻塞處理和線程機制;二、使用系統(tǒng)的API直接進行串口數(shù)據(jù)的讀取,在windows和linux系

92、統(tǒng)中,設(shè)備被虛擬為文件,只需要利用系統(tǒng)提供的API函數(shù)即可進行串口數(shù)據(jù)的發(fā)送和讀??;三、使用串口類進行串口操作。本設(shè)計采用第三中方式,所以在此只介紹windows環(huán)境下利用串口類編程的方式[18]。</p><p>  SerialPort是比較好用的串口類。下面通過舉例的方式說明SerialPort提供的串口操作方法:</p><p>  SerialPort構(gòu)造函數(shù)()</p&g

93、t;<p><b>  功能:初始化</b></p><p>  用法:public SerialPort ()</p><p>  SerialPort.Open方法</p><p>  功能:打開一個新的串行端口連接。</p><p>  用法:public void Open ()</p>

94、<p>  SerialPort 構(gòu)造函數(shù) (String, Int32)</p><p>  功能:使用指定的端口名稱和波特率初始化SerialPort類的新實例。 </p><p>  用法:public SerialPort </p><p><b>  {</b></p><p>  string

95、portName,</p><p>  int baudRate</p><p><b>  }</b></p><p>  ADO.NET在.NET編程環(huán)境中優(yōu)先使用的數(shù)據(jù)訪問接口。它提供了平臺互用性和可伸縮的數(shù)據(jù)訪問。ADO.NET是一組用于和數(shù)據(jù)源進行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格

96、或者XML文件[19]。ADO.NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因為不同的數(shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議。一些老式的數(shù)據(jù)源使用ODBC協(xié)議,許多新的數(shù)據(jù)源使用OleDb協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進行連接。</p><p>  ADO.NET提供與數(shù)據(jù)源進行交互的

97、相關(guān)的公共方法,但是對于不同的數(shù)據(jù)源采用一組不同的類庫。這些類庫稱為Data Providers,并且通常是以與之交互的協(xié)議和數(shù)據(jù)源的類型來命名的。</p><p><b>  系統(tǒng)調(diào)試</b></p><p>  作為檢驗系統(tǒng)的最后一道工序,系統(tǒng)調(diào)試在整個設(shè)計中起到了相當(dāng)重要的作用,也是最后一道難關(guān),只有通過系統(tǒng)調(diào)試才能正式宣告系統(tǒng)的完成,我們可以在系統(tǒng)調(diào)試中發(fā)現(xiàn)許

98、多系統(tǒng)的漏洞,并且及時對其進行補充和改進。</p><p>  單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障后,再和軟件結(jié)合起來調(diào)試以進一步排除故障??梢娪布{(diào)試是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則是無從做起。</p><p>  在進行系統(tǒng)調(diào)試過程中,所使用到的儀器儀表如表6-1所示:</p><

99、p>  表6-1 測試試驗儀器</p><p>  5.1 硬件靜態(tài)測試</p><p>  由于在測試板上僅對小部分的硬件進行了設(shè)計并測試,因此制版之后的調(diào)試任務(wù)相對較重,需要對明顯的硬件故障進行排除,測試通電之后芯片各個引腳的電壓值是否達到要求等。</p><p>  在整個硬件靜態(tài)的調(diào)試中,工作主要集中在以下幾個方面:</p><p&

100、gt;  (1)排除邏輯故障:這類故障往往是由于設(shè)計和加工制板過程中的工藝性錯誤所造成的。主要包括錯線、開路、短路。排除的方法是首先將加工的印制板認真對照原理圖,看二者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間的短路或者與其他信號線路短路。利用數(shù)字萬用表的短路測試功能,測試線路的通斷。</p><p>  (2)排除元器件失效:造

101、成這類錯誤的原因有兩個:一個是元器件買來時就已經(jīng)壞了;另一個是因為安裝錯誤,造成器件燒壞??梢圆扇z查元器件與設(shè)計要求的型號、規(guī)格和安裝是否一致。在保證安裝無誤后,再用替換方法排除錯誤。</p><p> ?。?)排除電源故障:在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間的電位,若在5V-4.8V之間屬正常[20]。系統(tǒng)測試中,采取

102、先焊接電源模塊,單獨進行通電測試,這樣避免輸出電壓過高對系統(tǒng)集成塊損壞的可能性。由于沒有交流電源的輸入,只輸入了比要求電壓高2.5V左右的直流電壓進行測試,5V穩(wěn)壓電源電路輸出電壓為4.99V,9V穩(wěn)壓電源電路輸出電壓分別為+8.98V,-8.99V,符合系統(tǒng)要求電壓,電源部分通過測試。</p><p>  (4)集成塊引腳電壓測試:為了確定集成塊的好壞,加之沒有購買備用集成塊,只有在加入正常的電源電壓而沒有寫入

103、程序時,用萬用表測試集成塊引腳電壓;測試后若的確發(fā)現(xiàn)有集成塊的引腳電壓不正常,再進行換集成塊進行測試;若果與典型電壓值基本相同,都可以正常使用。這樣的測試雖然增加了一些工作量,但是可以減少購買集成塊的數(shù)量,同時保證集成塊可以正常的運行。</p><p> ?。?)串口通信調(diào)試:由于下位機中采用的是TTL低電平與PC機交換數(shù)據(jù)時需要進行必要的電平轉(zhuǎn)換,這里采用的是MAX232進行相應(yīng)的電平轉(zhuǎn)換,所以對這方面的測試主

104、要圍繞MAX232是否正常工作展開。測試方法為:PC機串口不停的發(fā)送數(shù)據(jù),用示波器觀察經(jīng)過MAX232電平轉(zhuǎn)換的數(shù)據(jù)輸出端口的波形,有波形即證明正常工作。</p><p>  5.2 系統(tǒng)聯(lián)機調(diào)試及結(jié)果</p><p>  聯(lián)機調(diào)試必須借助穩(wěn)壓電源、示波器、萬用表、ISP程序下載器等工具。這些工具是單片機開發(fā)的最基本工具。聯(lián)機調(diào)試采用先部分后整體的思路,這樣可以降低無法找到錯誤原因的概率

105、,有助于很好的完成調(diào)試。</p><p>  5.2.1 微控制器測試</p><p>  信號線是聯(lián)絡(luò)單片機和外部器件的紐帶,如果信號線連接錯誤或者時序不對,那么都會造成對外圍電路讀寫錯誤。</p><p>  調(diào)試方法及過程:單片機的信號大體分為讀寫信號、片選信號、時鐘信號、外部程序存儲器讀選通信號、地址鎖存信號、復(fù)位信號等幾大類。這些信號大多屬于脈沖信號,對

106、于脈沖信號借助通用示波器用常規(guī)方法很難觀測到,必須采取一定措施才能觀測到。應(yīng)該利用軟件編程的方法來實現(xiàn)。運行單片機測試程序(見附錄二)就可以檢測出信號是否正常。</p><p>  測試結(jié)果:發(fā)光二極管能正反向逐個點亮,正反向跳點,由此可以確定單片機本身的完好。</p><p>  5.2.2 顯示電路調(diào)試</p><p>  由于事先已經(jīng)確定了DV12864C液

107、晶顯示屏的好壞,因此沒有必要再將顯示屏進行獨立測試。但是為了讓調(diào)試可以順利的完成,需要單片機控制DV12864C液晶顯示屏進行相應(yīng)的顯示調(diào)試。測試的主要方法是使用單片機控制DV12864C液晶顯示屏進行顯示,主要由微控器向DV12864C液晶顯示屏內(nèi)寫入相應(yīng)的數(shù)據(jù),看顯示的結(jié)果是否為寫入的數(shù)據(jù)[22],如果是則說明測試成功,如果顯示的不是送入的數(shù)據(jù)則需進一步調(diào)試。</p><p>  調(diào)試結(jié)果:顯示電路部分正常。

108、</p><p>  5.2.3 聲光報警電路測試</p><p>  聲光報警部分調(diào)試相對簡單,由于蜂鳴器和發(fā)光二極管都是直接由I/O驅(qū)動,因此調(diào)試中需要在相應(yīng)的I/O口強制提供相應(yīng)的控制信號,如果報警燈可以對應(yīng)地點亮和熄滅,蜂鳴器也可以相應(yīng)地報警,那么聲光報警部分調(diào)試通過。</p><p><b>  5.3 測試結(jié)果</b></

109、p><p>  DHT11轉(zhuǎn)換的濕度結(jié)果準確,LED能正常顯示環(huán)境濕度值。濕度采集的數(shù)據(jù)見表5-2。</p><p>  表5-2 濕度數(shù)據(jù)采集表</p><p><b>  總 結(jié)</b></p><p>  本文論述了基于AVR單片機的電子濕度計系統(tǒng)的設(shè)計,實現(xiàn)了對空氣濕度的實時檢測以及超限報警。該設(shè)計有效地利用AVR

110、單片機的內(nèi)部資源,很好地把傳感器檢測模塊、聲光報警模塊、DV12864C液晶顯示屏模塊組織起來,使得整個系統(tǒng)運行可靠,操作方便,滿足0~100%RH濕度測量,在此范圍之中測量誤差在5%以內(nèi)。實現(xiàn)了低功耗,高可靠性,操作方便。在目前的試用中,對該傳感器的設(shè)計反映很好,它能夠可靠、穩(wěn)定、安全的測量室內(nèi)空氣濕度,具有推廣應(yīng)用價值。</p><p>  從開始對整個題目的分析,到最后的設(shè)計完成整個系統(tǒng)的過程中,我對單片機

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論