摘 要:文章提出了一種基于STC89C52單片機的溫度采集系統(tǒng)設計方案,該方案通過STC89C52單片機控制DS18B20溫度傳感器來采集溫度,測量現(xiàn)場利用LED數(shù)碼管顯示實時溫度值,并采用RS-232串口作為單片機與計算機的數(shù)據(jù)通信接口。系統(tǒng)設計完成后,既可以準確測量溫度,又解決了通訊距離問題。此方案已在某些領域得到應用。
關鍵詞:單片機;溫度采集;串口通訊;STC89C52
1 概述
溫度采集是包含溫度信號檢測、信號處理、數(shù)據(jù)通信等相結(jié)合的綜合應用技術。在現(xiàn)代工業(yè)控制中是指將溫度的模擬量信號通過傳感器做適當變換后,再經(jīng)過信號調(diào)理、數(shù)據(jù)量化、數(shù)據(jù)編碼等步驟將之轉(zhuǎn)換為數(shù)字信號,并通過數(shù)據(jù)通訊傳給PC機進行進一步處理的過程。
2 系統(tǒng)構成
2.1 系統(tǒng)硬件電路構成
溫度采集系統(tǒng)以單片機為核心,集溫度的采集、信號處理、數(shù)據(jù)顯示、無線傳輸、串口通訊為一體。硬件組成包括單片機STC89C52、溫度傳感器DS18B20、PC機組成。其原理框圖見圖1。
此系統(tǒng)僅利用一片單片機,通過采集溫度傳感器的測量數(shù)據(jù),經(jīng)單片機處理后通過LED顯示屏顯示當前實時溫度,并將數(shù)據(jù)通過RS232串口通訊送至計算機,再通過計算機對收到的數(shù)據(jù)進行進一步處理。
2.2 單片機組成
單片機采用STC89C52 單片機,該單片機完全兼容MCS-51 系列單片機的所有功能,支持在線下載,自帶2K的存儲器,是單片機中最典型的產(chǎn)品,具有功耗低、性能高等特點,它是采用CHMOS工藝的8位單片機。單片機內(nèi)部有FLASH程序存儲器,可通過在線方式對其編程調(diào)試,極大的方便了開發(fā)人員。
2.3 溫度傳感器組成
溫度傳感器直接采用數(shù)字式溫度傳感器DS18B20,是美國國家半導體公司推出的一種數(shù)字化單總線器件,與傳統(tǒng)的PTC、NTC等熱敏電阻相比,它能夠直接測出溫度,屬于可直接適配微處理器的智能溫度傳感器。傳感器可通過單總線向DS18B20 供電,無需外接電源。這種接線方式可使系統(tǒng)結(jié)構趨于簡單,方便開發(fā)者輕松組建傳感器結(jié)構。輸出采用經(jīng)擴展后的16 位數(shù)字量方式串行輸出,提高了系統(tǒng)的抗干擾性。因此,DS18B20 特別適合于惡劣環(huán)境的現(xiàn)場溫度測量。其內(nèi)部結(jié)構見圖2。
溫度傳感器DS18B20主要利用高溫度系數(shù)晶振產(chǎn)生的振蕩頻率隨溫度變化而明顯這個原理來測量溫度。其測量原理為首先通過低溫度系數(shù)的晶振產(chǎn)生固定頻率的脈沖信號,并將脈沖信號送至減法計數(shù)器1,而將高溫度系數(shù)晶振所產(chǎn)生的信號送至減法計數(shù)器2。當計數(shù)門打開時,系統(tǒng)對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù),計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,其測溫原理見圖3。
2.4 數(shù)碼顯示組成
LED數(shù)碼顯示組成采用一組4位共陽極數(shù)碼管組成,數(shù)碼管正向壓降約為1.5~2V,額定電流10mA。
2.5 串口通訊組成
2.5.1 接收數(shù)據(jù)
當REN位置置1時,即代表CPU允許接收數(shù)據(jù),外界數(shù)據(jù)通過引腳RXD輸入,最低位進入移位器,當一幀數(shù)據(jù)接收完畢后數(shù)據(jù)并行送至SBUF緩沖器,同時將RI置位,并向CPU發(fā)出中斷請求,當CPU收到請求并響應中斷后,RI位清除。重復此過程。
2.5.2 發(fā)送數(shù)據(jù)
CPU發(fā)送數(shù)據(jù)時,首先將數(shù)據(jù)并行寫入SBUF發(fā)送緩沖器中,同時將數(shù)據(jù)由TXD引腳串行發(fā)送,一幀數(shù)據(jù)發(fā)送完畢后,緩沖器清空,系統(tǒng)將發(fā)送中斷標志位TI置位,并向CPU發(fā)出中斷請求。當CPU收到請求并響應中斷后,TI位清除。重復此過程。
3 程序設計
3.1 單片機程序設計
3.1.1 初始化DS18B2程序設計
當主機向DS18B20發(fā)復位脈沖時,主機釋放總線并檢測DS18B20是否響應,如響應結(jié)束,則總線將再次拉高,延時300ms后結(jié)束初始化過程,如未檢測到響應,則重新啟動初始化流程,直至響應結(jié)束。
3.1.2 主程序設計
DS18B20初始化之后,搜索ROM,讀取在線DS18B20的序列號,確認DS18B20實際存在后,跳過ROM,進行溫度轉(zhuǎn)換,循環(huán)往復。
3.2 上位機程序設計
為在上位機實現(xiàn)采集數(shù)據(jù)的顯示及存儲,基于VB語言實現(xiàn)數(shù)據(jù)通信功能。在串口通訊方面,通過VB自帶的MSComm控件,對其屬性及事件進行相應的編程既可輕松實現(xiàn)。數(shù)據(jù)庫設計則通過ACCESS建立。
4 結(jié)束語
經(jīng)試驗驗證及現(xiàn)場實際應用,此系統(tǒng)能對溫度數(shù)據(jù)進行長時間連續(xù)采集,并可以將數(shù)據(jù)傳送至上位機,方便進行進一步的處理,達到了預期的結(jié)果,可為其它類似問題的解決提供參考。
參考文獻
[1]沙占友.由DS1820 組成的單線數(shù)字溫度計原理與應用[J].電測與儀表,1999.
[2]范逸之.Visual Basic與RS232串口通訊控制[M].中國青年出版社.
作者簡介:陳中啟(1964-),男,漢族,江蘇省如皋市人,大學本科,高級講師,畢業(yè)于蘇州大學物理教育專業(yè),現(xiàn)就職于江蘇航空職業(yè)技術學院,研究方向:電子電工職業(yè)技術教育、工業(yè)自動化控制。