種基于DS18B20的溫度采集系統(tǒng)設計
近年來,隨著自動測試技術、計算機技術和微電子技術的迅猛發(fā)展,在溫度測量領域,開發(fā)出一種新型的將數(shù)字電路和溫度傳感器集成在一起的數(shù)字式溫度傳感器。在數(shù)字式溫度傳感器的內部一般包含有溫度傳感器、接口電路、存儲器(或寄存器)、信號處理器和A/D轉換器。與傳統(tǒng)的模擬溫度傳感器相比,數(shù)字式溫度傳感器在器件微小化、抗干擾能力、可靠性、分辨率以及精度方面都具有明顯的優(yōu)點,此外,其輸出的溫度數(shù)據(jù)以及相關的溫度控制量能夠與各種微處理器相適配。
本文引用地址:http://m.butianyuan.cn/article/201610/308680.htm1 硬件設計
1.1 溫度傳感器
該系統(tǒng)的溫度采樣元件采用DALLAS半導體公司生產(chǎn)的一線式數(shù)字溫度傳感器DS18B20,微處理器僅需要1條端口線即可實現(xiàn)與DS18B20的雙向通信。DS18B20采用僅有3只引腳的小體積封裝形式T0~92,包括共用地線、外供電源線和單線數(shù)據(jù)傳輸總線端口。DS18B20可提供兩種不同的供電方式:一種是外部供電方式,外供電源線接+5 V,此種供電方式設計簡單,在較短的時間內就能完成溫度測量;另一種為數(shù)據(jù)線供電方式,要求外供電源線接地,數(shù)據(jù)線需用單片機的一個I/O口來實現(xiàn)上拉,空閑時通過內部電容從數(shù)據(jù)線獲取能量,此種供電方式設計較復雜,完成溫度轉換的時間也相對較長。選擇一線式數(shù)字溫度傳感器DS18B20的主要原因有以下幾個方面:
1)系統(tǒng)的特性方面,溫度測量范圍在-55~+125℃之間,且在-10~+85 ℃溫度范圍內可滿足±0.5℃的最低精度,溫度A/D轉換精度可編程為9~12位,溫度轉換值能夠以16位二進制碼的格式直接串行輸出,完成12位高精度轉換的最大時間需要750 ms,通過選擇數(shù)據(jù)線供電方式,可以超低功耗工作。
2)系統(tǒng)復雜程度方面,因為DS18B20是采用單總線控制技術的器件,接口時僅需占用微處理器的其中一個I/O口,并且一條數(shù)據(jù)總線上可以同時連接幾十個相同器件,測溫時不需要其他任何外部元件,所以與傳統(tǒng)的模擬傳感器相比,接線的數(shù)量大大減少,系統(tǒng)的復雜程度大大降低,工程施工量也相應減少。
3)系統(tǒng)的調試和維護方面,系統(tǒng)接口由于引線的減少而大大簡化,系統(tǒng)調試更加便利,同時由于DS18B20屬于全數(shù)字元器件,其故障率非常低且抗干擾性很強,因此系統(tǒng)的日常維護工作輕松許多。
4)系統(tǒng)成本方面,隨著微電子技術和計算機技術的迅猛發(fā)展,集成電路的功能不僅越來越強大,其體積也變得越來越小,且價格也越來越便宜。
1.2 電路原理
本系統(tǒng)采用AT89C51單片機作為控制核心,AT89C51是一種帶有4 K字節(jié)FLASH閃速存儲器的低電壓、高性能8位CMOS微處理器,帶有128字節(jié)的內部RAM、2個16位定時/計數(shù)器、32個I/O口、1個5向量兩級中斷結構、片內振蕩器及時鐘電路。此外,AT89C51能夠降至0 Hz的靜態(tài)邏輯操作,可以支持軟件可選的兩種節(jié)電工作模式。處于空閑工作模式時,CPU停止工作,但允許RAM、定時/計數(shù)器和中斷系統(tǒng)繼續(xù)工作。
電路原理圖如圖1所示,DS18B20的供電方式采用外部電源,數(shù)據(jù)線通過一個4.7 kΩ的上拉電阻接在單片機AT89C51的P1.7口,其他2只管腳分別對應接電源和地,此方式安全可靠且編程簡單。
溫度顯示采用四位七段共陽LED數(shù)碼管,間隔2 ms通過位選通信號P20、P21、P22、P23逐個點亮各個LED數(shù)碼管,實現(xiàn)溫度值的動態(tài)顯示,可顯示-55~+125℃溫度測量范圍。
2 軟件開發(fā)流程
2. 1 主程序
主程序主要負責通過DS18B20讀取到的當前溫度測量值和溫度的實時顯示,由于DS18B20的12位精度的轉換時間約為750 ms,可以每隔1 s進行一次溫度測量,其程序流程圖如圖2所示。
2. 2 讀溫度子程序
讀溫度子程序的功能主要是從RAM中讀取9字節(jié)數(shù)據(jù),同事還需進行CRC校驗,當校驗出錯時不再進行溫度數(shù)據(jù)的讀寫,其子程序流程圖如圖3所示。
2.3 溫度轉換命令子程序
溫度轉換命令子程序的主要功能為發(fā)送溫度轉換開始命令,當設置為12位采樣分辨率時完成轉換時間約為750ms,故本程序設計中使用顯示程序延時法來等待轉換完成,延時時間設為1 s,其子程序流程圖如圖4所示。
2.4 計算溫度子程序
計算溫度子程序的功能是從RAM中讀取值數(shù)據(jù)并進行BCD碼轉換運算,還需要判定溫度值的正負,其子程序流程圖如圖5所示。
2.5 顯示數(shù)據(jù)刷新子程序
顯示數(shù)據(jù)刷新子程序的功能是刷新顯示緩沖器中的顯示數(shù)據(jù),當顯示最高位為0時需將符號顯示位移到下一位,其子程序流程圖如圖6所示。
3 結論
此設計基于DS18B20的溫度采集系統(tǒng)具有測溫精度高、占用口線少、結構簡單、連接方便、成本低等優(yōu)點,但是硬件電路的簡潔是以犧牲軟件為代價的。由于DS18B20與單片
機AT89C51之間采用串行數(shù)據(jù)傳送,所以,在對DS18B20進行讀寫操作時,必須保證嚴格的讀寫時序,否則將無法正確讀取測溫結果。
評論