《單片機應用技術》課程設計報告基于單片機的數(shù)字溫度計設計_第1頁
《單片機應用技術》課程設計報告基于單片機的數(shù)字溫度計設計_第2頁
《單片機應用技術》課程設計報告基于單片機的數(shù)字溫度計設計_第3頁
《單片機應用技術》課程設計報告基于單片機的數(shù)字溫度計設計_第4頁
《單片機應用技術》課程設計報告基于單片機的數(shù)字溫度計設計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學號: 070911100 1 2009 - 2010 學年 第 2 學期 單片機應用技術單片機應用技術 課課 程程 設設 計計 報報 告告 題題 目:目:基于單片機的數(shù)字溫度計設計 專專 業(yè):業(yè): 電氣自動化電氣自動化 班班 級:級: 0707 電氣自動化本電氣自動化本 姓姓 名:名: 指導教師:指導教師: 成成 績:績: 電氣工程系 2010 年 5 月 25 日 課課 程程 設設 計計 任任 務務 書書 學生班級: 07 電氣自動化本 學生姓名: 學號:0709111001 設計名稱: 基于單片機的數(shù)字溫度計設計 起止日期: 2010 年 5 月 242010 年 5 月 28 指導教師

2、: 臧老師 設計要求: 本設計主要是介紹了單片機控制下的溫度檢測系統(tǒng),詳細介紹了其硬 件 和軟件設計,并對其各功能模塊做了詳細介紹,其主要功能和指標如下: 利用溫度傳感器(ds18b20)測量某一點環(huán)境溫度 測量范圍為-5599,精度為0.5 用液晶進行實際溫度值顯示 能夠根據(jù)需要方便設定上下限報警溫度 目目 錄錄 一、一、引言引言 5 5 二、設計內容及性能指標二、設計內容及性能指標5 5 三、系統(tǒng)方案論證三、系統(tǒng)方案論證 5 5 (一)、方案.6 四、系統(tǒng)器件選擇四、系統(tǒng)器件選擇7 7 (一)、 單片機的選擇 .7 1、 89s51 引腳功能介紹.8 (二)、溫度傳感器的選擇.10 1、

3、ds18b20 簡單介紹:.10 2、 ds18b20 使用中的注意事項.12 3、 ds18b20 內部結構.13 4、ds18b20 測溫原理.17 5、提高 ds1820 測溫精度的途徑 .18 (三)、顯示及報警模塊器件選擇.20 五、硬件設計電路五、硬件設計電路2121 (一)、主控制器.22 (二)、顯示電路.22 (三)、 溫度檢測電路 .22 (四)、溫度報警電路.29 六、六、 軟件設計軟件設計 (一)、 概述 .30 (二)、主程序模塊.30 (三)、各模塊流程設計.31 1、 溫度檢測流程 .31 2、報警模塊流程 .32 3、 中斷設定流程 .33 七、自我評價七、自我

4、評價3535 八、致謝八、致謝 3636 參考文獻參考文獻 3636 摘要:摘要:隨著時代的進步和發(fā)展,單片機技術已經普及到我們生活、工作、科 研、各個領域,已經成為一種比較成熟的技術, 本文主要介紹了一個基于 89s51 單片機的測溫系統(tǒng),詳細描述了利用數(shù)字溫度傳感器 ds18b20 開發(fā)測溫 系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng) 流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統(tǒng)可以方便的實 現(xiàn)實現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設定上下限報警溫度,它使用起來 相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于 我們日常生活和工、農

5、業(yè)生產中的溫度測量,也可以當作溫度處理模塊嵌入其 它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。ds18b20 與 at89c51 結合實現(xiàn)最簡溫 度檢測系統(tǒng),該系統(tǒng)結構簡單,抗干擾能力強,適合于惡劣環(huán)境下進行現(xiàn)場溫 度測量,有廣泛的應用前景。 一、引言一、引言 隨著科技的不斷發(fā)展,現(xiàn)代社會對各種信息參數(shù)的準確度和精確度的 要求都有了幾何級的增長,而如何準確而又迅速的獲得這些參數(shù)就需要受 制于現(xiàn)代信息基礎的發(fā)展水平。在三大信息信息采集(即傳感器技術)、信息 傳輸(通信技術)和信息處理(計算機技術)中,傳感器屬于信息技術的前沿尖 端產品,尤其是溫度傳感器技術,在我國各領域已經引用的非常廣泛,可 以說是滲透

6、到社會的每一個領域,人民的生活與環(huán)境的溫度息息相關,在 工業(yè)生產過程中需要實時測量溫度,在農業(yè)生產中也離不開溫度的測量, 因此研究溫度的測量方法和裝置具有重要的意義。 測量溫度的關鍵是溫度傳感器,溫度傳感器的發(fā)展經歷了三個發(fā)展階 段: 傳統(tǒng)的分立式溫度傳感器 模擬集成溫度傳感器 智能集成溫度傳感器。 目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀90年代中期問 世的,它是微電子技術、計算機技術和自動測試技術(ate)的結晶,特點是 能輸出溫度數(shù)據(jù)及相關的溫度控制量,適配各種微控制器(mcu)。社會的 發(fā)展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片 機的基礎上從模擬式向

7、數(shù)字式,從集成化向智能化、網(wǎng)絡化的方向飛速發(fā) 展,并朝著高精度、多功能、總線標準化、高可靠性及安全性、開發(fā)虛擬 傳感器和網(wǎng)絡傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展,本文 將介紹智能集成溫度傳感器ds18b20的結構特征及控制方法,并對以此傳 感器,89s51單片機為控制器構成的數(shù)字溫度測量裝置的工作原理及程序設 計作了詳細的介紹。與傳統(tǒng)的溫度計相比,其具有讀數(shù)方便,測溫范圍廣, 測溫準確,輸出溫度采用數(shù)字顯示,主要用于對測溫要求比較準確的場所, 或科研實驗室使用。該設計控制器使用atmel公司的at89s51單片機,測 溫傳感器使用dallas公司ds18b20,用液晶來實現(xiàn)溫度顯示。

8、 二、設計內容及性能指標二、設計內容及性能指標 本設計主要是介紹了單片機控制下的溫度檢測系統(tǒng),詳細介紹了其硬 件和軟件設計,并對其各功能模塊做了詳細介紹,其主要功能和指標如下: 利用溫度傳感器(ds18b20)測量某一點環(huán)境溫度 測量范圍為-5599,精度為0.5 用液晶進行實際溫度值顯示 能夠根據(jù)需要方便設定上下限報警溫度 三、系統(tǒng)方案論證三、系統(tǒng)方案論證 該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,實現(xiàn)的方法有很 多種,下面將列出一種在日常生活中和工農業(yè)生產中經常用到的實現(xiàn)方案。 (一)、方案(一)、方案 采用數(shù)字溫度芯片ds18b20 測量溫度,輸出信號全數(shù)字化。便于單片 機處理及控制

9、,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化 學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度 時,最大線形偏差小于1 攝氏度。ds18b20 的最大特點之一采用了單總線 的數(shù)據(jù)傳輸,由數(shù)字溫度計ds18b20和微控制器at89s51構成的溫度測量裝 置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結構 就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通 過編程實現(xiàn)各種各樣的算術算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單, 安裝方便。既可以單獨對多ds18b20 控制工作,還可以與pc 機通信上傳數(shù)據(jù),另外at89s51 在工業(yè)控

10、制 上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。 該系統(tǒng)利用at89s51芯片控制溫度傳感器ds18b20進行實時溫度檢測并 顯示,能夠實現(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設定上下限報警溫度。 該系統(tǒng)擴展性非常強,它可以在設計中加入時鐘芯片ds1302以獲取時間數(shù) 據(jù),在數(shù)據(jù)處理同時顯示時間,并可以利用at24c16芯片作為存儲器件, 以此來對某些時間點的溫度數(shù)據(jù)進行存儲,利用鍵盤來進行調時和溫度查 詢,獲得的數(shù)據(jù)可以通過max232芯片與計算機的rs232接口進行串口通信, 方便的采集和整理時間溫度數(shù)據(jù)。 系統(tǒng)框圖如圖 3.3所示 圖 3.3 ds18b20溫度測溫系統(tǒng)框圖

11、 四、系統(tǒng)器件選擇四、系統(tǒng)器件選擇 (一)、(一)、 單片機的選擇單片機的選擇 對于單片機的選擇,可以考慮使用8031與8051系列,由于8031沒有內 部ram,系統(tǒng)又需要大量內存存儲數(shù)據(jù),因而不適用。at89s51 是美國 atmel 公司生產的低功耗,高性能 cmos8 位單片機,片內含 4kbytes 的可編程的 flash 只讀程序存儲器,兼容標準 8051 指令系統(tǒng)及引腳。它集 flash 程序存儲器既可在線編程(isp),也可用傳統(tǒng)方法進行編程,所以 低價位 at89s51單片機可為提供許多高性價比的應用場合,可靈活應用于 各種控制領域,對于簡單的測溫系統(tǒng)已經足夠。單片機at89

12、s51 具有低電 壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計 需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。主要特 性如下 與mcs-51 兼容 4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年 全靜態(tài)工作:0hz-24hz 三級程序存儲器鎖定 128*8位內部ram 32可編程i/o線 兩個16位定時器/計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內振蕩器和時鐘電路 圖 4.1 at89s51單片機引腳圖 1 1、89s5189s51 引腳功能介紹引腳功能介紹 at89s51 單片機為40 引腳雙列直插式封裝。 其引

13、腳排列和邏輯符號如圖4.1 所示。 各引腳功能簡單介紹如下: vcc:供電電壓 gnd:接地 p0口:p0口為一個8位漏級開路雙向i/o口,每個管腳可吸收8ttl門 電流。當p1口的管腳寫“1”時,被定義為高阻輸入。p0能夠 用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八 位。在flash編程時,p0口作為原碼輸入口,當flash進行 校驗時,p0輸出原碼,此時p0外部電位必須被拉高。 p1口:p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能 接收輸出4ttl門電流。p1口管腳寫入“1”后,電位被內部上 拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電 流,這是由

14、于內部上拉的緣故。在flash編程和校驗時,p1 口作為第八位地址接收。 p2口:p2口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收, 輸出4個ttl門電流,當p2口被寫“1”時,其管腳電位被內部 上拉電阻拉高,且作為輸入。作為輸入時,p2口的管腳電位被 外部拉低,將輸出電流,這是由于內部上拉的緣故。p2口當用 于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2 口輸出地址的高八位。在給出地址“1”時,它利用內部上拉 的優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出 其特殊功能寄存器的內容。p2口在flash編程和校驗時接收 高八位地址信號和控制信號。 p3口:p3

15、口管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個 ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平, 并用作輸入。作為輸入時,由于外部下拉為低電平,p3口將輸 出電流(ill),也是由于上拉的緣故。p3口也可作為at89c51 的一些特殊功能口: p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 int0(外部中斷0) p3.3 int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 wr (外部數(shù)據(jù)存儲器寫選通) p3.7 rd (外部數(shù)據(jù)存儲器讀選通) 同時p3口同時為閃爍編程和編程校驗接收一些控制

16、信號。 rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期 的高電平時間。 ale / prog :當訪問外部存儲器時,地址鎖存允許的輸出電平用于 鎖存地址的地位字節(jié)。在flash編程期間,此引腳用 于輸入編程脈沖。在平時,ale端以不變的頻率周期 輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它 可用作對外部輸出的脈沖或用于定時目的。然而要注 意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個 ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置 0。此時, ale只有在執(zhí)行movx,movc指令時 ale才起作用。另外,該引腳被略微拉高。如果微處 理器在外部執(zhí)行狀態(tài)ale禁止

17、,置位無效。 psen:外部程序存儲器的選通信號。在由外部程序存儲器取址期間, 每個機器周期psen兩次有效。但在訪問外部數(shù)據(jù)存儲器時, 這兩次有效的psen信號將不出現(xiàn)。 ea/vpp:當ea保持低電平時,訪問外部rom;注意加密方式1時, ea將內部鎖定為reset;當ea端保持高電平時,訪問內 部rom。在flash編程期間,此引腳也用于施加12v編程 電源(vpp)。 xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 (二)、溫度傳感器的選擇(二)、溫度傳感器的選擇 由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉換成對應 的溫度,需要

18、比較多的外部元件支持,且硬件電路復雜,制作成本相對較 高。這里采用dallas公司的數(shù)字溫度傳感器ds18b20作為測溫元件。 1 1、ds18b20ds18b20 簡單介紹簡單介紹: : dallas 最新單線數(shù)字溫度傳感器ds18b20是一種新型的“一線器件” ,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。dallas 半導體公司的數(shù)字化溫度傳感器ds18b20是世界上第一片支持“一線總線” 接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數(shù)以及用戶設定 的報警溫度存儲在eeprom 中,掉電后依

19、然保存。被測溫度用符號擴展的 16位數(shù)字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄 生電源方式產生;多個ds18b20可以并聯(lián)到3 根或2 根線上,cpu只需一 根端口線就能與諸多ds18b20 通信,占用微處理器的端口較少,可節(jié)省大 量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在 一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。 ds18b20 的性能特點如下: 獨特的單線接口方式,ds18b20在與微處理器連接時僅需要一條口線 即可實現(xiàn)微處理器與ds18b20的雙向通訊 ds18b20支持多點組網(wǎng)功能,多個ds18b20可以并聯(lián)在唯一的三線 上,實現(xiàn)組網(wǎng)多

20、點測溫 ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集 成在形如一只三極管的集成電路內 適應電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由 數(shù)據(jù)線供電 溫范圍55125,在-10+85時精度為0.5 零待機功耗 可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、 0.125和0.0625,可實現(xiàn)高精度測溫 在9位分辨率時最多在93.75ms內把溫度轉換為數(shù)字,12位分辨率時最 多在750ms內把溫度值轉換為數(shù)字,速度更快 用戶可定義報警設置 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器 件 測量結果直接輸出數(shù)字溫度信號,以一線總線

21、串行傳送給cpu,同 時可傳送crc校驗碼,具有極強的抗干擾糾錯能力 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能 正常工作 以上特點使ds18b20非常適用與多點、遠距離溫度檢測系統(tǒng)。 ds18b20內部結構主要由四部分組成:64位光刻rom、溫度傳感器、 非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列、各 種封裝形式如圖 4.2 所示,dq 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引 腳。當被用著在寄生電源下,也可以向器件提供電源;gnd為地信號; vdd為可選擇的vdd引腳。當工作于寄生電源時,此引腳必須接地。其電 路圖 4.3所示.。 圖 4.2 外部

22、封裝形式 圖4.3 傳感器電路圖 2 2、ds18b20ds18b20 使用中的注意事項使用中的注意事項 ds18b20 雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線 少等優(yōu)點,但在實際應用中也應注意以下幾方面的問題: ds18b20 從測溫結束到將溫度值轉換成數(shù)字量需要一定的轉換時間, 這是必須保證的,不然會出現(xiàn)轉換錯誤的現(xiàn)象,使溫度輸出總是顯示 85。 在實際使用中發(fā)現(xiàn),應使電源電壓保持在5v 左右,若電源電壓過低, 會使所測得的溫度精度降低。 較小的硬件開銷需要相對復雜的軟件進行補償,由于ds1820與微處 理器間采用串行數(shù)據(jù)傳送,因此,在對ds1820進行讀寫編程時,必 須嚴格

23、的保證讀寫時序,否則將無法讀取測溫結果。在使用pl/m、c 等高級語言進行系統(tǒng)程序設計時,對ds1820操作部分最好采用匯編 語言實現(xiàn)。 在ds18b20的有關資料中均未提及單總線上所掛ds18b20 數(shù)量問題, 容易使人誤認為可以掛任意多個ds18b20,在實際應用中并非如此, 當單總線上所掛ds18b20 超過8 個時,就需要解決微處理器的總線 驅動問題,這一點在進行多點測溫系統(tǒng)設計時要加以注意。 在ds18b20測溫程序設計中,向ds18b20 發(fā)出溫度轉換命令后,程 序總要等待ds18b20的返回信號,一旦某個ds18b20 接觸不好或斷 線,當程序讀該ds18b20 時,將沒有返回信

24、號,程序進入死循環(huán), 這一點在進行ds18b20硬件連接和軟件設計時也要給予一定的重視。 3 3、ds18b20ds18b20 內部結構內部結構 圖為 ds1820 的內部框圖,它主要包括寄生電源、溫度傳感器、64 位激 光 rom 單線接口、存放中間數(shù)據(jù)的高速暫存器(內含便箋式 ram) ,用于存 儲用戶設定的溫度上下限值的 th 和 tl 觸發(fā)器存儲與控制邏輯、8 位循環(huán)冗 余校驗碼(crc)發(fā)生器等七部分。 ds18b20采用腳pr35 封裝或腳soic封裝,其內部結構框圖如 圖 4.4所示 圖 4.4 ds18b20內部結構框圖 64 b 閃速 rom 的結構如下: 開始位是產品類型的

25、編號,接著是每個器件的惟一的序號,共有48 位,最后位是前面56 位的crc 檢驗碼,這也是多個ds18b20 可以采用 一線進行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報 警上下限。主機操作rom的命令有五種,如表所列 指 令說 明 讀rom(33h) 讀ds1820的序列號 匹配rom(55h) 繼讀完64位序列號的一個命令,用 于多個ds1820時定位 跳過rom(cch) 此命令執(zhí)行后的存儲器操作將針對 在線的所有ds1820 搜rom(f0h) 識別總線上各器件的編碼,為操作 各器件作好準備 報警搜索(ech) 僅溫度越限的器件對此命令作出響 應 ds18b20 溫度傳感器的內

26、部存儲器還包括一個高速暫存和一個 非易失性的可電擦除的eeram。高速暫存ram 的結構為字節(jié)的存儲器, 結構如圖 4.5所示。 圖 4.5 高速暫存ram結構圖 前個字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝, 是易失的,每次上電復位時被刷新。第個字節(jié),為配置寄存器,它的內 容用于確定溫度值的數(shù)字轉換分辨率。ds18b20 工作時寄存器中的分辨率 轉換為相應精度的溫度數(shù)值。 溫度低位溫度高位thtl配置保留保留保留8 位 crc lsb msb 當 ds18b20 接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫 度值就以 16 位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第 1,2

27、 字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在 后,數(shù)據(jù)格式以 0.062 5 /lsb 形式表示。溫度值格式如下: 這是 12 位轉化后得到的 12 位數(shù)據(jù),存儲在 18b20 的兩個 8 比特的 ram 中,二進制中的前面 5 位是符號位,如果測得的溫度大于 0,這 5 位 為 0,只要將測到的數(shù)值乘于 0.0625 即可得到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到實際溫 度。圖中,s 表示位。對應的溫度計算:當符號位 s=0 時,表示測得的溫 度植為正值,直接將二進制位轉換為十進制;當 s=1 時,表示測得的溫

28、度 植為負值,先將補碼變換為原碼,再計算十進制值。例如+125的數(shù)字輸 出為 07d0h,+25.0625的數(shù)字輸出為 0191h,-25.0625的數(shù)字輸出為 ff6fh,-55的數(shù)字輸出為 fc90h。 ds18b20 溫度傳感器主要用于對溫度進行測量,數(shù)據(jù)可用 16 位符號擴 展的二進制補碼讀數(shù)形式提供,并以 0.0625lsb 形式表示。表 2 是部 分溫度值對應的二進制溫度表示數(shù)據(jù)。 表 2 部分溫度值 ds18b20 完成溫度轉換后,就把測得的溫度值與 ram 中的 th、tl 字節(jié)內容作比較,若 tth 或 ttl,則將該器件內的告警標志置位,并對 主機發(fā)出的告警搜索命令作出響應

29、。因此,可用多只 ds18b20 同時測量溫 度并進行告警搜索。 在 64 位 rom 的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(crc)。主 機根據(jù) rom 的前 56 位來計算 crc 值,并和存入 ds18b20 中的 crc 值 做比較,以判斷主機收到的 rom 數(shù) 據(jù)是否正確。 4 4、ds18b20ds18b20 測溫原理測溫原理 ds18b20 的測溫原理如圖 2 所示,圖中低溫度系數(shù)晶振的振蕩頻率受 溫度的影響很小用于產生固定頻率的脈沖信號送給減法計數(shù)器 1,高溫度系 數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數(shù)器 2 的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時

30、,ds18b20 就對低溫 度系數(shù)振蕩器產生的時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開 啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應的基 數(shù)分別置入減法計數(shù)器 1 和溫度寄存器中,減法計數(shù)器 1 和溫度寄存器被 預置在-55 所對應的一個基數(shù)值。 減法計數(shù)器 1 對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當減 法計數(shù)器 1 的預置值減到 0 時溫度寄存器的值將加 1,減法計數(shù)器 1 的預 置將重新被裝入,減法計數(shù)器 1 重新開始對低溫度系數(shù)晶振產生的脈沖信號 進行計數(shù),如此循環(huán)直到減法計數(shù)器 2 計數(shù)到 0 時,停止溫度寄存器值的累 加,此時溫度寄存器中的數(shù)值即為

31、所測溫圖 2 中的斜率累加器用于補償和 修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預置值,只要計 數(shù)門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就 是 ds18b20 的測溫原理。 另外,由于 ds18b20 單線通信功能是分時完成的,他有嚴格的時隙概 念,因此讀寫時 序很重要。系統(tǒng)對 ds18b20 的各種操作必須按協(xié)議進 行。操作協(xié)議為:初始化 ds18b20 (發(fā)復位脈沖)發(fā) rom 功能命令 發(fā)存儲器操作命令處理數(shù)據(jù)。 圖(2) ds18b20 測溫原理圖 在正常測溫情況下,ds1820 的測溫分辨力為 0.5,可采用下述方法獲 得高分辨率的溫度測量結果:首先用

32、 ds1820 提供的讀暫存器指令(beh) 讀出以 0.5為分辨率的溫度測量結果,然后切去測量結果中的最低有效位 (lsb) ,得到所測實際溫度的整數(shù)部分 tz,然后再用 beh 指令取計數(shù)器 1 的計數(shù)剩余值 cs 和每度計數(shù)值 cd??紤]到 ds1820 測量溫度的整數(shù)部分以 0.25、0.75為進位界限的關系,實際溫度 ts 可用下式計算: ts=(tz-0.25)+(cd-cs)/cd 5 5、提高、提高 ds1820ds1820 測溫精度的途徑測溫精度的途徑 (1)、ds1820 高精度測溫的理論依據(jù) ds1820 正常使用時的測溫分辨率為 0.5,這對于水輪發(fā)電機組軸瓦 溫度監(jiān)測

33、來講略顯不足,在對 ds1820 測溫原理詳細分析的基礎上,我們采 取直接讀取 ds1820 內部暫存寄存器的方法,將 ds1820 的測溫分辨率提高 到 0.10.01 ds1820 內部暫存寄存器的分布如表 1 所示,其中第 7 字節(jié)存放的是當 溫度寄存器停止增值時計數(shù)器 1 的計數(shù)剩余值,第 8 字節(jié)存放的是每度所 對應的計數(shù)值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測 量結果。首先用 ds1820 提供的讀暫存寄存器指令(beh)讀出以 0.5為分辨 率的溫度測量結果,然后切去測量結果中的最低有效位(lsb),得到所測實 際溫度整數(shù)部分 t 整數(shù),然后再用 beh 指令讀取計

34、數(shù)器 1 的計數(shù)剩余值 m 剩余和每度計數(shù)值 m 每度,考慮到 ds1820 測量溫度的整數(shù)部分以 0.25、0.75為進位界限的關系,實際溫度 t 實際可用下式計算得到:t 實際=(t 整數(shù)0.25)+(m 每度m 剩余)/m 每度。 表 1 ds18b20 暫存寄存器分布 該字節(jié)各位的定義如下: tm r1 r0 1 1 1 1 1 低 5 位一直都是 1,tm 是測試模式位,用于設置 ds18b20 在工作模式還是在測 試模式。在 ds18b20 出廠時該位被設置為 0,用戶不要去改動,r1 和 r0 決定溫度轉 換的精度位數(shù),即是來設置分辨率,如表 1 所示(ds18b20 出廠時被設

35、置為 12 位)。 r1r0 分辨率溫度最大轉換時/mm 00 9 位 93.75 01 10 位 187.75 10 11 位 275.00 11 12 位 750.00 表 1 r1 和 r2 模式表 由表 1 可見,設定的分辨率越高,所需要的溫度數(shù)據(jù)轉換時間就越長。 因此,在實際應用中要在分辨率和轉換時間權衡考慮。高速暫存存儲器除 了配置寄存器外,還有其他 8 個字節(jié)組成,其分配如下所示。其中溫度信 息(第 1,2 字節(jié)) 、th和 tl值第 3,4 字節(jié)、第 68 字節(jié)未用,表現(xiàn)為全 邏輯 1;第 9 字節(jié)讀出的是前面所有 8 個字節(jié)的 crc 碼,可用來保證通信 正確。 根據(jù) ds1

36、8b20 的通訊協(xié)議,主機控制 ds18b20 完成溫度轉換必須經過 三個步驟:每一次讀寫之前 都要對 ds18b20 進行復位,復位成功后 發(fā)送一條 rom 指令,最后發(fā)送 ram 指令,這樣才能對 ds18b20 進行預定的 操作。復位要求主 cpu 將數(shù)據(jù)線下拉 500 微秒,然后釋放,ds18b20 收到 信號后等待 1660 微秒左右,后發(fā)出 60240 微秒的存在低脈沖,主 cpu 收到此信號表示復位成功。 (2)、 測量數(shù)據(jù)比較 表 2 為采用直接讀取測溫結果方法和采用計算方法得到的測溫數(shù)據(jù)比 較,通過比較可以看出,計算方法在 ds1820 測溫中不僅是可行的,也可以 大大的提高

37、 ds1820 的測溫分辨率。 表 2 ds18b20 直度測溫結果與計算測溫結果數(shù)據(jù)比較 (三)、顯示及報警模塊器件選擇(三)、顯示及報警模塊器件選擇 在本設計中溫度測量范圍為0125,精度為0.5,因此只需 要液晶就可以完成相關的顯示功能,報警器可以用有源蜂鳴器配合三極管 來代替。 五、硬件設計電路五、硬件設計電路 溫度計電路設計原理圖如圖5.1所示,控制器使用單片機at89c2051,溫度 計傳感器使用ds18b20,用液晶實現(xiàn)溫度顯示。 本溫度計大體分三個工作過程。首先,由ds18820溫度傳感器芯片測量 當前的溫度,并將結果送入單片機。然后,通過89c205i單片機芯片對送來 的測量

38、溫度讀數(shù)進行計算和轉換,井將此結果送入液晶顯示模塊。最后, smc1602a芯片將送來的值顯示于顯示屏上。 由圖1可看到,本電路主要由 dsl8820溫度傳感器芯片、smcl602a液晶顯示模塊芯片和89c2051單片機芯 片組成。其中,dsi8b20溫度傳感器芯片采用“一線制”與單片機相連,它獨 立地完成溫度測量以及將溫度測量結果送到單片機的工作。 圖5.1 溫度計電路設計原理圖 (一)、主控制器(一)、主控制器 單片機at89c2051具有低電壓供電和小體積等特點,兩個端口剛好滿 足電路系統(tǒng)的設計需要,很合適攜手特式產品的使用。主機控制ds18b20 完成溫度轉換必須經過三個步驟:初始化、

39、rom操作指令、存儲器操作指 令。必須先啟動ds18b20開始轉換,再讀出溫度轉換值。 (二)、顯示電路(二)、顯示電路 顯示電路采用smci602a液晶顯示模塊芯片該芯片可顯示162個字符, 比以前的七段數(shù)碼管led顯示器在顯示字符的數(shù)量上要多得多。另外,由 于smcl602芯片編程比較簡單,界面直觀,因此更加易于使用者操作和觀 測。smcl602a芯片的接口信號說明如表1所列。 表1 smcl602a芯片的接口信號說明 (三)、(三)、 溫度檢測電路溫度檢測電路 ds18b20 最大的特點是單總線數(shù)據(jù)傳輸方式,ds18b20 的數(shù)據(jù)i/o 均 由同一條線來完成。ds18b20 的電源供電方

40、式有2 種: 外部供電方式和寄 生電源方式。工作于寄生電源方式時, vdd 和gnd 均接地, 他在需要遠程 溫度探測和空間受限的場合特別有用, 原理是當1 w ire 總線的信號線dq 為高電平時, 竊取信號能量給ds18b20 供電, 同時一部分能量給內部電容 充電, 當dq為低電平時釋放能量為ds18b20 供電。但寄生電源方式需要強 上拉電路, 軟件控制變得復雜(特別是在完成溫度轉換和拷貝數(shù)據(jù)到 e2prom 時) , 同時芯片的性能也有所降低。因此, 在條件允許的場合, 盡 量采用外供電方式。無論是內部寄生電源還是外部供電,i/o口線要接5k 左右的上拉電。在這里采用前者方式供電。d

41、s18b20與芯片連接電路如圖 5.2所示: 圖 5.2 ds18b20與單片機的連接 外部電源供電方式是ds18b20最佳的工作方式,工作穩(wěn)定可靠,抗干 擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系 統(tǒng)。站長推薦大家在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式 只多接一根vcc引線。在外接電源方式下,可以充分發(fā)揮ds18b20寬電源 電壓范圍的優(yōu)點,即使電源電壓vcc 降到3v 時,依然能夠保證溫度量精 度。 由于ds18b20 只有一根數(shù)據(jù)線,因此它和主機(單片機)通信是需要 串行通信,而at89s51 有兩個串行端口,所以可以不用軟件來模擬實現(xiàn)。 經過單線接口訪問

42、dc18b20 必須遵循如下協(xié)議:初始化、rom 操作命令、 存儲器操作命令和控制操作。要使傳感器工作,一切處理均嚴格按照時序。 主機發(fā)送(tx)-復位脈沖(最短為480s 的低電平信號)。接著主 機便釋放此線并進入接收方式(rx)??偩€經過4.7k的上拉電阻被拉至高 電平狀態(tài)。在檢測到i/o 引腳上的上升沿之后,ds18b20 等待1560s, 并且接著發(fā)送脈沖(60240s 的低電平信號)。然后以存在復位脈沖表 示ds18b20 已經準備好發(fā)送或接收,然后給出正確的rom 命令和存儲操 作命令的數(shù)據(jù)。ds18b20 通過使用時間片來讀出和寫入數(shù)據(jù),時間片用于 處理數(shù)據(jù)位和進行何種指定操作的

43、命令。它有寫時間片和讀時間片兩種: 寫時間片:當主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時,產生 寫時間片。有兩種類型的寫時間片:寫1 時間片和寫0 時間片。所 有時間片必須有60 微秒的持續(xù)期,在各寫周期之間必須有最短為1 微秒的恢復時間. 讀時間片:從ds18b20 讀數(shù)據(jù)時,使用讀時間片。當主機把數(shù)據(jù) 線從邏輯高電平拉至邏輯低電平時產生讀時間片。數(shù)據(jù)線在邏輯低 電平必須保持至少1 微秒;來自ds18b20 的輸出數(shù)據(jù)在時間下降 沿之后的15 微秒內有效。為了讀出從讀時間片開始算起15微秒的 狀態(tài),主機必須停止把引腳驅動拉至低電平。在時間片結束時,i/o 引腳經過外部的上_鱯_9l_%拉電阻

44、拉回高電平,所有讀時間片 的最短持續(xù)期為60 微秒,包括兩個讀周期間至少1s 的恢復時間。 一旦主機檢測到ds18b20 的存在,它便可以發(fā)送一個器件rom 操作 命令。所有rom 操作命令均為8位長。 所有的串行通訊,讀寫每一個bit 位數(shù)據(jù)都必須嚴格遵守器件的時序邏 輯來編程,同時還必須遵守總線命令序列,對單總線的ds18b20 芯片來說, 訪問每個器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行rom 命令; 最后就是執(zhí)行功能命令(rom 命令和功能命令后面以表格形式給出)。如果 出現(xiàn)序列混亂,則單總線器件不會響應主機。當然,搜索rom命令和報警 搜索命令,在執(zhí)行兩者中任何一條命令之后,

45、要返回初始化。 基于單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主 機發(fā)出的復位脈沖和從機響應的應答脈沖組成。應答脈沖使主機知道,總 線上有從機,且準備就緒。 在主機檢測到應答脈沖后,就可以發(fā)出rom 命令。這些命令與各個從 機設備的唯一64 位rom 代碼相關。在主機發(fā)出rom命令,以訪問某個指 定的ds18b20,接著就可以發(fā)出ds18b20支持的某個功能命令。這些命令 允許主機寫入或讀出ds18b20便箋式ram、啟動溫度轉換。軟件實現(xiàn) ds18b20的工作嚴格遵守單總線協(xié)議: (1)主機首先發(fā)出一個復位脈沖,信號線上的ds18b20 器件被復位。 (2)接著主機發(fā)送rom命令

46、,程序開始讀取單個在線的芯片rom編碼并 保存在單片機數(shù)據(jù)存儲器中,把用到的ds18b20 的rom 編碼離線 讀出,最后用一個二維數(shù)組保存rom 編碼,數(shù)據(jù)保存在x25043中。 (3)系統(tǒng)工作時,把讀取了編碼的ds18b20 掛在總線上。發(fā)溫度轉換命 令,再總線復位。 (4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度 讀取命令就可以獲得對應的度值了。 在主機初始化過程,主機通過拉低單總線至少480us,來產生復位脈沖。 接著,主機釋放總線,并進入接收模式。當總線被釋放后,上拉電阻將單 總線拉高。在單總線器件檢測到上升沿后,延時1560us,接著通過拉低 總線60240us,

47、以產生應答脈沖。 寫時序均起始于主機拉低總線,產生寫1 時序的方式:主機在拉低總 線后,接著必須在15us之內釋放總線。產生寫0 時序的方式:在主機拉低 總線后,只需在整個時序期間保持低電平即可(至少60us)。在寫字節(jié)程序中 的寫一個bit 位的時候,沒有按照通常的分別寫0時序和寫1 時序,而是把 兩者結合起來,當主機拉低總線后在15us 之內將要寫的位c 給do:如果c 是高電平滿足15us 內釋放總線的要求,如果c是低電平,則doc這條語句 仍然是把總線拉在低電平,最后都通過延時58us 完成一個寫時序(寫時序0 或寫時序1)過程。 寫時間時序:當主機把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時

48、候,寫 時間隙開始。有兩種寫時間隙,寫1 時間隙和寫0 時間隙。所有寫時間隙 必須最少持續(xù)60s,包括兩個寫周期至少1s 的恢復時間。i/o線電平變 低后,ds18b20 在一個15s 到60s 的窗口內對i/o 線采樣。如果線上 事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙, 必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15s 內允許數(shù) 據(jù)線拉到高電平。主機要生成一個寫0 時間隙,必須把數(shù)據(jù)線拉到低電平 并保存60s。 每個讀時隙都由主機發(fā)起,至少拉低總線1us,在主機發(fā)起讀時序之后, 單總線器件才開始在總線上發(fā)送0 或1。所有讀時序至少需要60us。 源程序:

49、假設要寫1 b 的數(shù)據(jù), 且數(shù)據(jù)放在a 中。 setbtem pdn nop nop writeds1820lop: clrtem pd in mov r6, # 08h ; 延時15 ls djn zr6, rrca ; 將要寫數(shù) 據(jù)存入c mov tem pd in , c ; 將數(shù)據(jù)寫 入總線 mov r6, # 14h ; 延時40 ls djn zr6, setbtem pd in ; 釋放總線 djn zr7,wr iteds1820lo p ; 寫8 位 ret 讀時間時序:當從ds18b20 讀數(shù)據(jù)時,主機生成讀時間隙。當主機把 數(shù)據(jù)從高電平拉到低電平時,寫時間隙開始,數(shù)據(jù)線必

50、須保持至少1s; 從ds18b20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15s 內有效。 因此,主機在讀時間隙開始后必須把i/o 腳驅動拉為的電平保持 15s,以讀取i/o 腳狀態(tài)。在讀時間隙的結尾,i/o 引腳將被外部上拉電 阻拉到高電平。所有讀時間隙必須最少60s,包括兩個讀周期至少1s的 恢復時間。 源程序: 假設要讀1b 的數(shù)據(jù), 且數(shù)據(jù)放在a 中。 readds1820:mov r7, # 08h ; 1 個字節(jié)8 位 setbtem pd in no p no p readds1820loo p: clrtem pd in no p setbtem pd in ; 釋放總線 mov r

51、6, # 05h ; 延時10 ls djn zr6, mov c, tem pd n ; 采樣總線 數(shù)據(jù) mov r6, # 14h ; 延時40 ls djn zr6, rrca ; 采樣數(shù)據(jù) 存入a setbtem pd in ; 釋放總線 djn zr7, readds1820loo p ; 采樣下一 位 mov r6, # 14h ; 延時40 ls djn zr6, ret 讀/寫時序如圖 5.3如下: 圖 5.3 ds18b20的讀寫時序圖 復位時序:復位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放, ds18b20收到信號后等待1660 微秒左右,后發(fā)出60240 微秒的存在低

52、 脈沖,主cpu 收到此信號表示復位成功。 源程序: 其中tem pd in 定義為ds18b20 的數(shù)據(jù)管腳, 主機為a t89c2051。 n itds1820: setbtem pd n no p no p clrtem pd n mov r6, # 0a 0h ; 延時640 ls djn zr6, mov r6, # 0a 0h djn zr6, setbtem pd n ; 釋放總線 mov r6, # 32h ; 延時100 ls, 等待回應 djn zr6, mov r6, # 3ch loo p1820: mov c, tem pd n ; 采樣總線信 號 jcn itds1

53、820ou t djn zr6,loo p1820 mov r6, # 064h djn zr6, sjm pn itds1820 ret in itds1820ou t: setbtem pd n ret 復位時序如圖 5.3所示: (四)、溫度報警電路(四)、溫度報警電路 本設計采軟件處理報警,利用有源蜂鳴器進行報警輸出,采用直流供電。 當所測溫度超過獲低于所預設的溫度時,數(shù)據(jù)口相應拉高電平,報警輸出。 (也可采用發(fā)光二級管報警電路,如過需要報警,則只需將相應位置1,當 參數(shù)判斷完畢后,再看報警模型單元alarm 的內容是否與預設一樣,如不 一樣,則發(fā)光報警)報警電路硬件連接見圖 5.10

54、。 圖 5.10蜂鳴器電路連接圖 六、六、 軟件設計軟件設計 (一)、(一)、 概述概述 整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當硬件基本定型后, 軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān) 控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調各執(zhí)行模塊 和操作者的關系。二是執(zhí)行軟件(子程序),它是用來完成各種實質性的 功能如測量、計算、顯示、通訊等。每一個執(zhí)行軟件也就是一個小的功能 執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定 義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根 據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結構,然后根據(jù)

溫馨提示

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

評論

0/150

提交評論