基于AT89C2051的數(shù)字溫度計設(shè)計
單片機控制已成為今天電子設(shè)計追-求的目標之一,本文將這種控制技術(shù)應(yīng)用于溫度測量中。AT89C2051是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS8位單片機,片內(nèi)含有2 KB的反復(fù)擦寫的只讀程序存儲器和128 B的隨機存取數(shù)據(jù)存儲器(RAM)。美國DALLAS半導(dǎo)體公司生產(chǎn)的DSl-8B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能傳感器。數(shù)字溫度計是以DS18B20為檢測元件,由AT89C2051作為主控制器的溫度計,具有功耗低、結(jié)構(gòu)簡單、讀數(shù)方便、測溫范圍廣、測溫準確的特點。
1 電路構(gòu)成及工作原理
1.1 硬件設(shè)計
由AT89C2051構(gòu)成的溫度計主要由三部分組成:DSl8B20溫度傳感器、單片機AT89C2051、由LED數(shù)碼管構(gòu)成的顯示模塊。其系統(tǒng)原理框圖如圖1所示。DSl8B20作為單片機AT89C2051的外部信號源,把所采集到的溫度轉(zhuǎn)換為數(shù)字信號,通過I/O接口傳給2051,2051啟動ROM內(nèi)的控制程序驅(qū)動LED數(shù)碼管,通過I/O接口和數(shù)據(jù)線(單片機和數(shù)碼管的接口)把數(shù)據(jù)傳送給數(shù)碼管,將采集到的溫度顯示出來。
1.2 總電路圖
基于AT89C2051的溫度測量系統(tǒng)電路圖把溫度轉(zhuǎn)化成帶符號的數(shù)字信號(以十六位補碼形式,占兩個字節(jié)),若采用帶屏蔽的雙絞電纜線,連線的長度可以達到150 m,輸出腳I/0直接與單片機的P3.4相連,R1為上拉電阻,傳感器采用外部電源供電。AT89C2051是整個系統(tǒng)的核心部分,內(nèi)含2 KB的FLASH ROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽數(shù)碼管和四個9012組成。系統(tǒng)程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DSl8B20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。
產(chǎn)品的主要技術(shù)指標:測量范圍:-55~+125℃,測量精度:0.5℃;反應(yīng)時間小于等于500 ms。
2 軟件設(shè)計
2.1 采集模塊
該模塊選用單線溫度傳感器DSl8B20完成溫度采集。單片機AT89C51對DSl8B20訪問流程如下:先對DSl8B20初始化,再進行ROM操作命令,最后才能對存儲器操作。DSl8B20每一步操作都要遵循嚴格的工作時序和通信協(xié)議。根據(jù)DSl8B20的通訊協(xié)議,需經(jīng)三個步驟:每一次讀寫之前都要對DSl8B20進行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令(指令代碼CCH)并置標志位,根據(jù)標志位來判斷是否初始化成功,最后發(fā)送RAM指令(指令代碼44H)DSl8B20開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值(指令代碼BEH),讀取的溫度值高位字節(jié)送27H單元,低位字節(jié)送26H單元,再按照溫度值字節(jié)的表示格式及其符號位,經(jīng)過簡單的變換即可得到實際溫度值。
2.2 主處理模塊
主處理模塊主要是將各個模塊進行協(xié)調(diào)處理以實現(xiàn)數(shù)據(jù)交互。主處理模塊首先完成初始化工作,初始化后進入循環(huán)處理,在循環(huán)過程中獲得采集模塊的數(shù)據(jù),并將數(shù)據(jù)進行處理,根據(jù)處理后的結(jié)果進行顯示。主處理的流程圖如圖3所示。
2.3 顯示模塊
采用動態(tài)掃描的方法,其中P3.O,P3.1,P3.2,P3.3控制位選,P1控制段選。由P3.O,P3.1,P3.2,P3.3向各位輪流輸出掃描信號,使每一瞬間只有一個數(shù)碼管被選通,然后由P1送入該位所要顯示的字形碼,點亮該位字形段顯示的字形。在P1送出的碼段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各個數(shù)碼管輪流點亮顯示各自的字形。
3 結(jié)語
該設(shè)計測溫傳感器采用改進型智能溫度傳感器DSl8B20,測溫范圍為-55~+125℃,最大分辨率可達0.062 5℃,可以直接讀出被測溫度值,而且采用單線制與單片機相連,減少了外部的硬件電路,同時可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微機處理。