倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)_第1頁
倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)_第2頁
倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)_第3頁
倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)_第4頁
倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 智能儀表課程設(shè)計(jì)設(shè)計(jì)報(bào)告 課題名稱: 倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì) 學(xué)生姓名: # 學(xué)生學(xué)號: 所在專業(yè): 測控技術(shù)與儀器 所在班級: 指導(dǎo)教師: # 完成日期: 20110915 揚(yáng)州大學(xué)二一年九月目 錄第1章 前言.11.1 摘要.11.2 關(guān)鍵字.11.3 單片機(jī)簡介.1 第二章 設(shè)計(jì)方案.42.1 設(shè)計(jì)任務(wù)和要求.42.2 方案辯證.42.3 總體設(shè)計(jì).42.4 相關(guān)芯片.5第3章 硬件電路設(shè)計(jì).123.1 溫度傳感器接口設(shè)計(jì).123.2 顯示模塊接口設(shè)計(jì).123.3 總電路接口設(shè)計(jì).13第4章 軟件設(shè)計(jì).144.1 主程序設(shè)計(jì).144.2 溫度傳感器DS18B20設(shè)計(jì).154.3 顯示模塊

2、LCD1602設(shè)計(jì).17第5章 調(diào)試與總結(jié).20儀器儀表清單.21參考文獻(xiàn).20附錄1 課程設(shè)計(jì)任務(wù)書.22.附錄2 參考程序.24第一章 前言1.1 摘要 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同種類的傳感器,可實(shí)現(xiàn)諸如電壓、濕度、溫度、速度、硬度、壓力等的物理量的測量。本文將介紹一種基于單片機(jī)控制理論及其應(yīng)用系統(tǒng)設(shè)計(jì)的數(shù)字溫度計(jì)。 本文主要介紹了一個(gè)基于STC11F16XE單片機(jī)的測溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B

3、20開發(fā)測溫系統(tǒng)的過程,重點(diǎn)對傳感器在單片機(jī)上的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對各部分的電路也進(jìn)行一一介紹,該系統(tǒng)可以方便的是實(shí)現(xiàn)溫度采集和顯示,并可以根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合我們?nèi)粘I詈凸まr(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)做溫度處理模塊嵌入其他系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20和STC11F16XE結(jié)合實(shí)現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合與惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。 本設(shè)計(jì)首先是確定目標(biāo),其次是各個(gè)功能模塊的設(shè)計(jì),本溫度計(jì)屬于多功能溫度計(jì),

4、可以設(shè)置上下報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。 1.2 關(guān)鍵詞 單片機(jī),數(shù)字控制,溫度計(jì), DS18B20,STC11F16XE1.3 單片機(jī)簡介 二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了?,F(xiàn)在

5、,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智能型洗衣機(jī)等。 計(jì)算機(jī)的產(chǎn)生加快了人類改造世界的步伐,但是它畢竟體積大。單片機(jī)在這種情況下誕生了。截止今日,單片機(jī)應(yīng)用技術(shù)飛速發(fā)展,縱觀我們現(xiàn)在生活的各個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機(jī)。 單片機(jī)自70年代問世以來得到蓬勃發(fā)展,目前單片機(jī)功能正日漸完善:單片機(jī)集

6、成越來越多資源,內(nèi)部存儲資源日益豐富,用戶不需要擴(kuò)充資源就可以完成項(xiàng)目開發(fā),不僅是開發(fā)簡單,產(chǎn)品小巧美觀,同時(shí)抗干擾能力加強(qiáng),系統(tǒng)也更加穩(wěn)定,使得它更加適合工業(yè)控制領(lǐng)域,具有更加廣闊的市場前景;提供在線編程能力,加速了產(chǎn)品的開發(fā)進(jìn)程,為企業(yè)產(chǎn)品上市贏得寶貴時(shí)間。此外單片機(jī)具有性能高、速度快、體積小、價(jià)格低、穩(wěn)定可靠、應(yīng)用廣泛、通用性強(qiáng)等突出優(yōu)點(diǎn)。單片機(jī)的設(shè)計(jì)目標(biāo)主要是增強(qiáng)“控制”能力,滿足實(shí)時(shí)控制(就是快速反應(yīng)) 的需要。 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(

7、可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者實(shí)現(xiàn)規(guī)定的任務(wù)。1.3.1 單片機(jī)的應(yīng)用 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:1.在智能儀器儀表上的應(yīng)用 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得

8、儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計(jì),示波器,各種分析儀)。2.在工業(yè)控制中的應(yīng)用 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。 3.在家用電器中的應(yīng)用 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。 4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極

9、好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機(jī)等。 5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 6.在各種大型電器中的模塊化應(yīng)用 某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機(jī),看似簡單的功能,微縮在純電子芯片中(有別于磁帶機(jī)的原理),就需要復(fù)雜的類似于計(jì)算機(jī)的原理。如:音樂信號以數(shù)字的形式存

10、于存儲器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(類似于聲卡)。 在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡化了電路,降低了損壞、錯(cuò)誤率,也方便于更換。 7.單片機(jī)在汽車設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在汽車電子中的應(yīng)用非常廣泛,例如汽車中的發(fā)動機(jī)控制器,基于CAN總線的汽車發(fā)動機(jī)智能電子控制器,GPS導(dǎo)航系統(tǒng),abs防抱死系統(tǒng),制動系統(tǒng)等等。 此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。1.3.2 單片機(jī)的開發(fā)過程 這里所說的開發(fā)過程并不是一般書中所說的從任務(wù)分析開始,我們假設(shè)已設(shè)計(jì)并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確

11、定一些常數(shù)、地址,事實(shí)上這些常數(shù)、地址在設(shè)計(jì)階段已被直接或間接地確定下來了。如當(dāng)某器件的連線設(shè)計(jì)好后,其地址也就被確定了,當(dāng)器件的功能被確定下來后,其控制字也就被確定了。然后用文本編輯器(如EDIT、CCED等)編寫軟件,編寫好后,用編譯器對源程序文件編譯,查錯(cuò),直到?jīng)]有語法錯(cuò)誤,除了極簡單的程序外,一般應(yīng)用仿真機(jī)對軟件進(jìn)行調(diào)試,直到程序運(yùn)行正確為止。運(yùn)行正確后,就可以寫片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴(kuò)展名為HEX的目標(biāo)文件,一般編程器能夠識別這種格式的文件,只要將此文件調(diào)入即可寫片。第二章 設(shè)計(jì)方案2.1 設(shè)計(jì)務(wù)任和要求1.多路檢測溫度 實(shí)時(shí)顯示溫度 過限報(bào)警2.基

12、本范圍-1085 精度誤差小于0.5 LCD液晶顯示 可以任意設(shè)定溫度的上下限報(bào)警功能.2.2 方案辯證A.溫度傳感器的選擇 方案一:采用AD590,它的測溫范圍在-55+150之間,而且精度高。M檔在測溫范圍內(nèi)非線形誤差為±0.3。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會損壞。使用可靠。它只需直流電源就能工作,而且,無需進(jìn)行線性校正,所以使用也非常方便,借口也很簡單。作為電流輸出型傳感器的一個(gè)特點(diǎn)是,和電壓輸出型相比,它有很強(qiáng)的抗外界干擾能力。AD590的測量信號可遠(yuǎn)傳百余米。 方案二:采用集成數(shù)字式溫度傳感器DS18B20,該傳感器是含有已校準(zhǔn)數(shù)字信號

13、輸出的溫度傳感器。DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫;測溫范圍55125,在-10+85時(shí)精度為±0.5;可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫;在12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快;測量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;電源極性接反時(shí),芯片不會因發(fā)熱而燒毀,但不能正常工作。超小的體積

14、、極低的功耗,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。B.顯示模塊選擇 方案一:ZLG7290和數(shù)碼管,通過單片機(jī)的某兩個(gè)端口模擬I2C接口與ZLG7290的SDA與SCL口相連,控制數(shù)碼管與按鍵。本課題要顯示6路DS18B20采集的溫度值且I2C總線對時(shí)序要求較高,因此要多個(gè)數(shù)碼管。 方案二:字符型液晶顯示模塊LCD1602,LCD1602以若干個(gè)5´8或5´11點(diǎn)陣塊組成的顯示字符群。每個(gè)點(diǎn)陣塊為一個(gè)字符位,字符間距和行距都為一個(gè)點(diǎn)的寬度;具有字符發(fā)生器ROM可顯示192種字符;具有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)5´8點(diǎn)陣字符或四個(gè)5&#

15、180;11點(diǎn)陣字符;標(biāo)準(zhǔn)的接口特性,適配M6800系列MPU的操作時(shí)序;模塊結(jié)構(gòu)緊湊、輕巧、裝配容易;單+5V電源供電;低功耗、長壽命、高可靠性。LCD1602與單片連接簡單,滿足多路顯示要求。 通過A和B一共四個(gè)方案的分析,結(jié)合傳統(tǒng)倉庫溫度監(jiān)測系統(tǒng)時(shí)選取溫度 傳感器方案的比較和論證,我們最終采選擇集成數(shù)字式溫度傳感器DS18B20和字符型液晶顯示模塊LCD1602。2.3 總體設(shè)計(jì) 該倉庫溫度監(jiān)測系統(tǒng)主要是以STC11F16XE單片機(jī)為核心、基于集成數(shù)字式溫度傳感器DS18B20對倉庫內(nèi)環(huán)境溫度的采集監(jiān)測,最終通過LCD1602液晶顯示模塊準(zhǔn)確、快捷地顯示出倉庫內(nèi)所存貨物的溫度,從而達(dá)到倉

16、庫溫度監(jiān)測的目的。以下是倉庫溫度監(jiān)測系統(tǒng)的總體設(shè)計(jì) 單片機(jī)芯片 STC11F16XE復(fù)位電路晶振控制1602 顯示器溫度檢測電路DS18B20 報(bào)警指示燈圖2-1倉庫溫濕度監(jiān)測系統(tǒng)總體設(shè)計(jì)2.4 相關(guān)芯片2.4.1 集成數(shù)字式溫度傳感器DS18B20 DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下: (1)獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器

17、與DS18B20的雙向通訊。 (2)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)測溫; (3)無須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi); (4)可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5; (5)零待機(jī)功耗; (6)溫度以9或12位數(shù)字,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫; (7)用戶可定義報(bào)警設(shè)置; (8)報(bào)警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件; (9)負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作; (10)測量結(jié)果直接輸出數(shù)字溫度

18、信號,以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力DS18B20采用3腳PR35封裝或8腳SOIC封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖如圖及測溫原理圖如下所示: 圖2-2 引腳排列圖2-3 內(nèi)部結(jié)構(gòu)框圖預(yù)置斜率累加器比較低溫度系數(shù)振蕩器計(jì)數(shù)器1溫度寄存器Tx預(yù)置=0高溫度系數(shù)振蕩器-0計(jì)數(shù)器2T1加1停止T2圖2-4 DS18B20測溫原理圖 64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個(gè)器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過

19、軟件寫入戶報(bào)警上下限。 DS18B20溫度傳感器的內(nèi)部存儲器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖4所示。頭2個(gè)字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖5所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置

20、分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC TMR1R011111圖2-5 DS18B20的字節(jié)定義DS18B20的分辨率定義如表1所示表1 分辨率設(shè)置表R0R1分辨率最大溫度轉(zhuǎn)移時(shí)間009位96.75ms0110位187.5ms1011位375ms1112位750ms 由表1可見,DS18B20溫度轉(zhuǎn)換的時(shí)間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換過程是:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位,即將數(shù)據(jù)總線下拉500us,然后釋放,DS18B20收

21、到信號后等待16-60us左右,之后發(fā)出60-240us的存在低脈沖,主CPU收到此此信號表示復(fù)位成功;復(fù)位成功后發(fā)送一條ROM指令,然后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)訂的讀寫操作。表2 ROM指令集指令約定代碼功能讀ROM33H讀DS18B20中的編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編輯相對應(yīng)的DS18B20使之做出響應(yīng),為下一步對該DS18B20的讀寫作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上的DS18B20個(gè)數(shù)和識別64位ROM地址,為操作各器件作準(zhǔn)備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)送溫度變換指

22、令告警搜索命令0ECH執(zhí)行后,只有溫度跳過設(shè)定值上限或下限的片子才能做出反應(yīng)表3 RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動DS18B20進(jìn)行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個(gè)字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重調(diào)E2RAM0B8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀供電方式0B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPU DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率

23、明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將最低溫所對應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在最低溫所對應(yīng)的一個(gè)基數(shù)值。 減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫

24、度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。2.4.2 液晶顯示模塊LCD1602 字符型液晶顯示模塊由字符型液晶顯示屏(LCD),控制驅(qū)動主電路HD44780及其擴(kuò)展驅(qū)動電路HD44100,少量阻、容元件,結(jié)構(gòu)件等裝配在PCB板上而成。 LCD1602接口引腳功能引腳號符號狀態(tài)功 能1Vss 電源地2Vdd +5V邏輯電源3V0 液晶驅(qū)動電源4RS輸入寄存器選擇1:數(shù)據(jù);0:指令5R/W輸入讀、寫選擇1:讀; 0:寫6E輸入使能信號7DB0三態(tài)數(shù)據(jù)總線(LSB)8DB1三態(tài)

25、數(shù)據(jù)總線9DB2三態(tài)數(shù)據(jù)總線10DB3三態(tài)數(shù)據(jù)總線11DB4三態(tài)數(shù)據(jù)總線12DB5三態(tài)數(shù)據(jù)總線13DB6三態(tài)數(shù)據(jù)總線14DB7三態(tài)數(shù)據(jù)總線(MSB)15LEDA輸入背光+5V16LEDK輸入背光地注:15、16兩管腳用于帶背光模塊,不帶背光的模塊這兩個(gè)管腳懸空不接。LCD1602指令集1.清屏RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 0 1運(yùn)行時(shí)間(250Khz):1.64ms;功能:清DDRAM和AC值。2.歸位RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 1 *運(yùn)

26、行時(shí)間(250Khz):1.64ms;功能:AC=0,光標(biāo)、畫面回HOME位。3.輸入方式設(shè)置RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 1 I/D S運(yùn)行時(shí)間(250Khz):40us;功能:設(shè)置光標(biāo)、畫面移動方式。其中:I/D=1:數(shù)據(jù)讀、寫操作后,AC自動增一;I/D=0:數(shù)據(jù)讀、寫操作后,AC自動減一; S=1:數(shù)據(jù)讀、寫操作,畫面平移; S=0:數(shù)據(jù)讀、寫操作,畫面不動;4.顯示開關(guān)控制RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 1 D C B運(yùn)行時(shí)間(250Khz):

27、40us;功能:設(shè)置顯示、光標(biāo)及閃爍開、關(guān)。其中:D表示顯示開關(guān):D=1為開,D=0為關(guān);C表示光標(biāo)開關(guān):C=1為開,C=0為關(guān);B表示閃爍開關(guān):B=1為開,B=0為關(guān)。5.光標(biāo)、畫面位移RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 1 S/C R/L * *運(yùn)行時(shí)間(250Khz):40us;功能:光標(biāo)、畫面移動,不影響DDRAM。其中:S/C=1:畫面平移一個(gè)字符位;S/C=0:光標(biāo)平移一個(gè)字符位;R/L=1:右移;R/L=0:左移。6.功能設(shè)置 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1

28、 DL N F * *運(yùn)行時(shí)間(250Khz):40us;功能:工作方式設(shè)置(初始化指令)。其中:DL=1,8位數(shù)據(jù)接口;DL=0,四位數(shù)據(jù)接口; N=1,兩行顯示;N=0,一行顯示; F=1,5´10點(diǎn)陣字符;F=0,5´7點(diǎn)陣字符。7.CGRAM地址設(shè)置RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 1 A5 A4 A3 A2 A1 A0運(yùn)行時(shí)間(250Khz):40us;功能:設(shè)置CGRAM地址。A5A0=03FH。8.DDRAM地址設(shè)置RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 A6

29、 A5 A4 A3 A2 A1 A0運(yùn)行時(shí)間(250Khz):40us;功能:設(shè)置DDRAM地址。 N=0,一行顯示A6A0=04FH;N=1,兩行顯示 首行A6A0=00H2FH,次行A6A0=40H67H9.讀BF及AC值RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:讀忙BF值和地址計(jì)數(shù)器AC值。其中:BF=1:忙;BF=0:準(zhǔn)備好。此時(shí),AC值意義為最近一次地址設(shè)置(CGRAM或DDRAM)定義。10.寫數(shù)據(jù)RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01

30、 0數(shù) 據(jù)運(yùn)行時(shí)間(250Khz):40us;功能:根據(jù)最近設(shè)置的地址性質(zhì),數(shù)據(jù)寫入DDRAM或CGRAM內(nèi)。11.讀數(shù)據(jù)RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1數(shù) 據(jù)運(yùn)行時(shí)間(250Khz):40us;功能:根據(jù)最近設(shè)置的地址性質(zhì),從DDRRAM或CGRAM數(shù)據(jù)讀出。 第三章 硬件電路設(shè)計(jì) 3.1 溫度傳感器接口設(shè)計(jì) 圖3-1 DS18B20與STC11F16XE接口電路3.2 顯示模塊接口設(shè)計(jì) 圖3-2 LCD1602與STC11F16XE接口電路 3.3 總電路接口設(shè)計(jì) 圖3-3倉庫溫濕度監(jiān)測系統(tǒng)的原理圖第四章 軟件設(shè)計(jì)4.1 主程序設(shè)計(jì) 圖4-

31、1主程序流程圖4.2 溫度傳感器DS18B20程序設(shè)計(jì)4.2.1 DS18B20復(fù)位子程序設(shè)計(jì)圖4-2 DS18B20復(fù)位子程序流程圖4.2.2 DS18B20寫位子程序設(shè)計(jì)圖4-3 DS18B20寫位子程序流程圖4.2.3 DS18B20讀位子程序設(shè)計(jì)圖4-4 DS18B20讀位子程序流程圖4.3 LCD1602顯示模塊程序設(shè)計(jì)4.3.1 LC1602初始化子程序設(shè)計(jì)圖4-5 LCD1602初始化子程序流程圖4.3.2 LCD1602寫指令子程序設(shè)計(jì) 圖4-6 LCD1602寫指令子程序流程圖4.3.2 LCD1602寫數(shù)據(jù)子程序設(shè)計(jì)流程圖圖4-7 LCD1602寫數(shù)據(jù)子程序流程圖第五章 調(diào)

32、試與總結(jié)5.1調(diào)試結(jié)果圖5-1 倉庫溫度監(jiān)測系統(tǒng)實(shí)物圖5.2總結(jié) 在為期三周的時(shí)間里我們做完了智能儀器課程設(shè)計(jì),這其中讓我感受最深的是:1. 以前唐老師說時(shí)序是精華,我一直不怎么理解,現(xiàn)在知道了,這次的課程設(shè)計(jì)C編程時(shí),總是出錯(cuò),檢查最后結(jié)果還是沒嚴(yán)格按照芯片的時(shí)序來編寫。2. 還有就是沒有與時(shí)俱進(jìn),新的單片機(jī)速度快,我們老式單片機(jī)用習(xí)慣了也不把時(shí)間調(diào)整過來,結(jié)果就是出不來。 存在著以下不足:1. 學(xué)的知識很難運(yùn)用到現(xiàn)在中,得加強(qiáng)這方面的鍛煉。2. 加強(qiáng)與同學(xué)之間的合作能力。儀器儀表明細(xì)清單 型號數(shù)量型號數(shù)量STC11F16XE1電阻10k 2LCD16021電阻4.7k 6DS18B20 6

33、電阻1 k 4MAX2321電容10uF 2RS232串口1電容1uF412MHZ晶振 1電容30pF 2LED指示燈4導(dǎo)線 若干按鍵 1 參考文獻(xiàn)1 張毅剛.單片機(jī)原理及應(yīng)用.北京:高等教育出版社,20082 馬斌等.單片機(jī)原理及應(yīng)用C語言程序設(shè)計(jì)與實(shí)現(xiàn).北京:人民郵電出版社,20093 金春林等.AVR系列單片機(jī)C語言編程與應(yīng)用實(shí)例.北京:清華大學(xué)出版社,2003附錄1 課程設(shè)計(jì)任務(wù)書一、課題名稱倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)二、設(shè)計(jì)內(nèi)容及設(shè)計(jì)要求利用溫度傳感器DS18B20多點(diǎn)監(jiān)測倉庫溫度,具有下面的功能:1. 測量范圍為-10+85,精度誤差小于0.5。2. 液晶顯示。3. 可以設(shè)置上下報(bào)警溫度

34、,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。4. 具有RS485通信接口。三、時(shí)間安排第一周:星期一星期二:布置任務(wù),熟悉資料,確定儀表的功能要求、性能指標(biāo)。熟悉實(shí)驗(yàn)板原理圖和印刷板圖。星期三星期五:進(jìn)行儀表的方案選擇,確定主要芯片、工作方式、輸入輸出信號的接口方式、鍵盤和顯示方式、以及通信方式。進(jìn)行硬件設(shè)計(jì)和元器件選擇,畫出硬件原理圖。第二周:星期一星期五:根據(jù)硬件原理圖,焊接硬件電路;測試硬件電路的功能;軟件設(shè)計(jì),包括軟件需求說明、軟件結(jié)構(gòu)框圖、主要軟件功能模塊的流程圖;編寫程序。第三周:星期一星期三:調(diào)試程序,聯(lián)調(diào)軟件和硬件。星期四星期五:寫課程設(shè)計(jì)報(bào)告。四、應(yīng)交成果應(yīng)交成果包括:n 紙質(zhì)課程設(shè)

35、計(jì)報(bào)告和電子文檔;n 硬件原理圖的Protel文件,程序;n 可以演示的硬件和軟件成果。五、課程報(bào)告內(nèi)容課程設(shè)計(jì)報(bào)告應(yīng)包括下列部分:n 課程設(shè)計(jì)任務(wù)書n 儀表的功能要求、性能指標(biāo)要求。n 方案選擇:提出多種方案,進(jìn)行方案比較,說明選定方案的理由,描述硬件和軟件的功能分工。n 硬件設(shè)計(jì):包括硬件結(jié)構(gòu)框圖、原理圖及其各個(gè)主要環(huán)節(jié)的工作原理說明,元器件選擇的計(jì)算方法或者理由,利用提供的實(shí)驗(yàn)板焊接元器件。n 軟件設(shè)計(jì):首先提出軟件的功能需求,然后進(jìn)行軟件的結(jié)構(gòu)設(shè)計(jì),再畫出主要功能模塊的軟件框圖。n 程序編寫和調(diào)試。n 設(shè)計(jì)小結(jié)。報(bào)告中硬件原理于用Protel畫出,軟件框圖和程序流程圖用Visio畫出。

36、參考資料:提供下列常用元器件數(shù)據(jù)手冊:74LS32: 4個(gè)2輸入或門74LS138:3:8譯碼器74LS244:緩沖器74LS273:正邊沿觸發(fā)鎖存器74LS373:負(fù)邊沿觸發(fā)鎖存器AD526:可編程放大器CD4051:多路開關(guān)DAC0832:8位DACLM324:放大器MAX187/MAX189:12位串行ADCMAX197:Multi-Range (±10V, ±5V, +10V, +5V), Single +5V, 12-Bit DAS with 8+4 Bus InterfaceMAX232: +5V-Powered, Multichannel RS-232 Dri

37、vers/ReceiversMAX485:±15kV ESD-Protected, Slew-Rate-Limited, Low-Power, RS-485/RS-422 TransceiversTLP521:光電耦合器ZLG7290:種I2C接口鍵盤及LED驅(qū)動管理器件,提供數(shù)據(jù)譯碼和循環(huán)、移位、段尋址等控制。STC89C51:單片機(jī)附錄2 參考程序#include <reg52.h>#include <absacc.h>#include <intrins.h> #include <math.h> #include <stdio

38、.h>sfr p0=0x80;sfr p2=0xA0; sbit RS=P27; sbit RW=P26;sbit E =P25;sbit dq=p24;sbit LED3=p23;sbit LED2=p22;sbit LED1=p21;sbit LED0=p20;#define uchar unsigned char#define uint unsigned intuchar xdata RomID88;uchar tmph,tmpl; /DS18B20 10uS倍延時(shí)子函數(shù) void delay1(uint n) uint i; for(i=10*n;i>0;i-) _nop_

39、();_nop_();_nop_();_nop_();_nop_();_nop_();/DS18B20 1uS倍延時(shí)子函數(shù)void delay2(uint n) uint i; for(i=n;i>0;i-) _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/DS18B20復(fù)位子函數(shù)uchar reset(void)uchar receive_ready; dq=1; dq=0; delay1(50); dq=1; delay1(7); receive_ready=dq; delay1(42); return

40、(receive_ready);/從DS18B20讀位子函數(shù)uchar read_bit(void)dq=1; dq=0; delay2(1); dq=1; delay2(3); return(dq);/從DS18B20中讀字節(jié)子函數(shù)uchar read_byte(void)uchar i,mid,receive_data=0; for(i=0;i<8;i+) receive_data>>=1; dq=1; delay2(1); dq=0; dq=1; delay2(3); if(dq) receive_data|=0x80; delay1(9); return(receiv

41、e_data);/向DS18B20寫位子函數(shù) void write_bit(uchar bitval)dq=1; dq=0; if (bitval=1) dq=1; delay1(10); dq=1;/向DS18B20中寫字節(jié)子函數(shù)void write_byte(uchar val)uchar i,temp; for(i=0;i<8;i+) temp=val>>i; temp=temp&0x01; dq=1; dq=0; if (temp=1) dq=1; delay1(10); dq=1; delay2(3); /搜索多個(gè)DS18B20子函數(shù)uchar Search

42、RomID()uchar xdata Rom64; uchar i,j,R1,R2,a,b,c,d; uchar _00wbit8=2,2,2,2,2,2,2,2; for(i=0;i<8;i+) c=0; reset(); write_byte(0xf0); /主機(jī)發(fā)布搜索命令 for(j=0;j<64;j+) R1=read_bit(); delay1(6); R2=read_bit(); delay1(6); if(R1=0&&R2=1) /未出現(xiàn)數(shù)據(jù)沖突,主機(jī)寫0 Romj=0; write_bit(0); else if(R1=1&&R2=

43、0) /未出現(xiàn)數(shù)據(jù)沖突,主機(jī)寫1 Romj=1; write_bit(1); else if(_00wbitc=2) /出現(xiàn)新00寫位 write_bit(0); Romj=0; _00wbitc=0; /新00寫位賦值為0 c+=1; else if(_00wbitc=1) write_bit(1); Romj=1; c+=1; else if(_00wbitc=0) write_bit(0); Romj=0; c+=1; for(j=0;j<64;j=j+8) for(d=0;d<8;d+) if(Romj+d&0x01) RomIDij/8>>=1; Ro

44、mIDij/8|=0x80; else RomIDij/8>>=1; for(a=0,c=7;c>=0;c-) if(_00wbitc=2) continue; else if(_00wbitc=0&&a=0) _00wbitc=1; break; else if(_00wbitc=1) if(c!=0)a+=1; continue; else b=1; /00寫位組全部為1,搜索結(jié)束置標(biāo)志位break; else if(_00wbitc=0&&a!=0) _00wbitc=1; for(;a>0;a-) c+=1; _00wbitc=2

45、; break; if(b=1) break; return(i+1); /LCD1602 1mS倍延時(shí)子函數(shù) delay(uchar ms)uint i; while(ms-) for(i = 0; i< 2500; i+) _nop_();_nop_();_nop_();_nop_(); / 測試LCD忙碌狀態(tài)子函數(shù)bit lcd_bz()bit result; RS=0; RW=1; E=1; delay2(4); result = (bit)(P0 & 0x80); E = 0; return result;/LCD1602寫指令子函數(shù)lcd_wcmd(uchar cmd)while(lcd_bz(); RS=0; RW=0; E=0; delay2(2); P0 = cmd; delay2(4); E=1;

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論