溫度控制系統(tǒng)資料_第1頁
溫度控制系統(tǒng)資料_第2頁
溫度控制系統(tǒng)資料_第3頁
溫度控制系統(tǒng)資料_第4頁
溫度控制系統(tǒng)資料_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、緒論隨著新技術(shù)的不斷開發(fā)與應(yīng)用,近年來單片機(jī)發(fā)展十分迅速,一個以微機(jī)應(yīng)用為主 的新技術(shù)革命浪潮正在蓬勃興起,單片機(jī)的應(yīng)用已經(jīng)滲透到電力、冶金、化工、建材、 機(jī)械、食品、石油等各個行業(yè)。傳統(tǒng)的溫度采集方法不僅費(fèi)時費(fèi)力,而且精度差,單片 機(jī)的出現(xiàn)使得溫度的采集和數(shù)據(jù)處理問題能夠得到很好的解決 。傳統(tǒng)的控制方式以不 能滿足高精度,高速度的控制要求,如溫度控制表溫度接觸器,其主要缺點(diǎn)是溫度波動 范圍大,由于他主要通過控制接觸器的通斷時間比例來達(dá)到改變加熱功率的目的,受儀 表本身誤差和交流接觸器的壽命限制,通斷頻率很低。本設(shè)計使用單片機(jī)作為核心進(jìn)行控制。單片機(jī)具有集成度高,通用性好,功能強(qiáng), 特別是體積

2、小,重量輕,耗能低,可靠性高,抗干擾能力強(qiáng)和使用方便等獨(dú)特優(yōu)點(diǎn),在 數(shù)字、智能化方面有廣泛的用途。1溫度控制及單片機(jī)發(fā)展歷程溫度控制系統(tǒng)在國內(nèi)各行各業(yè)的應(yīng)用雖然已經(jīng)十分廣泛,但從國內(nèi)生產(chǎn)的溫度控制器來講,總體發(fā)展水平仍然不高,同日本、美國、德國等先進(jìn)國家相比,仍然有著較大 的差距。成熟的溫控產(chǎn)品主要以“點(diǎn)位”控制及常規(guī)的PID控制器為主,它們只能適應(yīng)一 般溫度系統(tǒng)控制,而用于較高控制場合的智能化、自適應(yīng)控制儀表,國內(nèi)技術(shù)還不十分 成熟,形成商品化并廣泛應(yīng)用的控制儀表較少2。隨著我國經(jīng)濟(jì)的發(fā)展及加入 WTO我 國政府及企業(yè)對此都非常重視,對相關(guān)企業(yè)資源進(jìn)行了重組,相繼建立了一些國家、企 業(yè)的研發(fā)

3、中心,開展創(chuàng)新性研究,使我國儀表工業(yè)得到了迅速的發(fā)展。單片機(jī)是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大部分功能集成在 一塊小芯片上,但是它具有一個完整計算機(jī)所需要的大部分部件:CPU內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘 等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸 出系統(tǒng)集成在一塊芯片上。單片機(jī)也被稱為微控制器(Microco ntroller ),是因為它最早被用在工業(yè)控制領(lǐng) 域。單片機(jī)由芯片內(nèi)僅有CPU勺專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外 圍設(shè)備和CPU集成在一個芯片中,使計算機(jī)系統(tǒng)

4、更小,更容易集成進(jìn)復(fù)雜的而對體積要 求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計出的處理器, 從此以后, 單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而 性能不錯獲得了很大的好評。此后在 8031上發(fā)展出了 MCS5系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了 16位單片機(jī),但因為性價比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速

5、取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz性能直追90年代中期的專用處理器, 而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當(dāng)代單片機(jī)系統(tǒng) 已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列 的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的 Windows和Linux操作系統(tǒng)。1.1課題背景及研究意義近年來單片機(jī)發(fā)展十分迅速,一個以微機(jī)應(yīng)用為主的新技術(shù)革命浪潮正在蓬勃興起,單片機(jī)的應(yīng)用已經(jīng)滲透到電力

6、、冶金、化工、建材、機(jī)械、食品、石油等各個行業(yè)。 傳統(tǒng)的溫度采集方法不僅費(fèi)時費(fèi)力,而且精度差,單片機(jī)的出現(xiàn)使得溫度的采集和數(shù)據(jù) 處理問題能夠得到很好的解決。1.2課題的設(shè)計目的1. 鞏固、加深和擴(kuò)大單片機(jī)應(yīng)用的知識面,提高綜合及靈活運(yùn)用所學(xué)知識解決工業(yè)控制的能力。2. 培養(yǎng)針對課題需要,選擇和查閱有關(guān)手冊、圖表及文獻(xiàn)資料的自學(xué)能力,提高組成系統(tǒng)、編程、調(diào)試的動手能力。3. 通過對課題設(shè)計方案的分析、選擇、比較、熟悉單片機(jī)用系統(tǒng)開發(fā)、研制的過程,軟硬件設(shè)計的方法、內(nèi)容及步驟。1.3課題的主要工作本課題的溫度傳感器DS18B20此傳感器課讀取被測量溫度值,進(jìn)行轉(zhuǎn)換。主要工作研究重點(diǎn)是設(shè)計一種基于單

7、片機(jī)的數(shù)字溫度測量及報警系統(tǒng)。利用數(shù)字溫度傳感如下:1. 測溫范圍 55C+125C,固有測溫分辨率0.5 C。2. 精度誤差小于1C。3. LCD1602液晶顯示。4. 兩路溫度測量及報警功能。5. 實現(xiàn)報警提示蜂鳴器及LCD發(fā)光二極管。1.4本文研究內(nèi)容電子溫度計采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導(dǎo)體,熱 敏電阻等),將溫度的變化轉(zhuǎn)換成電信號的變化,如電壓和電流的變化,溫度變化和電 信號的變化有一定的關(guān)系,如線性關(guān)系,一定的曲線關(guān)系等,這個電信號可以使用模數(shù) 轉(zhuǎn)換的電路即A/D轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號,數(shù)字信號再送給處理單元,如 單片機(jī)或者PC機(jī)等,處理單元經(jīng)過

8、內(nèi)部的軟件計算將這個數(shù)字信號和溫度聯(lián)系起來, 成為可以顯示出來的溫度數(shù)值,如25.0攝氏度,然后通過顯示單元,如 LED LCD或者電腦屏幕等顯示出來給人觀察。這樣就完成了電子溫度計的基本測溫功能。本文是基于AT89S5仲片機(jī),采用數(shù)字溫度傳感器 DS18B20利用DS18B2C不需要A/D轉(zhuǎn)換,可直接進(jìn)行溫度采集顯示,報警的電子溫度計設(shè)計。包括傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報警調(diào)整電路,單片機(jī)主板電路等組成。2系統(tǒng)總體方案及硬件設(shè)計2.1電子溫度計設(shè)計方案論證由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就

9、可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理, 在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計中,大多都是使用傳感器, 所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。2.2總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖 2.1所示,控制器采用單片機(jī) AT89C52,溫度傳感器采用DS18B20,LCD1602實現(xiàn)溫度顯示。圖2.1總體設(shè)計框圖2.2.1主控制器單片機(jī)AT89C52具有低電壓供電和體積小等特點(diǎn),四個端口只需要兩個口就能滿 足電路系

10、統(tǒng)的設(shè)計需要,適合便攜手持式產(chǎn)品的設(shè)計使用。AT89C52單片機(jī)芯片具有以下特性:1) 指令集合芯片引腳與In tel公司的8052兼容;2) 4KB片內(nèi)在系統(tǒng)可編程FLASH程序存儲器;3) 時鐘頻率為033MHZ4) 128字節(jié)片內(nèi)隨機(jī)讀寫存儲器(RAM ;5) 6個中斷源,2級優(yōu)先級;6) 2個16位定時/記數(shù)器;7) 全雙工串行通信接口;8) 監(jiān)視定時器;9) 兩個數(shù)據(jù)指針;2.2.2 LCD1602顯示模塊顯示電路采用LCD1602顯示模塊,接P0 口。LCD1602主要技術(shù)參數(shù):顯示容量:16X2個字符芯片工作電壓:4.5 5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:

11、5.0V字符尺寸:2.95 X 4.35 (W<H)mm2.221引腳功能說明:LCD160采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表2.1 所示4:表2.1引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7DO數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度

12、過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng) RS和 R/W共同為低電平時可以寫入指令或者顯示地址, 當(dāng)RS為低電平R/W為高電平時可以讀 忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,LCD160顯示模塊執(zhí)行命 令。第714腳:DO- D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極2.222 LCD1602的指令說明及時序LCD160顯示模塊內(nèi)部的控制器

13、共有11條控制指令,如表2.2所示:表2.2控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)到CGRA或DDRAJM10要寫的數(shù)據(jù)內(nèi)容11從 CGRAI或 DDRA讀數(shù)11讀出的數(shù)據(jù)內(nèi)容LCD160顯示模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)

14、的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置I/D :光標(biāo)移動方向,高電平右移,低電平左移S屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān) 顯示C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令DL高電平時為4位總線,低電平時為8位總線N:低電平

15、時 為單行顯示,高電平時雙行顯示 F:低電平時顯示5x7的點(diǎn)陣字符,高電平時顯示5x10 的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令& DDRA地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收 命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780目兼容的芯片基本操作時序表如表2.3所示。表2.3基本操作時序表讀狀態(tài)輸入RS=L R/W=H E=H輸出 D0-D7= 犬態(tài)字寫指令 輸入RS=L, R/W=L D0-D7=f令碼,E= 高脈 輸出無沖讀數(shù)據(jù)輸入RS=H R/W=H E=H輸出D0- D7=t據(jù)寫

16、數(shù)據(jù) 輸入RS=H R/W=L D0-D7=t據(jù),E=高脈沖輸出無讀寫操作時序如圖2.2和圖2.3所示:圖2.2讀操作時序RS圖2.3寫操作時序2.223LCD1602勺RAM地址映射及標(biāo)準(zhǔn)字庫表LCD160液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模 塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地 址,也就是告訴模塊在哪里顯示字符,圖 2.4是LCD1602勺內(nèi)部顯示地址。LCD16字X2行00.0102030405060708090A0BQC0D0EOF10)274o'4142434445464748494A4B4C4D4E4F50

17、*67圖2.4 LCD1602內(nèi)部顯示地址例如第二行第一個字符的地址是 40H,那么是否直接寫入40H就可以將光標(biāo)定位在 第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平 1 所以實際寫入的數(shù)據(jù)應(yīng)該是 01000000B(40H)+10000000B(80H)=11000000E(C0H)。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM已經(jīng)存儲了 160個不同的點(diǎn)陣字 符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小

18、寫、常用的符號、和日文假名等, 每一個字符都有一個固定的代碼,比如大寫的英文字母“ A”的代碼是01000001B( 41H), 顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“ A”。223溫度傳感器DS18B20溫度傳感器是美國DALLAS導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器, 與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過 簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個端口引腳進(jìn)行通信,無須經(jīng)過其它變換電路;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點(diǎn)組網(wǎng)功能;內(nèi)含64位經(jīng)過激光修正

19、的只讀存儲器 ROM可通過數(shù)據(jù)線供電,內(nèi)含寄生電源,電壓范圍為 3.05.5 V;零待機(jī)功耗;溫度以9或12位數(shù)字;用戶可定義報警設(shè)置;報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;測溫范圍為-55C-+125C,測量分辨率為0.0625 C采用單總線專用技術(shù),DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2.5所示圖2.5 DS18B20內(nèi)部結(jié)構(gòu)64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號, 共 有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS

20、18B20可以采用一線進(jìn) 行通信的原因。溫度報警觸發(fā)器 TH和TL,可通過軟件寫入用戶報警上下限。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖2.6所示。頭2 個字節(jié)包含測得的溫度信息,第 3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電 復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨 率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義 如圖2.6所示。低5位一直為1,TM是工作模式位,用于設(shè)置 DS18B20在工作模式還 是在測試模

21、式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn) 換的精度位數(shù),來設(shè)置分辨率溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRCTM11R1R0111圖2.6 DS18B20字節(jié)定義由下面表2.4可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的 溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存RAM勺第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所 有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以1

22、6位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625 °C /LSB形式表示。當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位S=1時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計算十進(jìn)制數(shù)值。表2.4 DS18B20溫度轉(zhuǎn)換時間表R1R0分辨率/位溫度最大轉(zhuǎn)向時間/ms00993.750r 110187.5110113751112750DS18B2C完成溫度轉(zhuǎn)換后,就把測得的溫度值與 RAM中的TH TL字節(jié)內(nèi)容作比較。 若T>TH或TV T

23、L,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機(jī)發(fā)出的報警搜索命令作 出響應(yīng)。因此,可用多只 DS18B2C同時測量溫度并進(jìn)行報警搜索 。在64位ROM勺最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC。主機(jī)ROM勺前56 位來計算CRC值,并和存入DS18B20勺CRCS作比較,以判斷主機(jī)收到的 ROM數(shù)據(jù)是否 正確。DS18B20的測溫原理是這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很 小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門, 當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生

24、的時鐘脈沖進(jìn)行計數(shù)進(jìn)而完成溫 度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55°C所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器 1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置 在55 C所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的 預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器 計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸 出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程

25、,直到溫度寄 存器值大致被測溫度值。表2.5 一部分溫度對應(yīng)值表溫度/C二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110

26、1111FE6FH-551111 1100 1001 0000FC90H2.3系統(tǒng)整體硬件電路設(shè)計2.3.1主板電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報警調(diào)整電路,單片機(jī)主板電路等,單片機(jī)主板電路如圖2.7所示:C1 ;-30pF;:<TpXT>C230pF11-.05G2M >XTAL1XTAL2POOjP0.1iP0.2jP0.3IPO.SiP0 6j圖2.7單片機(jī)主板電路2.3.2顯示電路顯示電路只用P0口,采用LCD160顯示模塊LLJ ILmoiblR3R3TALIPOLO/ADOP0.1/AD1P0.2/AD2TAL2P0L3/AID3

27、P0.4/A04P0.5/AID5PO,B/AD0STP0.7/AD73B3534333202L辛lk-R4 :IkTEXTlk-R4 1k- 圖2.8溫度顯示電路2.3.3溫度采集電路通過DS18B20電路可以對溫度進(jìn)行采集,根據(jù)圖 2.9所示:<TEXT>RSTa + rR1 r4Jk f 蘭T £龍2y3031PSENALEEADS1S02O<TEXT>pmrT2P1.VT2EXP1,2P1.3 GNDs DQ 81 vcc圖2.9溫度采集電路3系統(tǒng)軟件設(shè)計3.1主程序設(shè)計整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能 也就基本

28、定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是 整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程 序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。每一個執(zhí)行軟件 也就是一個小的功能執(zhí)行模塊9。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進(jìn) 行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系 統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān) 控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。主程序流程見圖 3.1 o開始1 F結(jié)束圖3.1主程序流程圖3.2 DS18B20 初始化DS18B20初

29、始化流程圖見圖3.2報警圖3.2 DS18B20初始化流程圖3.3數(shù)據(jù)測試將溫度傳感器與冰水混合物接觸,經(jīng)過充分?jǐn)嚢柽_(dá)到熱平衡后調(diào)節(jié)系統(tǒng),使顯示讀數(shù)為0.00 (標(biāo)定0C);利用氣壓計讀出當(dāng)時當(dāng)?shù)氐拇髿鈮簭?qiáng),并根據(jù)大氣壓強(qiáng)和當(dāng)?shù)?重力加速度計算出當(dāng)時的實際壓強(qiáng);根據(jù)沸點(diǎn)與壓強(qiáng)的關(guān)系查出沸點(diǎn)溫度10。把溫度傳感器放入沸水中,待顯示讀數(shù)穩(wěn)定后重新調(diào)節(jié),使顯示器顯示讀數(shù)等于當(dāng)?shù)禺?dāng)時沸點(diǎn)溫 度后工作結(jié)束。該溫度計的量程為-55C125C,讀數(shù)精度為0.5 C,實際使用一般在 0C100C。采用0C50r和50r100c的精密水銀溫度計作檢驗標(biāo)準(zhǔn),對設(shè)計的 溫度計進(jìn)行測試,其結(jié)果表明能達(dá)到該精度要求。3

30、.4仿真結(jié)果設(shè)置溫度上限為28.5度,溫度下限為23.5度。1. 如圖3.3所示。此時溫度時24度和25度,正常范圍內(nèi),綠燈亮,溫度正常A.DSHIZ1WPKP匪gr . 1TE=01.UP5C37QZ1:24.QHI28.52:25.3L:23.51 i:坤:1:工 £存4 .匚二|刈- V1 U2 QIDtfCTALlPDUABCI 眼口 Wl 帕署血垃XTALZFDAHS 眼口朋4pn A/AWnRSTiPD.Ti'AKrPZ£¥.PZ.VB 2冊<3FZ3AI1ALEPN.etZEKiPZAOF2J&AHP2.7WCFirnzI IP

31、UiTTHE: :P3.im®心PlZiTfra袒 HTTEF1.+口WP35rnPUS口MBF1.7P3.7/WaB .P g , > , - j * 11'Ik4.M£- pTEiP-. iEC-AEbI.寸Eg圖3.3仿真12. 如圖3.4所示。此時溫度為24度和22度,由于22度低于下限溫度,紅燈閃亮, 蜂鳴器響,實現(xiàn)報警。 p r -”.uunL - r b - p '1:24,0 H:2e,5Zt 22.0 L>2Z.5口 37U2L T e ow*ns慫jXTAliPDIFAK1 PO.I/AMlXTA1ZrajfAraFD.+/A

32、D4PDAMPI3 .SAMRSTFn.TCAD?FZDfj>EIP3,VJW>psa'AnALjEPZ.AEE«.侃口 1FZjQfA1«FZ.TM-P1 IFT2pin-Rj®FIJHTKpainDpsrrrn2PZiTimPic*FS.ftJHDFUffP3ST1p-|i 6P11pi.TflirRc 西圖3.4仿真23. 如圖3.5所示。此時溫度為25度和30度,30度不在所設(shè)范圍內(nèi),紅燈閃亮,報警圖3.5仿真3結(jié)論將本文設(shè)計的電子溫度計制作成實物,只要開機(jī)運(yùn)行則能立即監(jiān)測所測對象的溫度,測量范圍較大,制作成本低,程序運(yùn)行穩(wěn)定。不過受限

33、于八位A/D轉(zhuǎn)換器轉(zhuǎn)換精度不夠,在測量范圍內(nèi)最小僅能分辨 2C溫差,很難滿足一些高精度測量。為此可以改用12位甚至更高分辨率的A/D轉(zhuǎn)換器以提高溫差分辨率,滿足更高的測試要求。致謝本論文是在老師的悉心指導(dǎo)和熱情關(guān)懷下完成的。陳老師淵博學(xué)識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài) 度及隨和的為人給我留下了難以忘懷的印象,這將使我受益終身。在此我由衷地感謝陳 老師對我們的幫助,也非常感謝系領(lǐng)導(dǎo)對我們的關(guān)懷。參考文獻(xiàn)1 黃維翼單片機(jī)應(yīng)用與項目實踐M.清華大學(xué)出版社,2010.2 王質(zhì)樸.呂運(yùn)朋MCS-51單片機(jī)原理接口及應(yīng)用M.北京理工大學(xué)出版社,2009.3 陳杰,黃鴻.傳感器與檢測技術(shù)M.高等教育出版社,2002.4 彭

34、偉.單片機(jī)C語言程序設(shè)計實訓(xùn)100例M.電子工業(yè)出版社,2009. 李俊松.21世紀(jì)的光電子科學(xué)N 科學(xué)時報,2002-02-20 (10).6 康華光,陳大欽,張林.電子技術(shù)基礎(chǔ)模擬部分M.高等教育出版社,2005.7 Paul Scherz,夏建生,王仲奕實用電子元器件與電路基礎(chǔ) M 電子工業(yè)出版社, 2009.8 周永東.基于DS18B2啲單片機(jī)數(shù)字溫度計J.微電子學(xué),2007 (5): 65-66.9 陳超華,王會進(jìn).用 Keil C51開發(fā)大型嵌入式J . 2003,23 (11): 140-143 .10 劉國強(qiáng),唐東紅,李興偉等.基于AT89C51單片機(jī)的高精度測溫系統(tǒng)的研制J.

35、儀 器儀表學(xué)報,2005, 26 (ZL): 258-259 .附錄A:程序清單#in clude<reg52.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit DQ=PM0;/DS18B20 與單片機(jī)連接口sbit DQ仁P1M;/DS18B201與單片機(jī)連接口sbit RS=P2A5;sbit RW=P2A6;sbit EN=P2A7;sbit beef =卩3八4;sbit P36 = P3A6;sbit P37 = P3A7;un sig ned char code str1="1:&

36、quot;un sig ned char code str2="H:"un sig ned char code str3="2:"/最低溫門限/最高溫門制un sig ned char code str4="L:"un sig ned char code str5="23.5"un sig ned char code str6="28.5"uchar data disdata4;uchar data disdata14;uint temp,temp1,tempL=23.5,tempH=28.5;

37、EN=0;uint tvalue,tvalue1;溫度值uchar tflag,tflag1;溫度正負(fù)標(biāo)志/* *LCD1602 幣呈序 *延時1毫秒(不夠精確的)寫指令void delay1ms( un sig ned int ms)/ un sig ned int i,j;for(i=0;i<ms;i+)for(j=0;j<100;j+);void wr_com (un sig ned char com)/ delay1ms(1);RS=0;RW=0;EN=0;P0=com; delay1ms(1);EN=1; delay1ms(1);void wr_com1( un sig

38、ned char com1)寫指令 / delaylms(l);RS=0;RW=0;EN=0;P0=com1;delay1ms(1);EN=1;delay1ms(1);EN=0;寫數(shù)據(jù)void wr_dat( un sig ned char dat) delay1ms(1);RS=1;RW=0;EN=0;P0=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;void wr_dat1( un sig ned char dat1)寫數(shù)據(jù) delaylms(l);RS=1;RW=0;EN=0;P0=dat1;delay1ms(1);EN=1;delay1ms(1);EN=

39、0;void LCD_init()初始化設(shè)置 /delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);void display (un sig ned char *p)顯示 /while(*p!='0')wr_dat(*p);p+;delaylms(l);/LCDnitini t_play()初始化顯示 LCDnit();wr_com(0x80);displa

40、y(str1);wr_com(0x89);display(str2);wr_com(0xc0);display(str3);wr_com(0xc9);display(str4);return 0;復(fù)位*/復(fù)位延時拉低精確延時大于480us拉高復(fù)位*/復(fù)位延時DQ1= 0;/DQ拉低*DS18B20程序*/void delay_18B20(u nsig ned int i)延時 1 微秒while(i-);void ds1820rst()/*ds1820DQ = 1; /DQ delay_18B2 0;/DQ = 0;/DQdelay_18B20(100); /DQ = 1;/delay_18B

41、20(40);void ds1820rst1()/*ds1820 DQ1= 1; /DQ delay_18B2 0;/delay_18B20(100); / 精確延時大于 480usDQ1= 1;/ 拉高delay_18B20(40);uchar DS1820rd()/* 讀數(shù)據(jù) */un sig ned char i=0;un sig ned char dat = 0;for (i=8;i>0;i-)DQ = 0; /給脈沖信號 dat>>=1;DQ = 1; /給脈沖信號 if(DQ)dat|=0x80; delay_18B20(10);return(dat);/讀第二個

42、溫度傳感器/uchar DS1820rd1()/* 讀數(shù)據(jù) */un sig ned char j=0;un sig ned char datl = 0;for (j=8;j>0;j-)DQ1= 0; /給脈沖信號 dat1>>=1;DQ仁1; /給脈沖信號if(DQ1)dat1|=0x80;delay_18B20(10);return(dat1);寫數(shù)據(jù)*/void DS1820wr(uchar wdata)/*un sig ned char i=0;for (i=8; i>0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(1

43、0);DQ = 1;wdata>>=1;/寫第二個溫度傳感器/void DS1820wr1(uchar wdatal)/* 寫數(shù)據(jù) */ un sig ned char j=0;for (j=8; j>0; j-)DQ1= 0;DQ1= wdata1 &0x01;delay_18B20(10);DQ1= 1;wdata1>>=1;read_temp()/*讀取溫度值并轉(zhuǎn)換*/uchar a,b;DS1820rst();DS1820wr(0xcc);/* 跳過讀序列號 */DS1820wr(0x44);* 啟動溫度轉(zhuǎn)換 */DS1820rst();DS182

44、0wr(0xcc);* 跳過讀序列號 */DS1820wr(0xbe);* 讀取溫度 */a=DS1820rd();b=DS1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;elsetvalue=tvalue+1;tflag=1;tvalue=tvalue*(0.625);溫度值擴(kuò)大10倍,精確到1位小數(shù)return(tvalue);讀第二個溫度read_temp1()/*讀取溫度值并轉(zhuǎn)換*/傳感器/uchar c,d;DS1820rst1();DS1820wr1(0xcc);* 跳過讀

45、序列號 */DS1820wr1(0x44);* 啟動溫度轉(zhuǎn)換 */DS1820rst1();DS1820wr1(0xcc);* 跳過讀序列號 */DS1820wr1(0xbe);* 讀取溫度 */c=DS1820rd1();/溫度2進(jìn)制低8位d=DS1820rd1();/溫度2進(jìn)制高8位tvalue1=d;tvalue1<<=8;tvalue仁tvalue1|c; /合并高低位if(tvalue1<0x0fff)tflag 仁0;elsetvalue1=tvalue1+1;tflag 仁1;tvalue仁tvalue1*(0.625);溫度值擴(kuò)大10倍,精確到1位小數(shù)return(tvalue1);wr_dat(disdataO);顯示百位void DS1820disp()溫度值顯示 uchar flagdat;disdata0=

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論