基于DS18B20的智能溫度測量裝置
發布時間:2008/6/3 0:00:00 訪問次數:513
    
    
     作者email: jsmo739@yeah.net 一、前言 溫度是一種最基本的環境參數,人民的生活與環境的溫度息息相關,在工業生產過程中需要實時測量溫度,在農業生產中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關鍵是溫度傳感器,溫度傳感器的發展經歷了三個發展階段:①傳統的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數字式,從集成化向智能化、網絡化的方向飛速發展。文章將介紹智能集成溫度傳感器ds18b20的結構特征及控制方法,并對以此傳感器,89c2051單片機為控制器構成的溫度測量裝置的工作原理及程序設計作了詳細的介紹。該裝置適用于人民的日常生活和工、農業生產用于溫度測量。 二、ds18b20單線數字溫度傳感器 由dallas半導體公司生產的ds18b20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業、民用、軍事等領域的溫度測量及控制儀器、測控系統和大型設備中。它具有體積小,接口方便,傳輸距離遠等特點。 1、ds18b20性能特點 ds18b20的性能特點:①采用單總線專用技術,既可通過串行口線,也可通過其它i/o口線與微機接口,無須經過其它變換電路,直接輸出被測溫度值(9位二進制數,含符號位),②測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃,③內含64位經過激光修正的只讀存儲器rom,④適配各種單片機或系統機,⑤用戶可分別設定各路溫度的上、下限,⑥內含寄生電源。 2、ds18b20內部結構 ds18b20內部結構主要由四部分組成:64位光刻rom,溫度傳感器,非揮發的溫度報警觸發器th和tl,高速暫存器。ds18b20的管腳排列如圖1所示。 64位光刻rom是出廠前被光刻好的,它可以看作是該ds18b20的地址序列號。不同的器件地址序列號不同。 圖1 ds18b20引腳分布圖1、ds18b20控制方法 在硬件上,ds18b20與單片機的連接有兩種方法,一種是vcc接外部電源,gnd接地,i/o與單片機的i/o線相連;另一種是用寄生電源供電,此時udd、gnd接地,i/o接單片機i/o。無論是內部寄生電源還是外部供電,i/o口線要接5kω左右的上拉電阻。 ds18b20有六條控制命令,如表所示: cpu對ds18b20的訪問流程是:先對ds18b20初始化,再進行rom操作命令,最后才能對存儲器操作,數據操作。ds18b20每一步操作都要遵循嚴格的工作時序和通信協議。如主機控制ds18b20完成溫度轉換這一過程,根據ds18b20的通訊協議,須經三個步驟:每一次讀寫之前都要對ds18b20進行復位,復位成功后發送一條rom指令,最后發送ram指令,這樣才能對ds18b20進行預定的操作。 三、基于ds18b20的溫度測量裝置 1、系統組成 由ds18b20構成的智能溫度測量裝置由三部分組成:ds18b20溫度傳感器、89c2051、顯示模塊。產品的主要技術指標:①測量范圍:-55℃-+125℃,②測量精度:0.5℃,③反應時間≤500ms。 2、工作原理 基于ds18b20的溫度測量裝置電圖如圖2所示:溫度傳感器ds18b20將被測環境溫度轉化成帶符號的數字信號(以十六位補碼形式,占兩個字節),傳感器可置于離裝置150米以內的任何地方,輸出腳i/o直接與單片機的p1.1相連,r1為上拉電阻,傳感器采用外部電源供電。89c2051是整個裝置的控制核心,89c2051內帶1k字節的flashrom,用戶程序存放在這里。顯示器模塊由四位一體的共陽數碼管和4個9012組成。系統程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照ds18b20的通信協議編制。系統的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。1、 程序設計根據ds18b20的通信協議,按圖2的硬件結構。下面是系統的主要程序。系統主程序********************org 0100hi/o bit p3.4 start:lcall rst18b20 ;調ds18b20初始化子程序 mov a,#occh ;寫cch到ds18b20,以便跳過rom匹配 lcall wids18b20 ;wids18b20是寫18b20子程序 jnb f1, start ;若ds18b20不存在則從新開始 mov a,#44h ;發溫度轉換命令 lcall wids18b20 lcall dsplay ;調顯示子程序 lcall rst18b20 mov a,#0beh ;發讀溫度命令 lcall wids18b20 lcall rdds18b20 ;rdds18b20是讀子程序 lcall zwds18b20 ;zwds18b20是溫度計算子程序 lcall dsplay ljmp start***********部分子程序************ds18b20初始化子程序***********rst18b20: setb i/o
     clr i/o
     mov r0,#0fah
    
    
     作者email: jsmo739@yeah.net 一、前言 溫度是一種最基本的環境參數,人民的生活與環境的溫度息息相關,在工業生產過程中需要實時測量溫度,在農業生產中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關鍵是溫度傳感器,溫度傳感器的發展經歷了三個發展階段:①傳統的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數字式,從集成化向智能化、網絡化的方向飛速發展。文章將介紹智能集成溫度傳感器ds18b20的結構特征及控制方法,并對以此傳感器,89c2051單片機為控制器構成的溫度測量裝置的工作原理及程序設計作了詳細的介紹。該裝置適用于人民的日常生活和工、農業生產用于溫度測量。 二、ds18b20單線數字溫度傳感器 由dallas半導體公司生產的ds18b20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業、民用、軍事等領域的溫度測量及控制儀器、測控系統和大型設備中。它具有體積小,接口方便,傳輸距離遠等特點。 1、ds18b20性能特點 ds18b20的性能特點:①采用單總線專用技術,既可通過串行口線,也可通過其它i/o口線與微機接口,無須經過其它變換電路,直接輸出被測溫度值(9位二進制數,含符號位),②測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃,③內含64位經過激光修正的只讀存儲器rom,④適配各種單片機或系統機,⑤用戶可分別設定各路溫度的上、下限,⑥內含寄生電源。 2、ds18b20內部結構 ds18b20內部結構主要由四部分組成:64位光刻rom,溫度傳感器,非揮發的溫度報警觸發器th和tl,高速暫存器。ds18b20的管腳排列如圖1所示。 64位光刻rom是出廠前被光刻好的,它可以看作是該ds18b20的地址序列號。不同的器件地址序列號不同。 圖1 ds18b20引腳分布圖1、ds18b20控制方法 在硬件上,ds18b20與單片機的連接有兩種方法,一種是vcc接外部電源,gnd接地,i/o與單片機的i/o線相連;另一種是用寄生電源供電,此時udd、gnd接地,i/o接單片機i/o。無論是內部寄生電源還是外部供電,i/o口線要接5kω左右的上拉電阻。 ds18b20有六條控制命令,如表所示: cpu對ds18b20的訪問流程是:先對ds18b20初始化,再進行rom操作命令,最后才能對存儲器操作,數據操作。ds18b20每一步操作都要遵循嚴格的工作時序和通信協議。如主機控制ds18b20完成溫度轉換這一過程,根據ds18b20的通訊協議,須經三個步驟:每一次讀寫之前都要對ds18b20進行復位,復位成功后發送一條rom指令,最后發送ram指令,這樣才能對ds18b20進行預定的操作。 三、基于ds18b20的溫度測量裝置 1、系統組成 由ds18b20構成的智能溫度測量裝置由三部分組成:ds18b20溫度傳感器、89c2051、顯示模塊。產品的主要技術指標:①測量范圍:-55℃-+125℃,②測量精度:0.5℃,③反應時間≤500ms。 2、工作原理 基于ds18b20的溫度測量裝置電圖如圖2所示:溫度傳感器ds18b20將被測環境溫度轉化成帶符號的數字信號(以十六位補碼形式,占兩個字節),傳感器可置于離裝置150米以內的任何地方,輸出腳i/o直接與單片機的p1.1相連,r1為上拉電阻,傳感器采用外部電源供電。89c2051是整個裝置的控制核心,89c2051內帶1k字節的flashrom,用戶程序存放在這里。顯示器模塊由四位一體的共陽數碼管和4個9012組成。系統程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照ds18b20的通信協議編制。系統的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。1、 程序設計根據ds18b20的通信協議,按圖2的硬件結構。下面是系統的主要程序。系統主程序********************org 0100hi/o bit p3.4 start:lcall rst18b20 ;調ds18b20初始化子程序 mov a,#occh ;寫cch到ds18b20,以便跳過rom匹配 lcall wids18b20 ;wids18b20是寫18b20子程序 jnb f1, start ;若ds18b20不存在則從新開始 mov a,#44h ;發溫度轉換命令 lcall wids18b20 lcall dsplay ;調顯示子程序 lcall rst18b20 mov a,#0beh ;發讀溫度命令 lcall wids18b20 lcall rdds18b20 ;rdds18b20是讀子程序 lcall zwds18b20 ;zwds18b20是溫度計算子程序 lcall dsplay ljmp start***********部分子程序************ds18b20初始化子程序***********rst18b20: setb i/o
     clr i/o
     mov r0,#0fah