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