版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 前言3</b></p><p> 1 溫濕度檢測系統(tǒng)的簡介4</p><p> 1.1 系統(tǒng)的概述4</p><p> 1.2 系統(tǒng)設(shè)計選題的背景4</p><p> 1.3 系統(tǒng)
2、的分類5</p><p> 1.4 系統(tǒng)設(shè)計的內(nèi)容與要求5</p><p> 2 系統(tǒng)設(shè)計方案5</p><p> 2.1 溫濕度檢測系統(tǒng)方案制定5</p><p> 2.2 系統(tǒng)功能模塊分析6</p><p> 2.3 仿真器件8</p><p> 2.4 本章小結(jié)9
3、</p><p> 3 系統(tǒng)仿真調(diào)試9 </p><p> 3.1 PROTEUS對系統(tǒng)仿真9</p><p> 3.2 誤差分析11</p><p> 3.2 本章小結(jié)12</p><p><b> 總結(jié)12</b></p><p><b>
4、 參考文獻(xiàn)13</b></p><p> 溫濕度檢測系統(tǒng)的設(shè)計與實(shí)現(xiàn)</p><p> 學(xué)生:徐祥(指導(dǎo)老師:王留留)</p><p> ?。ɑ茨蠋煼秾W(xué)院電氣信息工程學(xué)院)</p><p> 摘 要: 溫濕度測量系統(tǒng)的測量的使用領(lǐng)域是寬廣的,在倉庫中、果園中、醫(yī)院內(nèi)都有著重要的作用。這次的畢業(yè)設(shè)計是對溫濕度測量系統(tǒng)的研究
5、、仿真和實(shí)現(xiàn),對它以后發(fā)展和推動起了重要作用。這次的畢業(yè)設(shè)計,仔細(xì)的分析了國外與國內(nèi)關(guān)于溫濕度檢測系統(tǒng)的發(fā)展情況與研究方向,闡述了當(dāng)今現(xiàn)實(shí)生活中、工業(yè)中、農(nóng)業(yè)中其存在的一些問題,在經(jīng)過探討這些問題并提出合理的解決方案的之后,系統(tǒng)的設(shè)計一類關(guān)于單片機(jī)的溫濕度檢測系統(tǒng),能夠比較穩(wěn)定、長時間、準(zhǔn)確的對那些有著特別要求的場所進(jìn)行測量其溫度與濕度。硬件電路部分與軟件電路部分是該次畢業(yè)設(shè)計的兩大組成的部分,所設(shè)計的系統(tǒng)的基本原理如下:在某環(huán)境中,給
6、予溫濕度傳感器模擬的溫度與濕度,這些模擬信號會通過溫濕度的檢測系統(tǒng)所涉及的電路,利用傳感器把這些處理的信號傳輸給核心部件單片機(jī),然后單片機(jī)在處理這些信號,再傳輸?shù)絃CD顯示出數(shù)字,從而實(shí)現(xiàn)對溫濕度的測量。</p><p> 關(guān)鍵詞: 溫濕度;SHT10傳感器;單片機(jī)</p><p><b> 前言</b></p><p> 當(dāng)下的生活中,
7、溫度與濕度的技術(shù)著重的被利用于特定的環(huán)境、環(huán)境溫度濕度要求比較高的區(qū)域,其使用的范圍與頻率還是比較多的。</p><p> 在以前,各種倉庫、蔬菜大棚、車間等相對環(huán)境空間內(nèi)的溫度和相對濕度的信號采集即溫度和相對濕度的檢測,是利用傳統(tǒng)的具有指示溫度和濕度的檢測儀表。但是利用這種方法則需要工作人員來檢測控制,然后對那些不符合條件的相對環(huán)境空間進(jìn)行溫濕度處理,比如通風(fēng)、干燥、升降溫度等。當(dāng)然這種方法對于工作人員來說是
8、很浪費(fèi)時間和精力的及工作效率就很低,而且通過這些儀表檢測出來的溫度和相對濕度誤差會很大。現(xiàn)如今隨著工業(yè)技術(shù)和微電計算機(jī)技術(shù)的飛快發(fā)展和不斷創(chuàng)新,倉庫這類的溫濕度檢測智能控制的儀器儀表已經(jīng)開始慢慢地推廣使用了,正在逐步的代替以往的那些檢測儀器,其主要是以單片機(jī)為主的溫濕度智能控制,這類的溫濕度監(jiān)測儀器的從成本和使用角度方面考慮,是最適合倉庫類的相對環(huán)境的溫濕度的檢測,更重要的是測量的溫濕度值比較準(zhǔn)確。</p><p&g
9、t; 現(xiàn)如今的測量和控制方面的實(shí)現(xiàn)需要利用到傳感器,它是測量和控制類系統(tǒng)的重要部分。我們都知道那些原始被測信號若不利用儀器對其進(jìn)行準(zhǔn)確的捕捉及進(jìn)行模數(shù)轉(zhuǎn)換,那么我們所需要的智能監(jiān)測類系統(tǒng)將無法運(yùn)行,而這方面問題的解決則是傳感器的功勞。如果在倉庫管理系統(tǒng)中增加溫濕度智能監(jiān)測系統(tǒng),那么對于工作人員來說,可以相對的減輕其工作量、倉庫貨物的儲備量和質(zhì)量、減少管理方面的資金等,這對廣大倉庫管理者來說很有幫助。</p><p&
10、gt; 這次的畢業(yè)設(shè)計是通過一個與溫度與濕度都有關(guān)的儀器對某特定的環(huán)境下測量出的溫濕度,在多次的實(shí)驗之后系統(tǒng)的對所設(shè)計的方案進(jìn)行誤差分析和改良;同時相關(guān)設(shè)備處理出現(xiàn)的溫濕度方面的問題,從而來達(dá)到對某一溫度和相對濕度的智能監(jiān)控目的,操作人員能夠明確的觀察到溫濕度的變化,這樣溫濕度一直保持在設(shè)定的溫濕度范圍內(nèi)。</p><p> 1 溫濕度檢測的簡介</p><p><b>
11、1.1 系統(tǒng)的概述</b></p><p> 溫濕度測量技術(shù)在當(dāng)今的工廠加工、醫(yī)療區(qū)域、農(nóng)業(yè)區(qū)域中已經(jīng)起來重要的位子,例如資源的節(jié)約、產(chǎn)品質(zhì)量的提高、產(chǎn)品數(shù)目的提高,這些問題現(xiàn)在已經(jīng)越來越受到外界的關(guān)注了。當(dāng)今,知識信息和知識的工業(yè)化已經(jīng)開始了飛一般的進(jìn)步,溫度與濕度的問題影響的范圍距離已經(jīng)不再之前談到的那些方面,它還體現(xiàn)在科技發(fā)展、衛(wèi)生用品、醫(yī)藥衛(wèi)生、國家安全基礎(chǔ)等多種方面。就上述幾個問題和情況,
12、溫濕度檢測的準(zhǔn)確性、穩(wěn)定性、快速性、安全性這些方面的設(shè)計要求變得尤其重要。在最近幾年中,使用SHT10控制的溫濕度傳感器和溫濕度數(shù)據(jù)的網(wǎng)上直接檢驗技術(shù)現(xiàn)已成為當(dāng)下的一種發(fā)展方向和追求。本次畢業(yè)設(shè)計介紹和實(shí)現(xiàn)了一種單片機(jī)與自動化溫濕度傳感器互相結(jié)合,它們兩就組成了一種簡單的溫濕度檢測器系統(tǒng)。這種檢測系統(tǒng)具有以下的特點(diǎn):易操作、制作成本低、準(zhǔn)確性較高、持續(xù)時間長、較為穩(wěn)定。</p><p> 1.2 系統(tǒng)設(shè)計選題的
13、背景</p><p> 1.2.1國內(nèi)外研究現(xiàn)狀</p><p> 關(guān)于我國國內(nèi)溫濕度研究的時間相對于國外還是比較晚的,畢竟我國對于溫濕度檢測技術(shù)的研究才剛剛起步 。初期我國只運(yùn)用了相對落后的溫濕度的微機(jī)控制測量技術(shù),而這門技術(shù)還是在參考當(dāng)時國外發(fā)展國家的檢測技術(shù)的基礎(chǔ)上,這門技術(shù)局限于測量單方面環(huán)境因素,不支持復(fù)雜、多項的環(huán)境控制。我國關(guān)于溫濕度檢測技術(shù)從對國外發(fā)達(dá)技術(shù)的學(xué)習(xí),經(jīng)過慢
14、慢時間的不斷地實(shí)驗,現(xiàn)已經(jīng)發(fā)展到微測量計算機(jī)應(yīng)用的層次上。目前,國內(nèi)用的技術(shù)基本上包括單片機(jī),這種技術(shù)是利用單片機(jī)控制的溫濕度檢測的系統(tǒng),過程與步驟都比較簡單,還不能實(shí)現(xiàn)多參數(shù)多回路的溫濕度控制系統(tǒng),相對于那些發(fā)達(dá)的國家,技術(shù)還是比較落后。我國的溫濕度測量存在著下列問題:實(shí)現(xiàn)功能少、產(chǎn)量水平低,操作檢修步驟繁瑣。</p><p> 1.2.2國外外研究現(xiàn)狀</p><p> 關(guān)于國外溫
15、濕度研究的時間相對于國內(nèi)來說還是較早。國外初期首先設(shè)計出通過組合的形式的模擬式器件,運(yùn)用了就地取材的方法,將其收集的信號進(jìn)行一系列的指示并加以記錄。近階段世界各國都在研究與開發(fā)基于計算機(jī)的控制溫濕度系統(tǒng),此系統(tǒng)受多因子的控制,其主要特點(diǎn)為精確性高、穩(wěn)定性強(qiáng)。以后溫濕度發(fā)展趨勢向著無人操作化、精度穩(wěn)定化發(fā)展。</p><p><b> 1.3系統(tǒng)的分類</b></p><
16、p> 水汽壓型:測出大氣中對某一裝置的總壓力,然后再測出大氣中的水汽對同一裝置的壓力,將測出的兩個壓力進(jìn)行百分比的對比壓力,即可以得出溫濕度的大小值。</p><p> 電阻式濕度片:通過外界溫濕度變化與電阻值的關(guān)系的來設(shè)計出的測量儀器。當(dāng)外界的溫濕度改變時,與其用電路連接的電阻也隨之改變。溫濕度片就是這里的核心器件,它可以感應(yīng)到外界溫濕度的變化。</p><p> 干濕球溫度
17、表:通過兩只完全相同的溫度表,使他們并列在一起,其中用一只溫度表測量氣溫,另外一支溫度表表頭需要纏繞著浸透過純蒸餾水的脫脂紗布,這兩種溫度表結(jié)合起來就是干濕球溫度表。</p><p> 1.4 系統(tǒng)設(shè)計的內(nèi)容與要求</p><p> 對某一特定環(huán)境下用溫室度傳感器感受到溫度和濕度變化,把這種變化轉(zhuǎn)化為電信號輸入到單片機(jī)中,然后進(jìn)行各端口的控制使其數(shù)據(jù)顯示在LCD顯示屏上,完成了對倉庫額
18、的溫室與濕度的測量。要求誤差在上下10%之內(nèi)。</p><p><b> 2 系統(tǒng)設(shè)計方案</b></p><p> 2.1 溫濕度檢測系統(tǒng)方案制定</p><p><b> 方案一</b></p><p> 溫濕度的檢測與溫濕度的顯示構(gòu)成了溫濕度傳感器,溫濕度的傳感器有好多種,設(shè)計方案一中
19、溫濕度傳感器選用的是SHT10。為了營造無人看守狀態(tài),本次設(shè)計中還應(yīng)用了遠(yuǎn)程通信系統(tǒng)。方案一中系統(tǒng)的控制核心是AT89C52單片機(jī),它的主要作用是讀取溫濕度傳感器工作時的內(nèi)部參數(shù),測試的結(jié)果可以顯示在LCD上面。</p><p> 圖1倉庫溫濕度檢測系統(tǒng)原理圖</p><p><b> 方案二</b></p><p> 此方案是溫度和濕度
20、電路的設(shè)計,我們可以使用熱敏電阻和濕敏電阻之類的儀器來檢測,主要是利用它們的感溫效應(yīng)和感濕效應(yīng)。第一步是利用溫敏電阻與熱敏電阻的原理特性感應(yīng)到外界濕度與溫度的變化并對其進(jìn)行電流與電壓的采集,第二步是通過A/D模數(shù)的變化,第三步運(yùn)行到了關(guān)鍵的部分單片機(jī),最后是通過LCD屏幕顯示出測量的結(jié)果來,與此同時已經(jīng)測量出來的溫濕度和之前設(shè)定的溫濕度進(jìn)行比較。如果采用方案二的話,該方案涉及到了A/D數(shù)模轉(zhuǎn)換電路設(shè)計、感濕電路的設(shè)計和感溫電路的設(shè)計,這
21、樣設(shè)計的步驟與程序比較繁瑣。</p><p> 綜合這兩種方案,方案一較為簡單明朗,運(yùn)用所學(xué)的知識較多,故選擇方案一來實(shí)現(xiàn)溫濕度檢測系統(tǒng)的設(shè)計與實(shí)現(xiàn)。</p><p> 2.2 系統(tǒng)功能模塊分析</p><p> 2.2.1 中央控制單元</p><p> 本次溫濕度檢測系統(tǒng)設(shè)計中,由單片機(jī)組成的中央控制單元有十分重要的作用。這是整個
22、系統(tǒng)的大腦,它發(fā)出操作命令指揮系統(tǒng)工作。該單片機(jī)不僅可以控制LCD顯示屏幕的工作狀態(tài),還可以時時刻刻管理著監(jiān)測著外部環(huán)境的溫濕度的變化的溫濕度傳感器的工作狀態(tài)。依照所需設(shè)計的要求和控制的目的,本次畢業(yè)設(shè)計選擇了AT89C52芯片,該芯片里面包含4k Bytes ISP的能多次燒入的Flash器件,是一類簡單高效率的CMOS 8位芯片。AT89C52芯片是使用了ATMEL公司廠家中的較為先進(jìn)高級的控制與制作技術(shù)做為支持動力。AT89C52
23、芯片還包括MCS-52系統(tǒng)的操作命令與89C52管腳的排列,其中較重要的8位CPU和ISP Flash存儲單元是它的核心部件。</p><p> AT89C52芯片的系統(tǒng)功能具有巨大的優(yōu)勢,它可以滿足設(shè)計中系統(tǒng)穩(wěn)定運(yùn)行的基本要求。AT89C52芯片具16位可編程定時計數(shù)器3個,有引腳40個,全雙工串行通信口2個,外部雙向輸入/輸出(I/O)端口32個,外中斷口2個,讀寫口線2個,AT89C52芯片的管腳結(jié)構(gòu)如下
24、圖所示:</p><p><b> 圖2單片機(jī)</b></p><p> 2.2.2 晶振電路模塊與復(fù)位電路模塊</p><p> 晶振電路模塊:單片機(jī)的工作條件是要在時鐘驅(qū)動的作用下才可以穩(wěn)定的進(jìn)行工作,所需的電容大小通常為30PF。單片機(jī)工作時需要一個信號脈沖,晶振的作用就是提供這個信號脈沖。在時鐘驅(qū)動作用下,晶振電路所提供的信號脈沖
25、就是單片機(jī)的工作速度。舉個例子來說明,一個頻率為12MHZ的晶振電路芯片,它的工作速度是12MHZ每秒的運(yùn)行速度,和我們使用的電腦手機(jī)的CPU一個道理。就于多大的頻率才能使單片機(jī)更好的更穩(wěn)點(diǎn)的工作的問題,一般情況下其工作時所需要的頻率在24MHZ左右,超過這個值,系統(tǒng)工作就不穩(wěn)定了。單片機(jī)系統(tǒng)的工作速度取決于時鐘信號,其內(nèi)部鑲有時鐘振蕩電路,在單片機(jī)的外部接通一個振蕩源就可以工作了。</p><p> 復(fù)位電路
26、模塊:復(fù)位電路在設(shè)計的系統(tǒng)中起著重要的作用,它保障了設(shè)計的系統(tǒng)可以在穩(wěn)定的環(huán)境下工作,復(fù)位電路的主要作用功能就是上電復(fù)位。當(dāng)復(fù)位信號消除的時候,系統(tǒng)微機(jī)電路才可以穩(wěn)定高效的工作,消除復(fù)位信號的條件是VCC的電壓在4.7V與5.2V之間,只有在提供穩(wěn)定無誤差的時鐘信號才能實(shí)現(xiàn)本次的設(shè)計。下圖為其仿真圖:</p><p> 圖3晶振電路和復(fù)位電路</p><p><b> 2.2
27、.3顯示模塊</b></p><p> LCD顯示電路是本系統(tǒng)的功能具體體現(xiàn)的重要模塊,實(shí)現(xiàn)了對溫濕度檢測的液晶屏控制的功能。溫濕度顯示電路的組成有SHT10溫濕度傳感器、LCD液晶顯示屏幕。其顯示模塊先接受來自單片機(jī)處理后的信號,再將其結(jié)果顯示在液晶屏幕。下圖為其仿真圖:</p><p><b> 圖4顯示模塊</b></p><
28、p> 2.2.4溫濕度傳感器</p><p> 利用型號為SHT10的溫濕度傳感器來測試倉庫的溫度和濕度。下圖為其仿真圖:</p><p><b> 圖5 溫濕度傳感器</b></p><p> 仿真圖上三個按鍵:↑ ↓ ?來控制操作。當(dāng)?打到左邊時為濕度的調(diào)節(jié),當(dāng)?打到右邊的時候為溫度的調(diào)節(jié);↑是增大按鍵,↓是減小按鍵。<
29、/p><p><b> 2.3 仿真器件</b></p><p> 2.3.1溫濕度傳感器的選擇及介紹</p><p> 選擇SHT10溫濕度傳感器.可同時測量溫度和濕度。精確度,高測量范圍大,便于遠(yuǎn)距離測量。SHT10是瑞士Scnsirion公司推出的一款數(shù)字溫濕度傳感器芯片。SHT10溫濕度傳感器的接口是由SCK與DATA兩個串行接口組成
30、的,它可以實(shí)現(xiàn)CRC的校驗傳輸,而且準(zhǔn)確性高。SHT10溫濕度傳感器利用的是SMD表面貼片設(shè)計之后的封裝形式,管腳排列如圖6所示,SHT10的引腳說明如下:NC是空管腳,GND是接地端線,SCK是串行時鐘輸入DATA,—雙向串行數(shù)據(jù)線,VDD電源端是0.5V至5.5V電源端。</p><p> 圖6 SHT10外形及引腳排列</p><p> SHT10功能齊全,將溫度檢測電路、濕度檢
31、測電路、數(shù)模轉(zhuǎn)化器、微信號處理這些功能全部集成到SHT10芯片上面。講這些功能具體、聚集化,用起來較為方便、快捷。</p><p> 圖7 SHT10溫濕度傳感器原理圖</p><p><b> 2.4 本章小結(jié)</b></p><p> 本章首先進(jìn)行系統(tǒng)的方案論證。6根據(jù)對系統(tǒng)功能的定義,初步完成了系統(tǒng)軟硬件的框圖設(shè)計。接著分別介紹和分
32、析中央控制單元模塊、晶振電路模塊、復(fù)位電路模塊、顯示電路模塊以及主要器件的選型。</p><p><b> 3 系統(tǒng)仿真調(diào)試</b></p><p> 3.1 PROTEUS對系統(tǒng)仿真</p><p> 3.1.1軟件Proteus概述</p><p> Proteus設(shè)計軟件是由英國Labcenter公司針對模
33、擬電路單獨(dú)設(shè)計的一種仿真軟件。此軟件能在電腦系統(tǒng)中進(jìn)行操作,可以有效的仿真出集成電路中許多的模擬器件。該軟件能實(shí)現(xiàn)各種單片機(jī)電路的仿真,具有A/D轉(zhuǎn)換、D/A轉(zhuǎn)換電路與LED液晶屏仿真具備許多虛擬儀器的功能,例如數(shù)字信號發(fā)生器數(shù)字示波器、與非門電路邏分析儀、數(shù)字示波器。</p><p> Proteus是一種針對于單片機(jī)的實(shí)現(xiàn)與仿真的一款軟件。其中它支持很以下單片機(jī)的系列:PIC16類型、8051類型、HC11
34、類型、PIC12類型、Z80類型、AVR理性等多種芯片。</p><p> Proteus軟件還具有軟件調(diào)試的功能。在許多硬件的仿真過程中擁有著多種調(diào)試功能例如設(shè)置斷點(diǎn)、全速、單步等,同時可以仔細(xì)的觀察到每個變量的狀態(tài),用該軟件仿真電路中,同樣的也具有此項功能,帶動著第三方的軟件編譯與調(diào)試所需要的環(huán)境。</p><p> Proteus軟件如今是全世界內(nèi)最全面、最權(quán)威的仿真平臺。<
35、;/p><p> 3.1.2 Proteus對系統(tǒng)仿真</p><p> 根據(jù)設(shè)計要求,從Proteus元件庫中找到所需要用到的元件,畫好電路圖并且檢查有無錯誤。最后通過keil uVision軟件編寫的C語言程序,轉(zhuǎn)換成HEX文件下載到畫好的的電路上進(jìn)行調(diào)試。以下是系統(tǒng)的仿真電路圖:</p><p> 圖8 系統(tǒng)仿真總電路圖</p><p&g
36、t; 通過調(diào)節(jié)SHT10的溫濕度傳感器兩個按鈕“↑”“↓”來調(diào)節(jié)給定的模擬的溫度和濕度的大小,調(diào)節(jié)之后,可以在LCD屏幕上觀察顯示屏出現(xiàn)的溫度濕度的測量值。</p><p> 在一定的環(huán)境行下,給予溫濕度傳感器模擬溫度與濕度,其演示效果如圖8所示;</p><p> 在經(jīng)過單片機(jī)的處理分析后,測量的值會出現(xiàn)在LCD屏幕上,其效果圖如圖9 所示。 </p><p&g
37、t; 圖9溫濕度傳感器的顯示</p><p> 圖10 LCD屏幕的顯示</p><p> 為了進(jìn)一步研究系統(tǒng)的分別對溫度濕度進(jìn)行了5組數(shù)據(jù)的實(shí)現(xiàn),其記錄數(shù)據(jù)如下表:</p><p><b> 表一 溫度的測量</b></p><p><b> 表二 濕度的測量</b></p>
38、<p><b> 3.2誤差分析</b></p><p> a.SHT10的溫濕度傳感器在進(jìn)行測量時存在一定范圍的誤差。</p><p> b.單片機(jī)的編程程序出現(xiàn)一些錯誤。</p><p> 通過以上幾種仿真的結(jié)果可以說明:主要用中央控制核心器件AT89C52單片機(jī)可以實(shí)現(xiàn)關(guān)于溫濕度測量系統(tǒng)所需要的設(shè)計要求,再根據(jù)所記錄
39、表格可看出,雖然存在一定的誤差,但在許可的誤差范圍10%之內(nèi),所以這次的設(shè)計可以用來測量溫度與濕度兩項指標(biāo)。 </p><p><b> 3.3 本章小結(jié)</b></p><p> 本章是整個畢業(yè)設(shè)計的核心章節(jié),要熟練的掌握PROTEUS的基本仿真功能,要通過多組實(shí)驗來驗證該系統(tǒng)的正確性、準(zhǔn)確性與穩(wěn)點(diǎn)性,認(rèn)真的將數(shù)據(jù)填入表格中,合理對所測量的數(shù)據(jù)進(jìn)行誤差
40、分析,得出相應(yīng)的結(jié)論。通過仿真的設(shè)計與實(shí)現(xiàn),本次設(shè)計系統(tǒng)是可以測量溫濕度的,是滿足設(shè)計的需要。</p><p><b> 總結(jié)</b></p><p> 本設(shè)計簡單分析了溫濕度控制系統(tǒng),并按照有關(guān)要求完成了以高效單片機(jī)AT89C52作為核心,從而實(shí)現(xiàn)溫濕度智能監(jiān)測控制的系統(tǒng)設(shè)計。設(shè)計中的溫濕度傳感器SHT10集溫度傳感器和濕度傳感器于一體來進(jìn)行采集與測量,它自帶A
41、/D轉(zhuǎn)換器,因而該溫濕度控制儀器具有精度高、體積小、良好的抗干擾能力,故該系統(tǒng)具有很高的實(shí)用性。</p><p> 原理圖的繪制使我從新學(xué)習(xí)了一次proteus, 對軟件種元器件更加熟悉,畫仿真圖時更為流暢。在進(jìn)行設(shè)計之前有著很多要解決的問題,比如元器件的選擇問題、各個模塊的設(shè)計和主程序的編程。通過這次設(shè)計,我從到圖書館的網(wǎng)站查找相應(yīng)的資料應(yīng)用到對應(yīng)電路參與設(shè)計的思考。每個模塊都要經(jīng)過多次的設(shè)計,不斷的試驗,讓
42、我對之前在學(xué)校所學(xué)的書本上的理論知識有了更為深刻的了解。在完成畢業(yè)設(shè)計的過程是一次難得的理論與實(shí)際相結(jié)合的過程,在這段時間我更為深刻的理解和掌握了大學(xué)期間所學(xué)的一些知識,例如C語言的編程、數(shù)字模擬電路、單片機(jī)的簡單應(yīng)用、proteus和keil軟件的使用與設(shè)計</p><p> 該系統(tǒng)可以在許多環(huán)境下進(jìn)行對溫度、濕度的檢測。這次畢業(yè)設(shè)計比中的系統(tǒng)中的顯示模塊可以設(shè)計的更加合理化,針對一些日常檢查的工作,顯示模塊
43、可以記錄一天內(nèi)需要測量的環(huán)境下的溫濕度,這樣更有利于各種的需要,鑒于本人的設(shè)計能力和設(shè)計要求,這里就不將該設(shè)計思路具體化了。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 王海寧.關(guān)于單片機(jī)的溫度控制系統(tǒng)的研究[D].合肥工業(yè)大學(xué)碩士學(xué)位論文,2008:32~40.</p><p> [2] 黃賢武,鄭筱霞,曲波等
44、.傳感器實(shí)際應(yīng)用電路設(shè)計[M].第一版.成都:電子科技大學(xué)出社,1997:4~10.</p><p> [3] 陳曾平.《電路設(shè)計基礎(chǔ)》[M].第二版.北京:北京高等教育出版社,2003:100~110.</p><p> [4] 余永權(quán). 《單片機(jī)原理及應(yīng)用》[M].第二版.北京:電子工業(yè)出版社,1997:47~48.</p><p> [5] 劉春恰.數(shù)字
45、溫度傳感器DS18B20測溫的應(yīng)用.電器時代[J],2010(10):18~23.</p><p> [6] 周月霞,孫傳友.DS18B20硬件連接及軟件編程.傳感器世界[J],2001(12):25~29.</p><p> [7] 鹿紅玉,戴彥,江培蕾.基于PROTEUS的DS18B20數(shù)字溫度計的仿真實(shí)驗[M].第一版.福建:福建電腦出版社,2010:4~20.</p>
46、;<p> [8] 張毅剛.新編《MCS-51單片機(jī)應(yīng)用設(shè)計》[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003:7~25.</p><p> [9] 張義和等.例說8051[M].北京:人民郵電出版社,2006:14~29.</p><p> [10] 朱濱峰,徐桂云,李俊敏.單片機(jī)在溫濕度測量系統(tǒng)中的應(yīng)用.儀器儀表標(biāo)注化與計量[J].2006(1):13~20.<
47、/p><p> [11] 賈振國.DS1820及高精度溫度測量的實(shí)現(xiàn).電子技術(shù)應(yīng)用[J],2000(1):58~59.</p><p> [12] 趙娜是,趙剛,于珍珠等.基于51 單片機(jī)的溫度測量系統(tǒng).微計算機(jī)信息[J],2007(1-2):146~148. </p><p> [13] 劉同法,陳忠平等.《單片機(jī)基礎(chǔ)與最小系統(tǒng)實(shí)踐》[M].北京航空航天大學(xué)出版
48、社,2007:23~34.</p><p> [14] 陳忠華.《基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計與實(shí)現(xiàn)》[D].大連理工大學(xué)碩士學(xué)位論文,2006:46~57.</p><p><b> 附錄1</b></p><p> include<reg51.h></p><p> #include <
49、;intrins.h></p><p> #define uchar unsigned char</p><p> #define noACK 0//繼續(xù)傳輸數(shù)據(jù),用于判斷是否結(jié)束通訊</p><p> #define ACK 1 //結(jié)束數(shù)據(jù)傳輸;</p><p> //地址 命令 讀/
50、寫</p><p> #define STATUS_REG_W 0x06 //000 0011 0</p><p> #define STATUS_REG_R 0x07 //000 0011 1</p><p> #define MEASURE_TEMP 0x03 //000 0001 1</p><
51、;p> #define MEASURE_HUMI 0x05 //000 0010 1</p><p> #define RESET 0x1e //000 1111 0</p><p> enum {TEMP,HUMI};</p><p> sbit DATA = P2^5;</p><p&g
52、t; sbit SCK = P2^4;</p><p> sbit RS = P2^0;</p><p> sbit RW = P2^1;</p><p> sbit E = P2^2;</p><p> sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端
53、口</p><p> /******** DS1602函數(shù)聲明 ********/</p><p> void LCD_Initial();</p><p> void GotoXY(unsigned char x, unsigned char y);</p><p> void Print(unsigned char
54、 *str);</p><p> void LCD_Write(bit style, unsigned char input);</p><p> /******** SHT10函數(shù)聲明 ********/</p><p> void s_connectionreset(void);</p><p> char s_
55、measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);</p><p> void calc_sth10(float *p_humidity ,float *p_temperature);</p><p> //float calc_dewpoint(float h,float t)
56、;</p><p> /****************************************************************/</p><p><b> //寫字節(jié)程序</b></p><p> char s_write_byte(unsigned char value) </p><p
57、><b> { </b></p><p> unsigned char i,error=0; </p><p> for (i=0x80;i>0;i>>=1) //高位為1,循環(huán)右移</p><p><b> { </b></p><p>
58、if (i&value) DATA=1; //和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位</p><p> else DATA=0; </p><p> SCK=1; </p><p> _nop_();_nop_();_nop_();
59、 //延時3us </p><p><b> SCK=0;</b></p><p><b> }</b></p><p> DATA=1; //釋放數(shù)據(jù)線</p><p> SCK=1;
60、 </p><p> error=DATA; //檢查應(yīng)答信號,確認(rèn)通訊正常</p><p> _nop_();_nop_();_nop_();</p><p> SCK=0; </p><p><b> DATA=1;</b></p>&l
61、t;p> return error; //error=1 通訊錯誤</p><p><b> }</b></p><p><b> //讀字節(jié)程序</b></p><p> char s_read_byte(unsigned char ack)</p>&
62、lt;p> //----------------------------------------------------------------------------------</p><p><b> { </b></p><p> unsigned char i,val=0;</p><p> DATA=1;
63、 //釋放數(shù)據(jù)線</p><p> for(i=0x80;i>0;i>>=1) //高位為1,循環(huán)右移</p><p><b> { </b></p><p> SCK=1; </p><p&
64、gt; if(DATA) val=(val|i); //讀一位數(shù)據(jù)線的值 </p><p> SCK=0; </p><p><b> }</b></p><p> DATA=!ack; //如果是校驗,讀取完后結(jié)束通訊;</p><p>
65、 SCK=1; </p><p> _nop_();_nop_();_nop_(); //延時3us </p><p><b> SCK=0; </b></p><p> _nop_();_nop_();_nop_(); </p><
66、;p> DATA=1; //釋放數(shù)據(jù)線</p><p> return val;</p><p><b> }</b></p><p><b> //啟動傳輸</b></p><p> void s_transstart(void)
67、</p><p> // generates a transmission start </p><p> // _____ ________</p><p> // DATA: |_______|</p><p> // ___ ___</p><
68、p> // SCK : ___| |___| |______</p><p><b> { </b></p><p> DATA=1; SCK=0; //準(zhǔn)備</p><p><b> _nop_();</b></p><p><b&g
69、t; SCK=1;</b></p><p><b> _nop_();</b></p><p><b> DATA=0;</b></p><p><b> _nop_();</b></p><p><b> SCK=0; </b>&l
70、t;/p><p> _nop_();_nop_();_nop_();</p><p><b> SCK=1;</b></p><p><b> _nop_();</b></p><p> DATA=1; </p><p><b> _nop_();&l
71、t;/b></p><p> SCK=0; </p><p><b> }</b></p><p><b> //連接復(fù)位</b></p><p> void s_connectionreset(void)</p><p> // communicat
72、ion reset: DATA-line=1 and at least 9 SCK cycles followed by transstart</p><p> // _____________________________________________________ ________</p><p> // DATA:
73、 |_______|</p><p> // _ _ _ _ _ _ _ _ _ ___ ___</p><p> // SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |_
74、_____| |___| |______</p><p><b> { </b></p><p> unsigned char i; </p><p> DATA=1; SCK=0; //準(zhǔn)備</p><p> for(i=0;i<9;i++)
75、 //DATA保持高,SCK時鐘觸發(fā)9次,發(fā)送啟動傳輸,通迅即復(fù)位</p><p><b> { </b></p><p><b> SCK=1;</b></p><p><b> SCK=0;</b></p><p><b> }</b
76、></p><p> s_transstart(); //啟動傳輸</p><p><b> }</b></p><p><b> //軟復(fù)位程序</b></p><p> char s_softreset(void)</p><
77、p> // resets the sensor by a softreset </p><p><b> { </b></p><p> unsigned char error=0; </p><p> s_connectionreset(); //啟動連接復(fù)位</p><p>
78、 error+=s_write_byte(RESET); //發(fā)送復(fù)位命令</p><p> return error; //error=1 通訊錯誤</p><p><b> }</b></p><p><b> /*讀狀態(tài)寄存器</b></p>&
79、lt;p> char s_read_statusreg(unsigned char *p_value, unsigned char *p_checksum)</p><p> //----------------------------------------------------------------------------------</p><p> // reads
80、 the status register with checksum (8-bit)</p><p><b> { </b></p><p> unsigned char error=0;</p><p> s_transstart(); //transmission start</p>
81、<p> error=s_write_byte(STATUS_REG_R); //send command to sensor</p><p> *p_value=s_read_byte(ACK); //read status register (8-bit)</p><p> *p_checksum=s_read_byte(noACK); //read
82、checksum (8-bit) </p><p> return error; //error=1 in case of no response form the sensor</p><p><b> }</b></p><p><b> //寫狀態(tài)寄存器</b></
83、p><p> char s_write_statusreg(unsigned char *p_value)</p><p> // writes the status register with checksum (8-bit)</p><p><b> { </b></p><p> unsigned char e
84、rror=0;</p><p> s_transstart(); //transmission start</p><p> error+=s_write_byte(STATUS_REG_W);//send command to sensor</p><p> error+=s_write_byte(*p_value);
85、 //send value of status register</p><p> return error; //error>=1 in case of no response form the sensor</p><p> } */</p><p><b>
86、 //溫濕度測量</b></p><p> char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)</p><p> // 進(jìn)行溫度或者濕度轉(zhuǎn)換,由參數(shù)mode決定轉(zhuǎn)換內(nèi)容;</p><p><b> { </b>
87、;</p><p> //enum {TEMP,HUMI}; //已經(jīng)在頭文件中定義</p><p> unsigned error=0;</p><p> unsigned int i;</p><p> s_transstart(); //啟動傳輸</p><p>
88、 switch(mode) //選擇發(fā)送命令</p><p><b> {</b></p><p> case TEMP : error+=s_write_byte(MEASURE_TEMP); break; //測量溫度</p><p> case HUMI : error+=s_wr
89、ite_byte(MEASURE_HUMI); break; //測量濕度</p><p> default : break; </p><p><b> }</b></p><p> for (i=0;i<65535;i++) if(DATA==0) break; //等待測量結(jié)束</p><p
90、> if(DATA) error+=1; // 如果長時間數(shù)據(jù)線沒有拉低,說明測量錯誤 </p><p> *(p_value) =s_read_byte(ACK); //讀第一個字節(jié),高字節(jié) (MSB)</p><p> *(p_value+1)=s_read_byte(ACK); //讀第二個字節(jié),低字節(jié) (LSB)</p&g
91、t;<p> *p_checksum =s_read_byte(noACK); //read CRC校驗碼</p><p> return error; // error=1 通訊錯誤</p><p><b> }</b></p><p> //溫濕度值標(biāo)度變換及溫度補(bǔ)償</p><p>
92、 void calc_sth10(float *p_humidity ,float *p_temperature)</p><p><b> { </b></p><p> const float C1=-4.0; // 12位濕度精度 修正公式</p><p> const float C2=+0.0405;
93、 // 12位濕度精度 修正公式</p><p> const float C3=-0.0000028; // 12位濕度精度 修正公式</p><p> const float T1=+0.01; // 14位溫度精度 5V條件 修正公式</p><p> const float T2=+0.000
94、08; // 14位溫度精度 5V條件 修正公式</p><p> float rh=*p_humidity; // rh: 12位 濕度 </p><p> float t=*p_temperature; // t: 14位 溫度</p><p> float rh_lin
95、; // rh_lin: 濕度 linear值</p><p> float rh_true; // rh_true: 濕度 ture值</p><p> float t_C; // t_C : 溫度 ℃</p><p> t_C=t
96、*0.01 - 40; //補(bǔ)償溫度</p><p> rh_lin=C3*rh*rh + C2*rh + C1; //相對濕度非線性補(bǔ)償</p><p> rh_true=(t_C-25)*(T1+T2*rh)+rh_lin; //相對濕度對于溫度依賴性補(bǔ)償</p><p> if(rh_true>100)
97、rh_true=100; //濕度最大修正</p><p> if(rh_true<0.1)rh_true=0.1; //濕度最小修正</p><p> *p_temperature=t_C; //返回溫度結(jié)果</p><p> *p_humidity=rh_true; //返
98、回濕度結(jié)果</p><p><b> }</b></p><p> //從相對溫度和濕度計算露點(diǎn)</p><p> /*float calc_dewpoint(float h,float t)</p><p><b> {</b></p><p> float lo
99、gEx,dew_point;</p><p> logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2);</p><p> dew_point = (logEx - 0.66077)*237.3/(0.66077+7.5-logEx);</p><p> return dew_point;</p><p>
100、 } */</p><p> /***********************************************************************************************************************************************************/</p><p>
101、 //DS1602程序(1602.c):</p><p> //#include<tou.h></p><p> //內(nèi)部等待函數(shù)**************************************************************</p><p> unsigned char LCD_Wait(void)</p>
102、;<p><b> {</b></p><p><b> RS=0;</b></p><p> RW=1; _nop_();</p><p> E=1; _nop_(); </p><p><b> E=0;</b><
103、;/p><p> return DBPort; </p><p><b> }</b></p><p> //向LCD寫入命令或數(shù)據(jù)********************************************************</p><p> #define LCD_COMMAND
104、 0 // Command</p><p> #define LCD_DATA 1 // Data</p><p> #define LCD_CLEAR_SCREEN 0x01 // 清屏</p><p> #define LCD_HOMING 0x02 // 光標(biāo)返回原點(diǎn)
105、</p><p> void LCD_Write(bit style, unsigned char input)</p><p><b> {</b></p><p><b> E=0;</b></p><p><b> RS=style;</b></p>
106、<p> RW=0; _nop_();</p><p> DBPort=input; _nop_();//注意順序</p><p> E=1; _nop_();//注意順序</p><p> E=0; _nop_();</p><p> LCD_Wait(); </p&
107、gt;<p><b> }</b></p><p> //設(shè)置顯示模式************************************************************</p><p> #define LCD_SHOW 0x04 //顯示開</p><p> #defin
108、e LCD_HIDE 0x00 //顯示關(guān) </p><p> #define LCD_CURSOR 0x02 //顯示光標(biāo)</p><p> #define LCD_NO_CURSOR 0x00 //無光標(biāo) </p><p> #define LCD_FLASH
109、 0x01 //光標(biāo)閃動</p><p> #define LCD_NO_FLASH 0x00 //光標(biāo)不閃動</p><p> void LCD_SetDisplay(unsigned char DisplayMode)</p><p><b> {</b></p><p> L
110、CD_Write(LCD_COMMAND, 0x08|DisplayMode); </p><p><b> }</b></p><p> //設(shè)置輸入模式************************************************************</p><p> #define LCD_AC_UP
111、 0x02</p><p> #define LCD_AC_DOWN 0x00 // default</p><p> #define LCD_MOVE 0x01 // 畫面可平移</p><p> #define LCD_NO_MOVE 0x00 //default<
112、/p><p> void LCD_SetInput(unsigned char InputMode)</p><p><b> {</b></p><p> LCD_Write(LCD_COMMAND, 0x04|InputMode);</p><p><b> }</b></p>
113、<p> //初始化LCD************************************************************</p><p> void LCD_Initial()</p><p><b> {</b></p><p><b> E=0;</b></p>
114、<p> LCD_Write(LCD_COMMAND,0x38); //8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣</p><p> LCD_Write(LCD_COMMAND,0x38);</p><p> LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //開啟顯示, 無光標(biāo)</p><p>
115、 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏</p><p> LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC遞增, 畫面不動</p><p><b> }</b></p><p> //液晶字符輸入的位置****************
116、********</p><p> void GotoXY(unsigned char x, unsigned char y)</p><p><b> {</b></p><p><b> if(y==0)</b></p><p> LCD_Write(LCD_COMMAND,0x80|x
117、);</p><p><b> if(y==1)</b></p><p> LCD_Write(LCD_COMMAND,0x80|(x-0x40));</p><p><b> }</b></p><p> //將字符輸出到液晶顯示</p><p> void Pr
118、int(unsigned char *str)</p><p><b> {</b></p><p> while(*str!='\0')</p><p><b> {</b></p><p> LCD_Write(LCD_DATA,*str);</p><
119、;p><b> str++;</b></p><p><b> }</b></p><p><b> }</b></p><p> /*****************************************************************************
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫濕度檢測裝置的設(shè)計與實(shí)現(xiàn)
- 開題報告--溫濕度檢測系統(tǒng)設(shè)計
- 溫濕度檢測裝置的設(shè)計與實(shí)現(xiàn).pdf
- 文獻(xiàn)綜述--溫濕度檢測系統(tǒng)設(shè)計
- 智能溫室大棚溫濕度檢測系統(tǒng)設(shè)計
- 無線溫濕度檢測系統(tǒng)設(shè)計【文獻(xiàn)綜述】
- 溫濕度監(jiān)測系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 大型糧倉溫濕度檢測系統(tǒng)的設(shè)計
- 大型糧倉溫濕度檢測系統(tǒng)的設(shè)計
- 溫濕度檢測儀
- 倉庫溫濕度檢測系統(tǒng)設(shè)計-畢業(yè)論文
- 溫濕度信號采集系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 溫濕度檢測系統(tǒng)【畢業(yè)論文】
- 庫房溫濕度監(jiān)測系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 溫濕度遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 溫濕度監(jiān)測系統(tǒng)設(shè)計.pdf
- 溫濕度集散型控制系統(tǒng)設(shè)計與實(shí)現(xiàn).pdf
- 溫濕度監(jiān)測系統(tǒng)軟件的設(shè)計與實(shí)現(xiàn).pdf
- 溫濕度檢測源程序2
- 基于dht11的溫濕度檢測系統(tǒng)設(shè)計
評論
0/150
提交評論