基于單片機溫度控制電路的設計與制作畢業(yè)論文_第1頁
基于單片機溫度控制電路的設計與制作畢業(yè)論文_第2頁
基于單片機溫度控制電路的設計與制作畢業(yè)論文_第3頁
基于單片機溫度控制電路的設計與制作畢業(yè)論文_第4頁
基于單片機溫度控制電路的設計與制作畢業(yè)論文_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、設計(論文)題目設計(論文)題目 倉儲室溫度自動控制系統(tǒng)倉儲室溫度自動控制系統(tǒng) 學學 院:院: 電信學院電信學院 學生姓名:學生姓名: 專業(yè)班級:專業(yè)班級:應用電子應用電子 22 班(手機)班(手機) 學學 號:號: 指導教師:指導教師: 2012 年年 2 月月 5 日日 摘摘 要要:本設計以 stc89c52rc 單片機為控制核心,由數(shù)字溫度傳感器 ds18b20 構成了 一個高溫和低溫時,分別對相應的器件進行控制的系統(tǒng)。詳細地介紹了整個系統(tǒng)的硬件組成 結構、工作原理和系統(tǒng)的軟件程序設計,重點闡述了時鐘模塊、顯示模塊、溫度檢測模塊 及相關控制模塊等的模塊化設計思路與制作。系統(tǒng)采用八段四位數(shù)

2、碼管作為顯示器,具有 環(huán)境溫度實時顯示,按鍵設置上下限溫度,從而控制倉庫排氣扇轉動。在本設計中,軟件 程序均采用 c 語言編寫,便于移植與升級。 關鍵詞關鍵詞:stc89c52rc; 單片機; 數(shù)碼管; 溫度控制; based on single-chip microcomputer temperature control circuit design and production abstract:this design with stc89c52rc microcontroller as control core, by real time clock chip ds1302 and di

3、gital temperature sensor ds18b20 constitute a high temperature and low temperature respectively on the corresponding device to control system. introduced the whole systems hardware structure, working principle and system software program design in detail, expounds the clock module, display module, t

4、emperature detecting module and related control module of modularization design and production. system adopts 數(shù)碼管 monitor, 數(shù)碼管 1602 as with real-time time display, environmental temperature display, display the system worked 24 hours before the temperature on the hour value. in this design, software

5、 program all use written in c language, for transplantation and upgrades. key words: stc89c52rc; single-chip; digital tube;temperature control; 目錄目錄 1 背景與意義背景與意義.1 1.1背景.1 1.2意義.1 1.3功能介紹.2 2方案比較與論證方案比較與論證.2 2.1設計任務與要求.3 2.2方案比較與論證.2 2.2.1方案比較與論證 .2 2.2.2方案的選擇 .4 3系統(tǒng)硬件設計系統(tǒng)硬件設計.4 3.1總體電路框圖.4 3.2單元電路設

6、計.5 3.2.1單片機模塊 .5 3.2.3溫度采集模塊 .5 3.2.4數(shù)碼管顯示模塊 .6 3.2.5按鍵模塊 .7 4系統(tǒng)軟件設計系統(tǒng)軟件設計.9 4.1總體軟件框圖.9 4.2各模塊程序設計.9 4.2.1溫度數(shù)據(jù)采集: .9 5系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試.11 5.1硬件調(diào)試.11 5.2軟件調(diào)試.12 6設計總結設計總結.12 致致 謝謝.13 參考文獻參考文獻.13 附錄附錄.15 附錄 a:程序清單 .15 附錄 b:程序清單.22 基于單片機溫度控制電路的設計與制作基于單片機溫度控制電路的設計與制作 1 背景與意義背景與意義 1.1背景 隨著社會的發(fā)展,科技的進步,以及測

7、溫儀器在各個領域的應用,智能化已是現(xiàn) 代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制系統(tǒng)已應用到人們 生活的各個方面,設計一個溫度控制系統(tǒng),具有廣泛的應用前景與實際意義。 溫度是科學技術中最基本的物理量之一,物理,化學,生物等學科都離不開溫 度。在工業(yè)生產(chǎn)和實驗研究中,像電力,化工,石油,冶金,航空航天,機械 制造,糧食存儲, 酒類生產(chǎn)等領域內(nèi),溫度常常是表征對象和過程狀態(tài)的最重 要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化 學反應的工藝過程必須在適當?shù)臏囟认虏拍苷_M行;煉油過程中,原油必須 在不同的溫度和壓力條件下進行分餾才能得到汽油,柴油,煤油等產(chǎn)品。沒有

8、合適的溫度環(huán)境,許多電子設備就不能正常工作,糧倉的儲糧就會變質(zhì)霉爛, 酒類的品質(zhì)就沒有保障。因此,各行各業(yè)對溫度控制的要求都越來越高??梢?, 溫度的測量和控制是非常重要的。單片機在電子產(chǎn)品中的應用已經(jīng)越來越廣泛, 在很多的電子產(chǎn)品中也用到了溫度檢測和溫度控制。隨著溫度控制器應用范圍 的日益廣泛和多樣,各種適用于不同場合的智能溫度控制器應運而生。比較成 熟的產(chǎn)品就有水溫測控溫度控制系統(tǒng)和語音報警的溫度監(jiān)控儀等。其中水溫測 控溫度控制系統(tǒng)的功能可以實現(xiàn)從常溫開始對自來水加溫,加熱到人工設定的 溫度的恒溫控制。而語音報警的溫度監(jiān)控儀可以通過控制空調(diào)對溫度進行自動 調(diào)節(jié),使被控環(huán)境的溫度達到要求的范圍

9、,并能實現(xiàn)對所控區(qū)域內(nèi)環(huán)境溫度的 自動監(jiān)控的遠程智能調(diào)控系統(tǒng)。 1.2意義 基于單片機溫度控制的測試控制系統(tǒng),控制對象是溫度。溫度控制在日常 生活及工業(yè)領域應用相當廣泛,比如溫室,水池,發(fā)酵缸,電源等場所的溫度 控制。而以往溫度控制是由人工完成的而且不夠重視,其實在很多場所溫度都 需要監(jiān)控以防止發(fā)生意外。針對此問題,本系統(tǒng)設計的目的是實現(xiàn)可以根據(jù)外 界環(huán)境溫度控制電機的溫度控制系統(tǒng),它應用廣泛,功能強大,小巧美觀,便 于攜帶,是一款既實用又廉價的控制系統(tǒng)。 1.3 功能介紹 1.3.1 按設定鍵可切換設置模式,數(shù)碼管顯示相應模式頁面。 1.3.2 當按下溫度設定鍵,即 1.3.3 當進入上下限

10、溫度設置時,按動上下鍵可實現(xiàn)溫度調(diào)整,并通過設定 需要設定的上下限溫度值,可實現(xiàn)風扇的自動控制和手動控制工作方式的切換。 2方案比較與論證方案比較與論證 2.1設計任務與要求 2.1.1 當傳感器檢測出的環(huán)境溫度偏低時,控制繼電器,實現(xiàn)電暖爐的開與關 的狀態(tài)。 2.1.2 當傳感器檢測出的環(huán)境溫度偏高時,隨著溫度的改變,控制電機的轉速 作出相應的改變。 2.1.3 通過時鐘芯片 ds1302 自動控制電機,使其在某個時間段不工作。 2.1.4 當環(huán)境溫度超出了設定值時,蜂鳴器發(fā)出聲響報警。 2.2方案比較與論證 2.2.1 方案比較與論證 方案一:單片機按照一定的控制算法對采集的溫度數(shù)據(jù)進行處

11、理,得到控制 量,以控制電機的功率,從而實現(xiàn)風扇轉速的控制。傳感器采用集成的 ad599,但是這個方案的電路結構十分復雜,a/d 轉換器的精度實現(xiàn)既定功能 的困難很大,而且由于器件很多,使得單片機 89c51 的內(nèi)部資源不能滿足需要, 調(diào)試和安裝都十分不方便,同時實現(xiàn)擴展功能困難。方案組成方框圖如圖 1 所 示: 溫度傳感器信號放大 a/d 轉換 單片機 鍵盤 數(shù)碼管 蜂鳴器 或門放大光耦可控硅 電機 過零觸發(fā)電 路 220v 圖 1 方案一組成方框圖 方案二:采用數(shù)字式溫度傳感器 ds18b20,它能夠將溫度直接轉換成數(shù)字 信號,可以通過一根數(shù)據(jù)線與單片機進行通信,而且它不需要外部元件,在-

12、 100c850c 范圍內(nèi)可以精確到+0.50c。完全滿足設計要求。這樣設計就可以不使 用 a/d 轉換器,從而使系統(tǒng)的精度得以提高,也能夠大大節(jié)省單片機得系統(tǒng)資 源,所以我又加了 ds1302 時鐘模塊電路,使時間能夠實時顯示。方案組成方 框圖如圖 2 所示: ds18b20 鍵盤 模數(shù)轉 換 單片機 stc89c525rc 數(shù)碼管 負載 蜂鳴器 圖 2 方案二組成方框圖 2.2.2 方案的選擇 通過以上兩種方案的比較,我選擇的是方案二作為設計方案,因為方案二與 方案一相比,它的硬件系統(tǒng)更簡單,但是功能卻更強大,它本身的模塊化設計 又使它的系統(tǒng)通用性遠遠超過方案一,在現(xiàn)在的條件下我能夠完成這

13、個方案, 所以最終選擇了這個方案。 3系統(tǒng)硬件設計系統(tǒng)硬件設計 3.1總體電路框圖 本設計以 stc89c52rc 單片機為主控核心設計的一個溫度控制系統(tǒng),低溫 時可控制加熱設備,高溫時控制風扇,超出設定最高溫度值時蜂鳴器發(fā)出聲響 報警。硬件方框圖如圖 3 所示: ds18b20 溫度檢測模 塊 模數(shù)轉換 鍵盤 stc89c52rc 單片機 數(shù)碼管顯示模 塊 蜂鳴器 繼電器 光耦可控硅 加熱設備 風扇 圖 3 總體硬件方框圖 3.2單元電路設計 3.2.1 單片機模塊 stc89c52rc 單片機為 40 引腳雙列直插芯片,有四個 i/o 口 p0,p1,p2,p3, mcs-51 單片機共有

14、 4 個 8 位的 i/o 口(p0、p1、p2、p3) ,每一條 i/o 線都能 獨立地作輸出或輸入。 單片機的最小系統(tǒng)如下圖所示,18 引腳和 19 引腳接時鐘電路,xtal1 接外部 晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,xtal2 接外部晶 振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第 9 引腳為復位 輸入端,接上電容,電阻及開關后夠上電復位電路,20 引腳為接地端,40 引腳為 電源端。31 引腳接電源端9-11,如圖 4 所示: 圖 4 單片機電路 3.2.2 溫度采集模塊 ds18b20 支持“一線總線” ,故可以大大提高系統(tǒng)的抗干擾性,適合于惡劣

15、 的環(huán)境溫度測量。全部傳感元件及轉換電路集成在形如一只三極管的集成電路 內(nèi),體積小。同時 ds18b20 的測量溫度范圍為-55 0c+125 0c,在-10+85 0c 范圍內(nèi),精度為+0.5 0c。同樣的,ds18b20 還可以程序設定 912 位的分辨率, 精度為+0.5 0c。同時設定的報警溫度存儲在 eeprom 中,掉電后依然保存。并 且支持 3v5v 的電壓范圍。便于系統(tǒng)設計。 ds18b20 的主要特點: 適應電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線 供電; 獨特的單線接口方式,ds18b20 在與微處理器連接時僅需要一條口線即可實 現(xiàn)微處理器與 ds

16、18b20 的雙向通訊; ds18b20 支持多點組網(wǎng)功能,多個 ds18b20 可以并聯(lián)在唯一的三線上,實現(xiàn) 組網(wǎng)多點測溫; ds18b20 在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形 如一只三極管的集成電路內(nèi); 溫范圍55125,在-10+85時精度為0.5; 可編程的分辨率為 912 位,對應的可分辨溫度分別為 0.5、0.25、 0.125和 0.0625,可實現(xiàn)高精度測溫; 在 9 位分辨率時最多在 93.75ms 內(nèi)把溫度轉換為數(shù)字,12 位分辨率時最多 在 750ms 內(nèi)把溫度值轉換為數(shù)字,速度更快; 測量結果直接輸出數(shù)字溫度信號,以一線總線串行傳送給 cpu,同

17、時可傳 送 crc 校驗碼,具有極強的抗干擾糾錯能力; 負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作 249-256。 對 ds18b20 的設計外部供電方式單點測溫。在這種外部電源供電方式下, ds18b20 工作電源由 vdd 引腳接入,因為由 vdd 接入電源不存在電源電流不足 的問題,可以保證轉換精度。不過要注意。在這種外部供電的方式下,ds18b20 的 gnd 腳不能懸空,否則不能轉換溫度,讀取的溫度總是 80 oc。ds18b20 的硬 件電路連接如下圖 6 所示: 圖 6 ds18b20 原理圖 3.2.3 數(shù)碼管顯示模塊 數(shù)碼管顯示模塊是一種專門用于顯示字母

18、、數(shù)字、版本號等的段顯示模塊。 它是由四位數(shù)碼管位組成的,數(shù)碼管右下角有一個小數(shù)點,這樣就起到了小數(shù) 的顯示,確保精確的顯示。本系統(tǒng)采用四位八段數(shù)碼管,我設置單片機驅動數(shù) 碼管采用三極管的電流控制方式,單片機輸出口電流,驅動三極管,達到控制 顯示的目的。連接原理圖如圖 7 所示: 圖 7 數(shù)碼管顯示數(shù)碼管 1602 原理圖 3.2.4 按鍵模塊 我在本設計中加入了 3 個按鍵,其中 s1 為模式鍵,按一次,選擇顯示當前 溫度模式,按第二次,選擇設置上下限溫度模式,按第三次,復位模式。s2、s3 為 設置鍵,用于設置上下限溫度值。如圖 8 所示: 圖 8 按鍵原理圖 3.2.5 系統(tǒng)電路結構 4

19、系統(tǒng)軟件設計系統(tǒng)軟件設計 4.1總體軟件框圖(如圖 9) 圖 9 總體軟件框圖 4.2各模塊程序設計 4.2.1 溫度數(shù)據(jù)采集: 根據(jù) ds18b20 的通訊協(xié)議,單片機控制 ds18b20 完成溫度轉換必須經(jīng)過三個 步驟:每一次讀寫之前都要對 ds18b20 進行復位操作,復位成功后發(fā)送一條 rom 指令,最后發(fā)送 ram 指令,這樣才能對 ds18b20 進行預定的操作,復位要 求單片機將數(shù)據(jù)線下拉 50 微秒,然后釋放,當 ds18b20 受到信號后等待 1660 微秒左右,然后發(fā)出 60240 微秒的存在低脈沖,主 cpu 收到此信號表 示復位成功。 指令約定代碼功能 讀 rom 33

20、h 讀 ds1820 溫度傳感器 rom 中的編碼(即 64 位地址) 符合 rom 55h 發(fā)出此命令之后,接著發(fā)出 64 位 rom 編碼,訪問單總 線上與該編碼相對應的 bs1820 使之作出響應,為下一 步對該 ds1820 的讀寫作準備。 搜索 rom ofoh 用于確定掛接在同一總線上 ds1820 的個數(shù)和識別 64 位 rom 地址。為操作各器件作好準備。 跳過 rom occh 忽略 64 位 rom 地址,直接向 ds1820 發(fā)溫度變換命令。 適用與單片工作。 告警搜索命 令 oech 執(zhí)行后只有溫度超過設定值上限或下限的片子才做出 響應。 指令約定代碼功能 溫度變換 4

21、4h 啟動 ds1820 進行溫度轉換 12 位轉換時最廠為 750ms(9 位為 93.75ms) 。結果存入內(nèi)部 9 字節(jié) ram 中。 讀暫存器 obeh 讀內(nèi)部 ram 中 9 字節(jié)的內(nèi)容。 寫暫存器 4eh 發(fā)出向內(nèi)部 ram 的 3、4 字節(jié)寫上、下限溫度數(shù)據(jù)命令, 緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。 復制暫存器 48h 將 ram 中第 3、4 字節(jié)的內(nèi)容復制到 eeprom 中 重調(diào) eeprom ob8h 將 eeprom 中內(nèi)容恢復到 ram 中的第 3、4 字節(jié)。 讀供電方式 ob4h 讀 ds1820 的供電模式。寄生東佃時 ds1820 發(fā)送“0” , 外界電源供電

22、 ds1820 發(fā)送“1” 。 下圖 12 是 ds18b20 的初始化和讀寫時序: 圖 12 ds18b20 讀寫時序 5系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試 5.1硬件調(diào)試 在本溫度控制電路的設計調(diào)試中遇到了很多的問題?;叵脒@些問題只要認真 多思考都是可以避免的,以下為主要的問題: (1) 開始調(diào)試時發(fā)現(xiàn)數(shù)碼管發(fā)熱很厲害,后來發(fā)現(xiàn)三極管的驅動電流太大了, 加上上拉電阻后問題就解決了。 (2) 雙向可控硅 bta12-600b 高壓部分電路,加 104 電容時,發(fā)生擊穿現(xiàn)象, 導致光耦控制部分電路癱瘓,原因是耐壓值不夠。解決的方法有兩種, 第一種是更換耐壓值更高的電容;由于該電容的作用是吸收可控硅元

23、件 的殘余電量,使得可控硅能夠正常導通截止,而根據(jù)使用的負載(交流 電機) ,去掉該電容后,該電路能夠正常的工作,所以第二種是在電路可 以運行的狀況下去掉該 104 電容相連的電路。我采取的是第二種方法。 5.2軟件調(diào)試 在軟件調(diào)試時也出現(xiàn)了一些問題,其中主要的問題有以下兩個方面: (1) 程序讀取溫度值時,出現(xiàn)的現(xiàn)象,造成風扇溫度在判斷時出現(xiàn)錯誤,使 風扇經(jīng)常性突快突慢變化,蜂鳴器也不斷的蜂鳴報警。解決的方法是在 讀取溫度判斷時加延時,并且多次判斷,防止跳變。 (2) 調(diào)節(jié)系統(tǒng)參數(shù)時,數(shù)碼管光標太快以致調(diào)節(jié)的時候觀察困難,原因是刷 新數(shù)碼管太快。解決的方法是在相應數(shù)據(jù)更該時,才開始刷新數(shù)碼管

24、內(nèi) 容。 6設計總結設計總結 在整個設計過程中,充分發(fā)揮人的主觀能動性,自主學習,學到了許多沒 學到的知識。較好的完成了作品,達到了預期的目的,完了最初的設想。但是 在做板時由于之前考慮的不夠周全,時鐘芯片沒有加到上拉電阻,由于是做好了 板把元件焊上去才發(fā)現(xiàn)的,只能在板的后面把 3 個上拉電阻焊上去,所以導致了 整塊板的看起來不是很美觀。通過這一次的經(jīng)驗我意識到了對電路的設計、布 局要先有一個好的構思,而且要認真仔細的檢查各個功能模塊的具體情況,確保 不遺留什么元件,才做出美觀、大方的電路板。程序編寫中,先研究各個功能模 塊的程序,包括時鐘模塊的程序,溫度模塊的程序,不懂的就通過查資料或者請教

25、 老師和同學來解決,然后再整理好這些程序,最終完成了能實現(xiàn)整個設計要求的 程序。在此次設計中,知道了做凡事要有一顆平常的心,不要想著走捷徑,也 練就了我們的耐心和細心,做什么事都要認真仔細,因為細節(jié)決定成敗??傊?這次設計使我的能力得到了全方位的提高。 參考文獻參考文獻 1沙占友 王彥明 孟志永. 單片機外圍電路設計m. 北京: 電子工業(yè)出版社,2003,1 2李建忠. 單片機原理及應用(第二版) m. 西安: 西安電子科技大學出版社,2008,2 3譚浩強.c 程序設計(第三版) m. (清華大學出版社)2006.11 4求是科技. 單片機典型模塊設計實例導航m. 北京: 人民郵電出版社,

26、2004 5華成英 童詩白模擬電子技術基礎(第四版) m. (高等教育出版社)2006.1 6繆家鼎 徐文娟 牟同升. 光電技術m. 浙江大學出版社,1996.3 7吳大正.電路基礎(第二版) (西安電子科技大學出版社)2000.7 8袁小平.電子技術綜合設計教程(第一版) (機械工業(yè)出版社)2008.4 9康華光, 鄒壽彬,電子技術基礎數(shù)字部分(第四版) 北京:高等教育出版社 1999 10杜膚生, 數(shù)字集成電路應用精粹,北京:人民郵電出版社 2001 11陳大欽,電子技術基礎實驗(第二版),北京:高等教育出版社 2000 12全國大學生電子設計競賽組委會,第五界全國大學生電子設計競賽獲獎作

27、品選編. 2001北京理工大學出版社, 2003 13中國計量出版社組編,新編電子電路大全, 北京:中國計量出版社, 2001.1 14葛汝明, 電子技術實驗與課程設計,山東: 山東大學出版社 2004 15周永金, 模擬電子技術及應用 ,西安:陜西國防學院電子教研室 2005 16吳瑋瑋, protel 99 簡明應用教程 ,西安:陜西國防學院電子教研室 2006 17任元,吳勇, 常用電子元器件簡明手冊 ,北京:工業(yè)出版社 2000 18程路,鄭毅,向先波,protel 99se 電路板設計與制作,人民郵電出版社2007 致謝致謝 這次的設計和論文是在各位老師的悉心指導下完成的。你們嚴肅的

28、科學態(tài)度,嚴謹?shù)?治學精神,精益求精的工作作風,深深地感染和激勵著我。從課題的選擇到項目的最終完 成,你們都始終給予我細心的指導和不懈的支持。在此謹向老師們致以誠摯的謝意和崇高 的敬意。 在此,我還要感謝在一起愉快的度過大學三年的 09 級電子班的同學和老師們,是你 們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。 最后,衷心感謝在百忙之中抽出寶貴時間對此論文進行評閱與審議的老師們。感謝學院給 我提供了一個展現(xiàn)自己的舞臺,給我一次難得煅煉的機會,使得我的動手能力和專業(yè)技能 都有了很大的提高。 附錄附錄 附錄 a:程序清單 /*ds18b20 temp controller*

29、 #include #include #include /_nop_();延時函數(shù)用 #define uchar unsigned char #define uint unsigned int sbit dq=p13; /溫度輸入口 sbit io=p15; /繼電器輸出口 sbit bp=p14; uint h; uint temp,set; uint count,flag; uchar set13=0; sbit k1=p10; sbit k2=p11; sbit k3=p12; /*溫度小數(shù)部分用查表法*/ uchar code ditab16= 0 x00,0 x01,0 x01,0

30、x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09; / uchar code dis_712=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff,0 xbf; /共陽 led 段碼表 0 1 2 3 4 5 6 7 8 9 不亮 - uchar code dis_812=0 x40,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78,0 x00,0 x10, 0 xff,0 x3f;

31、 /帶小數(shù)點共陰 led 段碼表 0 1 2 3 4 5 6 7 8 9 不亮 - uchar data temp_data2=0 x00,0 x00; /讀出溫度暫放 uchar data display5=0 x00,0 x00,0 x00,0 x00,0 x00; /顯示單元數(shù)據(jù),共 4 個數(shù)據(jù)和一個 運算暫用 /*11us 延時函數(shù)*/ void delay(uint t) for (;t0;t-); void delay2(uchar x) uchar a,b; for(a=0;a0;b-); /*顯示掃描函數(shù)*/ void scan() p0=dis_7display2;/數(shù)據(jù)顯示

32、 p2=0xfb; delay(250); p0=dis_8display1;/小數(shù)點顯示 p2=0xfd; delay(250); p0=dis_7display0;/數(shù)據(jù)顯示 p2=0xfe; delay(250); p0=0xff; p2=0xff; /*ds18b20 復位函數(shù)*/ void ow_reset(void) char presence=1; while(presence) while(presence) dq=1;_nop_();_nop_();/從高拉倒低 dq=0; delay(50); /550 us dq=1; delay(6); /66 us presence=

33、dq; /presence=0 復位成功,繼續(xù)下一步 delay(45); /延時 500 us presence=dq; dq=1; /拉高電平 /*ds18b20 寫命令函數(shù)*/ /向 1-wire 總線上寫 1 個字節(jié) void write_byte(uchar val) uchar i; for(i=8;i0;i-) dq=1;_nop_();_nop_(); /從高拉倒低 dq=0;_nop_();_nop_();_nop_();_nop_(); /5 us dq=val /最低位移出 delay(6); /66 us val=val/2; /右移 1 位 dq=1; delay(1

34、); / /*ds18b20 讀 1 字節(jié)函數(shù)*/ /從總線上取 1 個字節(jié) uchar read_byte(void) uchar i; uchar value=0; for(i=8;i0;i-) dq=1;_nop_();_nop_(); value=1; dq=0;_nop_();_nop_();_nop_();_nop_(); /4 us dq=1;_nop_();_nop_();_nop_();_nop_(); /4 us if(dq)value|=0 x80; delay(6); /66 us dq=1; return(value); / /*讀出溫度函數(shù)*/ / uint rea

35、d_temp() ow_reset(); /總線復位 delay(200); write_byte(0 xcc); /發(fā)命令 write_byte(0 x44); /發(fā)轉換命令 ow_reset(); delay(1); write_byte(0 xcc); /發(fā)命令 write_byte(0 xbe); temp_data0=read_byte(); /讀溫度值的第字節(jié) temp_data1=read_byte(); /讀溫度值的高字節(jié) temp=temp_data1; temp6348) / 溫度值正負判斷 tem=65536-tem;n=1; / 負溫度求補碼,標志位置 1 display4=tem / 取小數(shù)部分的值 display0=ditabdisplay4; / 存入小數(shù)部分顯示值 display4=tem4; / 取中間八位,即整數(shù)部分的值 display3=display4/100; / 取百位數(shù)據(jù)暫存 display2=display4/10%10; / 取十位數(shù)據(jù)暫存 dq=display4/10%10; display1=display4%10; / 取個位數(shù)據(jù)暫存 /*符號位顯示判斷*

溫馨提示

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

評論

0/150

提交評論