基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)_第1頁
基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)_第2頁
基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)_第3頁
基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)_第4頁
基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 2012 2013 學(xué)年 第 2 學(xué)期 單片機(jī)原理與應(yīng)用課 程 設(shè) 計(jì) 報(bào) 告 題 目:基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì) 專 業(yè): 自動化 班 級: 電氣工程系2013年5月3日任務(wù)書 課題名稱基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)指導(dǎo)教師(職稱)林開司設(shè)計(jì)目的 (1)學(xué)會LED數(shù)碼管的顯示方法;(2)學(xué)會使用pertues仿真軟件進(jìn)行電路仿真;(3)熟悉DS18B20的相關(guān)知識,并學(xué)會使用該傳感器進(jìn)行溫度檢測的編程方法。(4)通過基于數(shù)碼管的DS18B20溫度傳感器的溫度采集系統(tǒng)設(shè)計(jì)的 實(shí)踐,從而加強(qiáng)我們對單片機(jī)專業(yè)基礎(chǔ)知識的認(rèn)識和興趣,培養(yǎng)我們 綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決

2、實(shí)際問題,鍛煉實(shí)踐能力。設(shè)計(jì)要求要求:設(shè)計(jì)一個基于DS18B20的溫度控制系統(tǒng),其可實(shí)現(xiàn)的功能為:(1)使用DS18B20溫度傳感器采集當(dāng)前的溫度,并采集的溫度值送數(shù)碼管顯示。(2)設(shè)計(jì)溫度的上下界限,超過溫度上限或下限時,蜂鳴器報(bào)警同時一個發(fā)光二極管閃爍報(bào)警 摘 要 通過系統(tǒng)的分析和總結(jié) ,得出溫室大氣溫度信號的采集傳感器件所需的測量程小 ,精確度不高 ,抗干擾性較強(qiáng) ,經(jīng)濟(jì)性較好的結(jié)論。并以此為依據(jù) ,選用 DS18B20數(shù)字溫度傳感器為溫度采集器件 ,進(jìn)行了溫度采集系統(tǒng)的硬件和軟件設(shè)計(jì) ,實(shí)現(xiàn)了采集系統(tǒng)分布式采集溫度信號的功能。同時 ,通過串行總線完成了采集系統(tǒng)與上位計(jì)算機(jī)的連接 ,實(shí)現(xiàn)

3、了采集系統(tǒng)的網(wǎng)絡(luò)化監(jiān)控功能。關(guān)鍵詞 溫度采集;DS18B20溫度傳感器;仿真;單片機(jī) 基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)目 錄摘 要II第一章 DS18B20溫度傳感器21.1 DS18B20的工作原理21.2 DS18B20的使用方法4第二章 單片機(jī)AT89C5172.1 AT89C51簡介72.2 AT89C51功能72.3 AT89C51引腳7第三章系統(tǒng)硬件電路設(shè)計(jì)103.1測溫控制電路原理圖103.2 上電復(fù)位電路103.3 時鐘電路103.4數(shù)碼管顯示電路113.5 溫度報(bào)警電路13第四章 程序設(shè)計(jì)144.1 DS18B20復(fù)位檢測子程序流程圖144.2 溫度轉(zhuǎn)換子程序圖144.3

4、 寫DS18B20子程序圖145.4 讀DS18B20子程序圖154.5 溫度計(jì)算子程序圖16第五章 調(diào)試與仿真16第六章 結(jié)論與體會18參考文獻(xiàn)19附 錄:19答辯記錄及評分表23 第一章 DS18B20溫度傳感器1.1 DS18B20的工作原理DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s 減為750ms。 DS18B20測溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和

5、溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。計(jì)數(shù)器1對 低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即 為所測溫度。圖3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。 圖1-1DS18B20數(shù)字溫度傳感器內(nèi)部結(jié)構(gòu)DS18B20有4個主要的數(shù)據(jù)部件: (1)光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻R

6、OM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個DS18B20的目的。(2)DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號位。 表1-1: DS18B20溫度值格式表這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位

7、為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。 表1-2: DS18B20溫度數(shù)據(jù)表(3)DS18B20溫度傳感器的存儲器DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。(4)配置寄存器該字節(jié)各位的意義如下:TMR1R011111 表1-3: 配置寄存器結(jié)

8、構(gòu)低五位一直都是1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設(shè)置為0,用戶不要去改動。R1和R0用來設(shè)置分辨率,如下表所示:(DS18B20出廠時被設(shè)置為12位)R1R0分辨率溫度最大轉(zhuǎn)換時間009位93.75ms0110位187.5ms1011位375ms1112位750ms 表1-4: 溫度分辨率設(shè)置表序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。 表1-5 引腳功能 1.2 DS18B20的使用

9、方法 由于DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。 由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動

10、讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 DS18B20的初始化 (1) 先將數(shù)據(jù)線置高電平“1”。 (2) 延時(該時間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn)) (3) 數(shù)據(jù)線拉到低電平“0”。 (4) 延時750微秒(該時間的時間范圍可以從480到960微秒)。 (5) 數(shù)據(jù)線拉到高電平“1”。 (6) 延時等待(如果初始化成功則在15到60毫秒時間之內(nèi)產(chǎn)生一個由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進(jìn)行等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時控制)。 (7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時,其延時的時間從發(fā)出的

11、高電平算起(第(5)步的時間算起)最少要480微秒。 (8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。 DS18B20的寫操作 (1) 數(shù)據(jù)線先置低電平“0”。 (2) 延時確定的時間為15微秒。 (3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。 (4) 延時時間為45微秒。 (5) 將數(shù)據(jù)線拉到高電平。 (6) 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。 (7) 最后將數(shù)據(jù)線拉高。 DS18B20的讀操作 (1)將數(shù)據(jù)線拉高“1”。 (2)延時2微秒。 (3)將數(shù)據(jù)線拉低“0”。 (4)延時3微秒。 (5)將數(shù)據(jù)線拉高“1”。 (6)延時5微秒。 (7)讀數(shù)據(jù)線的狀態(tài)得到

12、1個狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。 (8)延時60微秒。 ROM指令表1-6 : 指 令 約定代碼功 能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址) 符合 ROM 55H發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對應(yīng)的 DS1820 使之作出響應(yīng),為下一步對該 DS1820 的讀寫作準(zhǔn)備。 搜索 ROM 0FOH用于確定掛接在同一總線上 DS1820 的個數(shù)和識別 64 位 ROM 地址。為操作各器件作好準(zhǔn)備。 跳過 ROM 0CCH忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。適用于單片工作。 告警搜索命令0ECH執(zhí)行后只

13、有溫度超過設(shè)定值上限或下限的片子才做出響應(yīng)。 RAM指令表1-7: 指 令 約定代碼功 能溫度變換44H啟動DS1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750ms(9位為93.75ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中。 讀暫存器 0BEH 讀內(nèi)部RAM中9字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。 復(fù)制暫存器 48H 將RAM中第3 、4字節(jié)的內(nèi)容復(fù)制到EEPROM中。 重調(diào) EEPROM 0B8H 將EEPROM中內(nèi)容恢復(fù)到RAM中的第3 、4字節(jié)。 讀供電方式 0B4H 讀DS1820的供電模式。寄生供電時DS182

14、0發(fā)送“ 0 ”,外接電源供電 DS1820發(fā)送“ 1 ”。 第二章 單片機(jī)AT89C51 2.1 AT89C51簡介AT89S51美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4K BytesISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及AT89C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元。單片機(jī)AT89S51強(qiáng)大的功能可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。2.2 AT89C51功能 AT8

15、9S51提供以下標(biāo)準(zhǔn)功能:40個引腳、4K Bytes Flash片內(nèi)程序存儲器、128 Bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM)、32個外部雙向輸入/輸出(I/O)口、5個中斷優(yōu)先級2層中斷嵌套中斷、2個數(shù)據(jù)指針、2個16位可編 程定時/計(jì)數(shù)器、2個全雙工串行通信口、看門狗(WDT)電路、片內(nèi)振蕩器及時鐘電路。此外,AT89S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式,空閑模式,CPU暫停工作,而RAM、定時/計(jì)數(shù)器、串行通信口、外中斷系統(tǒng)可繼續(xù)工作。掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PL

16、CC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。2.3 AT89C51引腳P0口:P0口為一個8位漏級開路雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,能驅(qū)動8個TTL邏輯門電路。對端口寫“1”時,被定義為高阻輸入。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗(yàn)時,輸出指令字節(jié),校驗(yàn)時,要求外接上拉電阻。P1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時

17、可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(I)。P2口:P2口是一個帶有內(nèi)部上拉電阻的8位雙向I/O口, P2口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(I)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)寄存器(例如執(zhí)行MOVXRi指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存

18、器的內(nèi)容),在整個訪問期間不改變。P3口: P3口是一個帶有內(nèi)部上拉電阻的雙向8位I/O口, P3口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫“1”時,它們被內(nèi)部的上拉電阻拉高并可作為輸入端口。作輸入口使用時,被外部信號拉低的P3口將用上拉電阻輸出電流(I)。RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上的高電平時間將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。 DISRTO位缺省為RESET輸出高電平打開狀態(tài)。 ALE/:當(dāng)訪問外部存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸

19、出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部寄存器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。值得注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只要一條MOVX和MOVC指令才會激活A(yù)LE。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。:程序存儲允許()輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩

20、次有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器時,沒有兩次有效的信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端保持高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。 AT89C51與DS18B20連接的Proteus電路原理圖2-1第三章 系統(tǒng)硬件電路設(shè)計(jì)3.1測溫控制電路原理圖51單片機(jī)是此硬件電路設(shè)計(jì)的核心,單片機(jī)和DS18B20的電路連接如第二章圖2-1所示。 3.2 上電復(fù)位電路圖3-1 上電復(fù)位電路本設(shè)計(jì)中AT89C51是采

21、用上電自動復(fù)位,如圖4-2所示。上電瞬間,RC電路充電,RST引線端出現(xiàn)正脈沖,只要RST端保持10ms以上的高電平,就能使單片機(jī)有效地復(fù)位。3.3 時鐘電路此處選用內(nèi)部時鐘方式。即利用其內(nèi)部的振蕩電路在XTAL1和XTAL2引線上外接定時組件,內(nèi)部振蕩電路產(chǎn)生自激振蕩。最常用的是在 XTAL1和XTAL2之間接晶體振蕩器與電路構(gòu)成穩(wěn)定的自激振蕩器,如圖3-2電路.圖3-2 時鐘電路3.4數(shù)碼管顯示電路發(fā)光二極管LED是一種通電后能發(fā)光的半導(dǎo)體器件,其導(dǎo)電性質(zhì)與普通二極管類似。它使用了8個LED發(fā)光二極管,其中7個顯示字符,1個顯示小數(shù)點(diǎn),故通常稱之為7段發(fā)光二極管數(shù)碼顯示器,如圖4-5所示。

22、 為了顯示字符,要為 LED顯示器提供段碼(或稱字形代碼),組成一個“8”字形的7段,再加上1個小數(shù)點(diǎn)位,共計(jì)8段,因此提供給LED顯示的段碼為1個字節(jié)。各段碼位的對應(yīng)關(guān)系如下:段碼位 D7 D6 D5 D4 D3 D2 D1 D0 顯示段 dp g f e d c b a 表格3-1 各段碼位的對應(yīng)關(guān)系共陽極接法:把發(fā)光二極管的陽極連在一起構(gòu)成公共陽極,使用時公共陽極接+5 V, 每個發(fā)光二極管的陰極通過電阻與輸入端相連。當(dāng)陽極端輸入低電平時,段發(fā)光二極管就導(dǎo)通點(diǎn)亮,而輸入高電平時則不點(diǎn)亮。 共陽極 顯示段碼圖3-3 LED數(shù)碼顯示器的顯示段碼本設(shè)計(jì)采用LED數(shù)碼管顯示電路,該顯示電路由7段

23、共陽數(shù)碼管,限流電阻,三極管,基極電阻,P0口,P2口等組成。P0口通過與電阻排與數(shù)碼管的8個數(shù)據(jù)位相連,送顯示數(shù)碼。電阻即可起到限流作用,又可起到上拉電阻的作用。P2口的P2.0P2.3通過4個10k的電阻和4個三極管與4個7段數(shù)碼管相連,起位選的作用。數(shù)碼管顯示電路的原理圖如圖4-6 。圖3-4數(shù)碼管顯示電路圖3.5 溫度報(bào)警電路溫度報(bào)警電路是檢測當(dāng)前溫度的值并與預(yù)置的溫度上下限進(jìn)行比較,當(dāng)當(dāng)前溫度超出預(yù)置的溫度上下限時,系統(tǒng)就會立即發(fā)出報(bào)警信號。此設(shè)計(jì)的溫度報(bào)警電路是由聲光報(bào)警電路組成,用到了蜂鳴器和LED發(fā)光二極管。原理圖如圖4-7:圖3-5溫度報(bào)警電路第四章 程序設(shè)計(jì) 本設(shè)計(jì)的程序編

24、寫主要是對DS18B20溫度傳感器的程序設(shè)計(jì),下面主要對DS18B20的程序編寫進(jìn)行說明。4.1 DS18B20復(fù)位檢測子程序流程圖主機(jī)控制DS18B20完成任何操作之前必須先初始化,即主機(jī)發(fā)一復(fù)位脈沖(最短為480us的低電平),接著主機(jī)釋放總線進(jìn)入接收狀態(tài),DS18B20在檢測到I/O引腳上的上升沿之后,等待15-60us然后發(fā)出存在脈沖(60-240us的低電平)。如圖5-3所示。圖4-1 初始化程序DS18B20復(fù)位檢測子程序的主要功能為檢測DS18B20是否存在。若存在則將標(biāo)志位FLAG1置1,反則置0.后續(xù)程序可以通過判斷標(biāo)志位來決定進(jìn)行何種操作。流程圖如圖5-2:開始發(fā)跳過rom

25、命令寫入子程序發(fā)溫度轉(zhuǎn)換命令返回圖4-2 溫度轉(zhuǎn)換子程序4.2 溫度轉(zhuǎn)換子程序圖溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,流程圖如圖4-2:4.3 寫DS18B20子程序圖寫時間片:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫起始信號。在15us之內(nèi)將所需寫的位送到數(shù)據(jù)在線,在15us到60us之間對數(shù)據(jù)線進(jìn)行采樣,如果采樣為高電平,就寫1,如果為低電平,寫0就發(fā)生。在開始另一個寫周期前必須有1us以上的高電平恢復(fù)期。其寫時序圖4-3,流程圖如圖4-5:圖4-3 寫時序YN開始R2=8寫之前復(fù)位CLR DQ延時16us以上RRC A延時100us DQ=1R2=0

26、返回SETB DQ圖4-4寫入DS18B20子程序圖CLR CYN開始發(fā)DS18B20復(fù)位命令跳過rom命令發(fā)讀溫度命令8位元組完返回存入溫度緩存器圖4-5讀溫度子程序圖讀操作5.4 讀DS18B20子程序圖 讀時間片:主機(jī)將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號。主機(jī)在讀時間片下降沿之后15us內(nèi)完成讀位。每個讀周期最短的持續(xù)期為60us,各個讀周期之間也必須有1us以上的高電平恢復(fù)期。如圖5-8.讀溫度子程序只讀出DS18B20緩存器前4個字節(jié)的數(shù)據(jù):溫度值LSB溫度值MSB、溫度報(bào)警值TH和TL,并將它們分別存入25H28H單元中。如圖4-6:圖4-

27、6讀時序4.5 溫度計(jì)算子程序圖溫度計(jì)算子程序首先判斷溫度值MSB的符號位,當(dāng)符號位S=0時,表示測得的溫度值為正,可以直接將二進(jìn)制轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位S=1時,表示測得的溫度值為負(fù),要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制值。計(jì)算時先將溫度值LSB的低四位取出,進(jìn)行小數(shù)部分?jǐn)?shù)據(jù)處理。再將溫度值LSB的高四位和溫度值MSB的低四位取出,重新組合后進(jìn)行整數(shù)部分?jǐn)?shù)據(jù)處理。如圖5-9:NY溫度零下溫度值取補(bǔ)碼置“-”標(biāo)志置“+”標(biāo)志計(jì)算小數(shù)字BCD值計(jì)算整數(shù)字元BCD值返回開始圖4-7計(jì)算溫度BCD碼子程序第五章 調(diào)試與仿真本設(shè)計(jì)的程序編輯完成以后,通過keil編程軟件來調(diào)試,經(jīng)過多次的修改調(diào)試。軟件的仿

28、真是用的Proteus ISIS,是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。將設(shè)計(jì)的電路圖連接好,將程序加入到AT89C51中,進(jìn)行仿真,和多次的修改,最終得到預(yù)測的結(jié)果。仿真電路完整圖如下:正溫度仿真 Proteus仿真總電路圖-1 5-1負(fù)溫度仿真 Proteus仿真總電路圖-2 5-2 第六章 結(jié)論與體會 傳統(tǒng)的檢測大氣溫度的手段大多采用模擬溫度傳感器采集數(shù)據(jù) ,并且需要經(jīng)過一系的 A /D轉(zhuǎn)換、 信號放大和濾波等過程。由于在電路設(shè)計(jì)、元件選擇和軟件設(shè)計(jì)等方面存在諸多因素的影響 ,往往容易造成系統(tǒng)不穩(wěn)定 ,并且擴(kuò)展性和網(wǎng)絡(luò)化程度也非常差。筆者系統(tǒng)地分析并歸納了溫室大氣的溫

29、度數(shù)據(jù)特征 ,并采用 DS18B20溫度傳感器設(shè)計(jì)了溫室溫度采集系統(tǒng)。經(jīng)過實(shí)踐論證 ,該系統(tǒng)可在 10 85 實(shí)現(xiàn) 0. 5 的采集精度。同時 ,基于 51單片機(jī)和 DS18B20數(shù)字傳感器的采集系統(tǒng)具有硬件接線簡單、 測量精度高、 穩(wěn)定性好和抗干擾性強(qiáng)等諸多優(yōu)點(diǎn)。溫室溫度采集系統(tǒng)通過串行總線實(shí)現(xiàn)與上位監(jiān)控機(jī)的連接 ,使系統(tǒng)具備了遠(yuǎn)程監(jiān)控能力 ,從而實(shí)現(xiàn)了實(shí)時監(jiān)控溫室內(nèi)大氣溫度數(shù)據(jù)的功能。該系統(tǒng)在農(nóng)業(yè)信息化領(lǐng)域和其他工業(yè)領(lǐng)域均具備了良好的應(yīng)用和推廣價值。 一周的課程設(shè)計(jì),使我們有了很多的心得體會一開始接觸這個課題時我還不知道該從何下手,很多東西不知該如何實(shí)現(xiàn),經(jīng)過一星期的努力,在圖書館和網(wǎng)上查

30、資料,小組討論,終于是完成了任務(wù)。通過這次設(shè)計(jì)加深了我們對這門課程的了解,以前總是覺得理論結(jié)合不了實(shí)際,但通過這次設(shè)計(jì)使我們認(rèn)識到了理論結(jié)合實(shí)際的重要性。但由于我們知識的限制,設(shè)計(jì)還有很多不足之處,希望老師指出并教導(dǎo)。 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。很感激學(xué)校給了我們這次動手實(shí)踐的機(jī)會,讓我們學(xué)生有了一個共同學(xué)習(xí),增長見識,開拓視野的機(jī)會。也感謝老師對我們的指導(dǎo),我們會以這次課程設(shè)計(jì)作為對自己的激勵,繼續(xù)學(xué)習(xí)。參考文獻(xiàn)1 彭桂蘭,張學(xué)軍,張新東.溫室環(huán)境計(jì)算機(jī)測控技術(shù)的研究現(xiàn)狀和發(fā)展趨勢 J

31、.現(xiàn)代化農(nóng)業(yè),2001.2 彭里.溫室大棚檢測控制系統(tǒng)的研究 J .計(jì)算機(jī)工程,2000.3 何鵬,袁其,丁春欣.傳感器在溫室大棚環(huán)境控制中的應(yīng)用 J .計(jì)算機(jī)與農(nóng)業(yè),2002.4 崔志富,趙亭荃,李建國.溫度傳感器在農(nóng)業(yè)生產(chǎn)中的應(yīng)用 J .現(xiàn)代化農(nóng)業(yè),2002.5 周月霞,孫傳友. DS1820傳感器及其測溫方法的改進(jìn) J .石油儀器,2002.6 蘇麟祥. DS1820數(shù)字溫度傳感器的功能特性及其設(shè)計(jì) J .世界采礦快報(bào),2000.7 JAN AXELS ON.串行端口大全 M .精英科技,譯.北京:中國電力出版社,2001.附 錄:#include#include#define ucha

32、r unsigned char#define uint unsigned intsbit DQ=P24;unsigned char flag,presence; /負(fù)數(shù)標(biāo)志uchar code scan8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code table13=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x39,0x00;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar dispbuf8;uchar te

溫馨提示

  • 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

提交評論