基于單片機的濕度計設計_第1頁
基于單片機的濕度計設計_第2頁
基于單片機的濕度計設計_第3頁
基于單片機的濕度計設計_第4頁
基于單片機的濕度計設計_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目 錄0 前言11 總體方案設計22 硬件電路設計32.1 單片機系統32.2 dht11濕度傳感器系統53 軟件設計73.1 晶振電路83.2 復位電路83.3 數字顯示電路93.4 報警電路93.5 濕度采集電路104 調試分析105 結論及進一步設想11參考文獻11課設體會12附錄1 電路原理圖13附錄2 程序清單14基于單片機的濕度計設計楊少書 沈陽航空航天大學自動化學院摘要:本文設計了一種基于單片機控制的數字式濕度計,主要由濕度檢測部分、單片機數據采集處理部分、顯示部分和報警電路組成。硬件以stc89c52單片機為核心,外接晶振、復位電路、電源、dht11濕度傳感器、led顯示電路組

2、成。本設計利用dht11濕度傳感器能耗低、響應速度快、穩定性強、可靠性高、抗干擾能力強、信號傳輸距離長、可隨時掌握周圍環境溫度等優點,可以檢測周圍環境濕度,并且與人體適宜濕度相比較,若超出人體適宜濕度范圍則會發出警報。關鍵詞:單片機 ;dht11濕度傳感器;濕度檢測0 前言1. 設計背景:濕度是基本的環境參數,人們生活與濕度息息相關。在日常生活、工業、醫學、環境保護、化工、石油等領域,經常需要對環境濕度進行測量和控制。準確測量濕度在生物制藥、食品加工、造紙等行業更是至關重要。因此,研究濕度的測量方法和裝置具有重要的意義。隨著科技的不斷發展,單片機技術已經普及到我們的工作、生活、科研等各個領域。

3、已經成為一種比較成熟的技術。由于單片機集成度高、功能強、可靠性高、體積小、功耗低、使用方便等優點,目前已經滲透到我們工作和生活的方方面面。本設計介紹了一種以stc89c51為主要控制器件,以dht11為數字濕度傳感器的新型數字濕度計。2. 設計意義:最近幾年來,隨著科技的飛速發展,單片機領域正在不斷的走向社會各個角落,還帶動傳統控制檢測日新月異更新。在實時運作和自動控制的單片機應用到系統中,單片機如今是作為一個核心部件來使用,僅掌握單片機方面知識是不夠的,還應根據其具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。現代社會越來越多的場所會涉及到溫度與濕度并將其顯示。由于溫度與濕度不管

4、是從物理量本身還是在實際人們的生活中都有著密切的關系,例如:冬天溫度為18至25,濕度為30%至80%;夏天溫度為23至28,濕度為30%至60%。在此范圍內感到舒適的人占95%以上。在裝有空調的室內,室溫為19至24,濕度為40%至50%時,人會感到最舒適。如果考慮到溫、濕度對人思維活動的影響,最適宜的室溫度應是工作效率高。18,濕度應是40%至60%,此時,人的精神狀態好,思維最敏捷。所以,本課程設計就是通過單片機驅動led數碼管,數碼管顯示濕度,通過此設計,可以發現本設計有一定的擴展性,而且可以作為其他有關設計的基礎。3. 設計內容:本設計要求設計的濕度計以單片機為核心,通過濕度傳感器對

5、環境濕度進行采樣處理,單片機對檢測到的濕度與人體的適宜濕度值(38%65%)進行比較,若不在此范圍內,則報警。4. 設計要求:(1)按設計內容制定設計方案,并繪制出系統工作框圖;(2)按設計內容設計濕度計的電路,并與單片機仿真器、單片機實驗箱、電源等硬件正確可靠地連接,給出電路原理圖;(3)用仿真器及單片機實驗箱進行程序設計與調試;5.設計特點:本設計采用dht11濕度傳感器,它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高 的可靠性與長期的穩定性。傳感器包括一個電阻式感濕元件和一個ntc測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性

6、價比極高等優點。每個dht11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在otp內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集 成變得簡易快捷。同時還具有體積小、功耗低,信號傳輸距離長等優點。1 總體方案設計針對本課題的設計任務,進行分析得到:本次設計用濕度傳感器進行濕度的測量,轉化了的濕度信號由傳感器得到數字信號。本次設計采用stc89c52單片機作為主機,dht11濕度傳感器作為從機,當要開始測量時,從主機發出信號給從機,此時從機dht11濕度傳感器開始測量周圍環境的濕度,并將濕度信號轉換為數字信號發送給主機,再由主機發送信號給

7、數碼管顯示測量濕度。該濕度計的設計,在總體上大致可分為以下幾個部分組成:1濕度檢測部分;2晶振部分;3復位電路部分;4 led顯示電路部分。系統原理框圖如圖1所示。 電源單片機stc89c52復位電路 晶振濕度傳感器 dht11濕度顯示聲音報警圖1 系統原理框圖整個電路的工作原理是:整個濕度檢測系統以stc89c52單片機為核心,對整個測試系統進行控制,包括濕度的測量、數據的處理、濕度的顯示、聲音報警等。濕度傳感器dht11將測量到的濕度進行數據處理經由單片機發送給led顯示輸出。當濕度計開始工作時,單片機對所檢測到的濕度與人體的適宜濕度值(38%65%)進行比較,若低于38%或高于65%,則

8、報警。單片機由外接12mhz標準晶振提供時鐘電路。濕度傳感器的非電量(濕度)到電量(電壓)是非線性的關系,故考慮先將濕度傳感器輸出的電壓信號用a/d轉換采樣到cpu, cpu再對采樣所得的數字信號進行查表計算處理,得到相應的數字量,再將數字量由d/a轉換成電壓信號輸出,最后只要根據輸出的電壓值即可得出濕度。因dht11濕度傳感器的校準系數以程序的形式儲存在otp內存中,傳感器內部在檢測信號的過程中直接調用這些校準系數,所以不用經過a/d轉換,更加簡易快捷。根據設計要求,設計前分別采用了電容式相對濕度傳感器hs1101的方案一和采用濕度傳感器dht11的方案二,其中方案一的優點是hs1101傳感

9、器具有適應電壓范圍廣、支持多點組網功能、測溫范圍廣等特點。方案二的優點是dht11傳感器具有穩定性高、能耗低、傳輸距離長、抗干擾能力強、相應速度快、性價比高等特點。綜合各方面的因素,dht11傳感器可靠性更高,連接更加方便,調用數據更加簡潔,所以本次設計采用了方案二。2 硬件電路設計2.1 單片機系統本次設計采用stc89c52單片機作為核心,對整個測試系統進行控制。stc89c52是stc公司生產的一種低功耗、高性能cmos8位微控制器,具有 8k 在系統可編程flash存儲器。stc89c52使用經典的mcs-51內核,但做了很多的改進使得芯片具有傳統51單片機不具備的功能。在單芯片上,擁

10、有靈巧的8 位cpu 和在系統可編程flash,使得stc89c52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節flash,512字節ram, 32 位i/o 口線,看門狗定時器,內置4kb eeprom,max810復位電路,3個16 位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統51的5向量2級中斷結構),全雙工串行口。另外 stc89c52 可降至0hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,cpu 停止工作,允許ram、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,ram內容被保存,振蕩器被凍結,單片機一切

11、工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35mhz,6t/12t可選。stc89c52參數如下:1. 增強型8051單片機,6 時鐘/機器周期和12 時鐘/機器周期可以任意 選擇,指令代碼完全兼容傳統8051.2 2. 工作電壓:5.5v3.3v(5v單片機)/3.8v2.0v(3v 單片機)3.工作頻率范圍:040mhz,相當于普通8051 的080mhz,實際工作 頻率可達48mhz4. 用戶應用程序空間為8k字節5. 片上集成512 字節ram6. 通用i/o 口(32 個),復位后為:p0/p1/p2/p3 是準雙向口/弱上拉, p0 口是漏極開路輸出,作為總線擴展用時,不

12、用加上拉電阻,作為 i/o 口用時,需加上拉電阻。7. isp(在系統可編程)/iap(在應用可編程),無需專用編程器,無 需專用仿真器,可通過串口(rxd/p3.0,txd/p3.1)直接下載用戶程 序,數秒即可完成一片8. 具有eeprom 功能9. 共3 個16 位定時器/計數器。即定時器t0、t1、t210.外部中斷4 路,下降沿中斷或低電平觸發電路,power down 模式可 由外部中斷低電平觸發中斷方式喚醒11. 通用異步串行口(uart),還可用定時器軟件實現多個uart12. 工作溫度范圍:-40+85(工業級)/075(商業級)13. pdip封裝stc89c52引腳圖如圖

13、2所示。 圖2 stc89c52引腳圖2.2 dht11濕度傳感器系統dht11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個ntc測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個dht11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在otp內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳

14、輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。dht11有四個引腳,3號引腳一般懸空,如圖3所示。dht11的供電電壓為35.5v。傳感器上電后,要等待1s以越過不穩定狀態在此期間無需發送任何指令。電源引腳(vdd,gnd)之間可增加一個100nf的電容,用以去耦濾波。建議連接線長度短于20米時用5k上拉電阻,大于20米時根據實際情況使用合適的上拉電阻。圖3 dht11引腳圖data 用于微處理器與 dht11之間的通訊和同步,采用單總線數據格式,一次 通訊時間4ms左右,數據分小數部分和整數部分,具

15、體格式在下面說明,當前小數 部分用于以后擴展,現讀出為零.操作流程如下:用戶mcu發送一次開始信號后,dht11從低功耗模式轉換到高速模式,等待主機開始信號結束后,dht11發送響應信號,送出40bit的數據,并觸發一次信號采集, 用戶可選擇讀取部分數據.從模式下,dht11接收到開始信號觸發一次溫濕度采集, 如果沒有接收到主機發送開始信號,dht11不會主動進行溫濕度采集.采集數據后 轉換到低速模式。通訊過程如圖4所示。圖4 通訊過程圖總線空閑狀態為高電平,主機把總線拉低等待dht11響應,主機把總線拉低必 須大于18毫秒,保證dht11能檢測到起始信號。dht11接收到主機的開始信號后,等

16、待主機開始信號結束,然后發送80us低電平響應信號.主機發送開始信號結束后,延時等待20-40us后, 讀取dht11的響應信號,主機發送開始信號后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。工作過程圖如圖5所示。圖5 工作過程圖總線為低電平,說明dht11發送響應信號,dht11發送響應信號后,再把總線拉高80us,準備發送數據,每一bit數據都以50us低電平時隙開始,高電平的長短定了數據位是0還是1。格式如圖6所示。如果讀取響應信號為高電平,則dht11沒有響應,請檢查線路是否連接正常。當最后一bit數據傳送完畢后,dht11拉低總線50us,隨后總線由上拉電阻拉高進入

17、空閑狀態。數字0信號表示方法如圖7所示。圖6 數字1信號表示方式 圖7 數字0信號表示方式3 軟件設計本課題的軟件設計采用了模塊化設計的思想。主程序流程如圖8所示。圖8 主程序流程圖3.1 晶振電路單片機工作的時間基準是由時鐘電路所控制的。在單片機的兩個管腳xtal1和xtal2接一只晶振以及兩只電容就構成了單片機的時鐘電路。電路中的兩個電容對震蕩頻率有微調作用,都選用30pf。晶振電路如圖9所示。圖9 晶振電路圖3.2 復位電路復位電路是保證單片機正常運行的關鍵因素,所以可靠的復位電路設計是必要的。將rst引腳連續輸入2個機器周期(即24個時鐘震蕩期間)以上高電平,即可以完成單片機的初始化操

18、作。本設計采用按鈕復位方式。復位電路圖如圖10所示。圖10 復位電路圖3.3 數字顯示電路數字顯示電路由2個74ls373以及led數碼管組成。其中u2對數碼管斷選,u4對數碼管位選。數字顯示電路如圖11所示。圖11 數字顯示電路圖3.4 報警電路蜂鳴器是一種一體化的電子通訊響應器。在本系統中,當顯示數值超出設定值3865范圍時報警。報警電路如圖12所示。圖12 報警電路圖3.5 濕度采集電路dht11的供電電壓為35.5v。傳感器上電后,要等待1s以越過不穩定狀態在此期間無需發送任何指令。電路如圖13所示:圖13 濕度采集電路圖4 調試分析在硬件與軟件的調試過程中,由keil uvision

19、4軟件生成的.hex文件下載不到89c52單片機中,stc-isp燒錄軟件提示mcu不正確,發現mcu type選擇錯誤,本該選擇89c52單片機而錯選成了89c51單片機,改正后終于將.hex文件下載至89c52單片機中。將.hex文件下載至單片機后,打開電源,數碼管不顯示數字,經過檢查,發現軟件程序中編寫的輸入口為p10口,而在實物連接中錯將輸入口接到p11口上,導致數碼管不顯示。數碼管顯示出采集的濕度值之后,警報器一直警報,經過檢查發現軟件程序中設定的下線和上線范圍為3865,由于軟件中設定的最高位為百位,所以導致蜂鳴器一直警報,將范圍改為380650后警報正常。5 結論及進一步設想微型

20、計算機在智能化電器發展中起著至關重要的作用,而單片機經濟實用、開發簡便,因而在工業控制、家電智能化等領域占據了廣泛的市場。本次設計是基于單片機的濕度計設計,當超出人體適宜濕度3865時蜂鳴器發出警報,基本實現了設計要求。但是在硬件軟件方面仍然存在著不足。在硬件選擇方面,由于采用濕度傳感器dht11,使電路鏈接更加方便,并且容易讀數,簡化了設計。但是由于濕度傳感器dht11的精度不夠,只能顯示個位而不能精確到小數位,從而存在精確度較差的缺陷。由于只買到了led數碼管,所以顯示電路運用led顯示,比較了led和lcd之后,發現led顯示的信息量較少,外接電路復雜且耗電量大,如果能將led改成lcd

21、,將會進一步得到完善,使得數據顯示信息量增多,同時簡化外接電路并且降低能耗。在軟件編程方面,初次完成的程序十分復雜,在很多方面聯系不上,我在網上查找了很多的資料,也看了一些教學視頻,來不斷的完善程序。而且通過和同學、老師的交流討論,我學到了很多編程方面的技巧和思想,同時也精簡了部分程序。雖然已經精簡了部分程序,但仍然覺的程序比較復雜,還應該多多學習c語言的編程技巧。參考文獻1 劉復華.單片機及其應用系統.北京:清華大學出版社,19922 李斌,董慧穎.可重組機器人研究和發展現狀.沈陽工業學院學報,2000,19(4):23-273 何立民.單片機高級教程-應用與設計m.北京:北京航空航天大學出

22、版社,2002.4 徐愛鈞.單片機高級語言c51 windows環境編程與應用m.北京:電子工業出版社,2001.5 白雪冰,張延林等.單片機原理及應用m.哈爾濱:哈爾濱東北林業大學出版社,2006.6 張佳薇,孫麗萍等.傳感器原理與應用m.哈爾濱:哈爾濱東北林業大學出版社,2003.7 何宏.單片機原理與接口技術. 北京:國防工業出版社,2006.8 劉暢生.新型集成電路使用手冊及應用實例具有串行接口的外圍器件和模擬信號調理器件.西安:西安電子科技大學出版社,2003.9 劉守義.單片機應用技術.西安:西安電子科技大學出版社,2006.10 張毅坤,陳善久,裘雪紅,單片微型計算機原理及應用【

23、m】.西安:西安電子科技大學出版社,1998.9.11 張凱等.單片機綜合系統及其設計開發【m】.北京科學出版社,1996.課設體會本次設計濕度計的制作基本是達到了題目的技術指標,可以檢測周圍環境的濕度,如果超出人體適宜濕度范圍3865則會發出警報。單片機已經成為當今計算機應用中空前活躍的領域,在生活中可以說是無處不在。因此作為21世紀的大學生來說掌握單片機的開發技術是十分重要的。回顧起此次單片機課程設計是苦多于甜,但是可以學到很多很多的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服

24、務,從而提高自己的實際動手能力和獨立思考能力。在設計的過程中遇到問題,可以說的是困難重重,難免會遇到各種各樣的問題,同時在設計的過程中,發現了自己的不足之處,對以前所學過的知識理解的不夠深刻,掌握的不夠牢固,比如說不懂一些元器件的使用方法等等。通過這次課程設計之后,一定把以前所學的知識重新溫故。 2014年7月7日完成附錄1 電路原理圖附錄2 程序清單/頭文件:#include reg51.h/typedef unsigned char u8; /* defined for unsigned 8-bits integer variable 無符號8位整型變量 */typedef signed

25、char s8; /* defined for signed 8-bits integer variable 有符號8位整型變量 */typedef unsigned int u16; /* defined for unsigned 16-bits integer variable 無符號16位整型變量 */typedef signed int s16; /* defined for signed 16-bits integer variable 有符號16位整型變量 */typedef unsigned long u32; /* defined for unsigned 32-bits in

26、teger variable 無符號32位整型變量 */typedef signed long s32; /* defined for signed 32-bits integer variable 有符號32位整型變量 */typedef float f32; /* single precision floating point variable (32bits) 單精度浮點數(32位長度) */typedef double f64; /* double precision floating point variable (64bits) 雙精度浮點數(64位長度) */#define uc

27、har unsigned char#define uint unsigned intuchar adval, temp,temp1, key, m=0;uint shang13 = 4, 9, 9;uint shang3=10,10,10;uint ss;/引腳定義:sbit din = p10;/定義狀態輸入sbit dula=p26;sbit wela=p27;sbit key1=p34; /jiasbit key2=p35;sbit j1=p25;/sbit j2=p22;uchar bai, shi, ge, flag=0;/數據定義:unsigned char ly_dis4;/定義

28、顯示緩沖區code unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/表:共陰數碼管 0-9 c/code unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77;unsigned char l_pos

29、it=0;/顯示位置/-以下變量均為全局變量-/-溫度高8位= u8t_data_h-/-溫度低8位= u8t_data_l-/-濕度高8位= u8rh_data_h-/-濕度低8位= u8rh_data_l-/-校驗 8位 = u8checkdata-u8 u8flag,k;u8 u8count,u8temp;u8 u8t_data_h,u8t_data_l,u8rh_data_h,u8rh_data_l,u8checkdata;u8 u8t_data_h_temp,u8t_data_l_temp,u8rh_data_h_temp,u8rh_data_l_temp,u8checkdata_t

30、emp;u8 u8comdata;void delay(u16 j) u8 i;for(;j0;j-) for(i=0;i27;i+);void delay_10us(void) u8 i; i-; i-; i-; i-; i-; i-;void com(void) u8 i; for(i=0;i8;i+) u8flag=2; while(!din)&u8flag+);delay_10us();delay_10us();delay_10us(); u8temp=0; if(din)u8temp=1;u8flag=2;while(din)&u8flag+); /超時則跳出for循環 if(u8f

31、lag=1)break; /判斷數據位是0還是1 / 如果高電平高過預定0高電平值則數據位為 1 u8comdata=1; u8comdata|=u8temp; /0 void rh(void) /主機拉低18ms din=0;delay(180);din=1; /總線由上拉電阻拉高 主機延時20usdelay_10us();delay_10us();delay_10us();delay_10us(); /主機設為輸入 判斷從機響應信號 din=1; /判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行 if(!din) /t ! u8flag=2; /判斷從機是否發出 80us 的低電平響應信號是否結束 while(!din)&u8flag+); u8flag=2

溫馨提示

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

評論

0/150

提交評論