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

下載本文檔

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

文檔簡介

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

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

3、講述系統(tǒng)的軟硬件結構和功能特點,著重闡述了信號采集處理、單片機及擴展電路的設計思路和實現方法。在目前的試用中,該系統(tǒng)能夠可靠、穩(wěn)定、安全的測量現場濕度,具有推廣應用價值。</p><p>  關鍵詞:濕度傳感器;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)設計內容2</p><

5、;p>  第2章 系統(tǒng)概述4</p><p>  2.1 系統(tǒng)設計主要原理4</p><p>  2.2 系統(tǒng)硬件設計方案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)軟件設計方案7</p><p>  2.3.1 上位機軟件設計方案8</p><p>  2.3.2 微控器軟件設計方案9</p><p>  第3章 系統(tǒng)硬件設計實現12</p><p>  3.1 電子濕度計系統(tǒng)的組成結構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)電路設計15</p><p>  3.2.3.1 電源設計15</p><p>  3.2.3.2 復位電路設計1

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

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

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

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

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

13、燥程度的物理量。在一定的溫度下在一定體積的空氣里含有的水汽越少,則空氣越干燥;水汽越多,則空氣越潮濕??諝獾母蓾癯潭冉凶觥皾穸取?。在此意義下,常用絕對濕度、相對濕度、比較濕度、混合比等物理量來表示。</p><p>  空氣濕度在許多方面有重要的用途,在大氣學、氣象學和氣候學中它主要是理論中的一個重要值,而在實際生產生活中應用也極為廣泛。下雨的時候,空氣濕度是非常大的在氣象學和水文學中濕度是決定蒸發(fā)和蒸騰的重要數

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

64、輯操作,并支持兩種軟件可選的節(jié)電工作模式:空閑方式停止CPU的工作,但允許RAM、定時/計數器、串行通信口及中斷系統(tǒng)繼續(xù)工作;掉電方式保存RAM中的內容,但是振蕩器停止工作并禁止其他所有部件工作到下一個硬件復位。</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 轉換器的模擬輸入端。端口A為8位雙向I/O口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

81、期穩(wěn)定性</p><p> ?。?)輸 出: 單總線數字信號</p><p> ?。?)測量范圍: 濕度20-90%RH, 溫度0~50℃</p><p> ?。?)測量精度: 濕度+-5%RH, 溫度+-2℃</p><p> ?。?)分 辨 率: 濕度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數碼管的顯示電路設計</p><p>  設計中加入了LCD數碼管顯示模塊,用來實時顯示濕度的數值大小,以達到一個更加直觀的效果。本設計采用了單片機直接驅動的方式來完成對濕度值的顯示處理。</p><p>  LC

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

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

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

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

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

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

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

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

92、統(tǒng)中,設備被虛擬為文件,只需要利用系統(tǒng)提供的API函數即可進行串口數據的發(fā)送和讀取;三、使用串口類進行串口操作。本設計采用第三中方式,所以在此只介紹windows環(huán)境下利用串口類編程的方式[18]。</p><p>  SerialPort是比較好用的串口類。下面通過舉例的方式說明SerialPort提供的串口操作方法:</p><p>  SerialPort構造函數()</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 構造函數 (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)先使用的數據訪問接口。它提供了平臺互用性和可伸縮的數據訪問。ADO.NET是一組用于和數據源進行交互的面向對象類庫。通常情況下,數據源是數據庫,但它同樣也能夠是文本文件、Excel表格

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

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

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

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

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

101、成這類錯誤的原因有兩個:一個是元器件買來時就已經壞了;另一個是因為安裝錯誤,造成器件燒壞??梢圆扇z查元器件與設計要求的型號、規(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> ?。?)集成塊引腳電壓測試:為了確定集成塊的好壞,加之沒有購買備用集成塊,只有在加入正常的電源電壓而沒有寫入

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論