徐 敏
[摘 要]設(shè)計(jì)一種基于A(yíng)T89C51單片機(jī)的數(shù)字溫度計(jì),詳細(xì)闡述了單片機(jī)、顯示電路、DS18B20傳感器芯片的功能。該數(shù)字溫度計(jì)充分利用AT89C51單片機(jī)的特點(diǎn),具有參數(shù)測(cè)量準(zhǔn)確、操作方便、電路簡(jiǎn)單、安全可靠等特點(diǎn),可廣泛應(yīng)用于自動(dòng)溫度測(cè)量。
[關(guān)鍵詞]AT89C51單片機(jī) 數(shù)字溫度計(jì) DS18B20傳感器芯片 自動(dòng)溫度測(cè)量
[中圖分類(lèi)號(hào)]TP368.1 [文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2009)12-0007-03
[Abstract] Design a kind of digital thermometer based on ultralow AT89C51 single chip.Illustrate the function of the single chip,display circuit,DS18B20 sensor chip.The digital thermometer takes advantage of the characteristics of AT89C51 single chip. It has following characteristics,such as exact parameter measure,convenient operation,simple design,safe and reliable,so it can be widely used to automatic temperature measurement.
[Key words] AT89C51;single chip; digital thermometer; DS18B20; sensor chip; automatic temperature measurement
在冶金、石油、化工、機(jī)械制造和國(guó)防等行業(yè)中,往往需要測(cè)量-200℃~1000℃氣體、液體等環(huán)境中的溫度。以前一般采用玻璃液體溫度計(jì)、雙金屬溫度計(jì)、壓力式溫度計(jì)、熱電偶、熱電阻和非接觸式溫度計(jì)等進(jìn)行溫度測(cè)量。其中熱電偶的溫度測(cè)量范圍較寬,它無(wú)需使用驅(qū)動(dòng)電源即可直接產(chǎn)生電壓信號(hào),該信號(hào)既可用直流測(cè)量?jī)x器(如電位差計(jì)、數(shù)字電壓表、毫伏計(jì)等)讀取,以通過(guò)熱電偶溫度特性分度表查出對(duì)應(yīng)的溫度;也可以用線(xiàn)性校正電路將小信號(hào)電壓放大后,通過(guò)顯示儀表的刻度讀數(shù)。在某些輸油、輸氣管道應(yīng)用中,往往要求對(duì)溫度進(jìn)行長(zhǎng)時(shí)間監(jiān)測(cè),且要求能夠快速準(zhǔn)確地讀數(shù)。此時(shí),上述各類(lèi)溫度計(jì)則難以勝任。而如果將熱電偶產(chǎn)生的熱電動(dòng)勢(shì)轉(zhuǎn)換成數(shù)字信號(hào)后由單片機(jī)進(jìn)行數(shù)據(jù)處理,并通過(guò)數(shù)碼管來(lái)顯示其溫度結(jié)果,這種方法反應(yīng)迅速,測(cè)量精度高,功耗小,顯示直觀(guān)。因此,由熱電偶、A/D轉(zhuǎn)換電路、單片機(jī)和數(shù)碼管組成的數(shù)字式低功耗高精度溫度計(jì)可以代替許多溫度計(jì)來(lái)完成特殊情況下的溫度測(cè)控工作,且便于實(shí)現(xiàn)小型化設(shè)計(jì)。
1 數(shù)字溫度計(jì)的工作原理
數(shù)字溫度計(jì)的工作原理如圖1所示。輸油、輸氣管道中的溫度由傳感器輸出與溫度值相對(duì)應(yīng)的電流值,該電流值經(jīng)過(guò)I/V轉(zhuǎn)換電路得到電壓值,最后經(jīng)過(guò)A/D轉(zhuǎn)換電路將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)送入單片機(jī)[1]。單片機(jī)對(duì)采樣值進(jìn)行數(shù)字處理后驅(qū)動(dòng)顯示電路顯示出采集到的溫度值。對(duì)于圖1中的傳感器、I/V轉(zhuǎn)換電路、A/D轉(zhuǎn)換電路這三部分的功能可以用美國(guó)達(dá)拉斯(DALLAS)公司的單線(xiàn)數(shù)字溫度傳感器芯片DS18B20來(lái)實(shí)現(xiàn)。
2 硬件電路設(shè)計(jì)
為了滿(mǎn)足用戶(hù)的需要,能夠進(jìn)行簡(jiǎn)單便捷的操作,同時(shí)還要兼顧體積小、耗電少、精度高的要求,使系統(tǒng)具有抗干擾能力強(qiáng)的特點(diǎn)。硬件電路設(shè)計(jì)中盡可能選用功耗小、性能穩(wěn)定的集成電路。系統(tǒng)由3個(gè)模塊組成:微處理器、顯示電路及測(cè)溫電路。
2.1 微處理器AT89C51
微處理器AT89C51是數(shù)字溫度計(jì)的主要部件之一,它完成傳感器功能設(shè)定、測(cè)量對(duì)象的選擇、信號(hào)處理存儲(chǔ)、狀態(tài)信息的顯示、輸出等功能。相對(duì)于A(yíng)T89系列單片機(jī),選擇通用性強(qiáng)、功耗小、性能良好的8位AT89C51微處理器芯片,它與MCS-51兼容,具有4KB的FLASH存儲(chǔ)空間、128×8位內(nèi)部RAM、32個(gè)可編程I/O線(xiàn)、低功耗的閑置和掉電模式、兩個(gè)16位定時(shí)器/計(jì)數(shù)器、5個(gè)中斷源和可編程串行通道等特點(diǎn),大大簡(jiǎn)化了電路的設(shè)計(jì)[2]。
2.2 顯示電路
系統(tǒng)硬件選擇的是LED動(dòng)態(tài)顯示,LED顯示子程序主要是完成對(duì)設(shè)定的LED段,并通過(guò)查七段碼表,使它顯示制定的圖樣。圖2中描述的是通過(guò)選定一段數(shù)碼管顯示數(shù)據(jù)。
2.3 溫度傳感器
這里采用的是DS18B20數(shù)字傳感器芯片,是數(shù)字溫度計(jì)的核心元器件,是DALLAS公司生產(chǎn)的1-Wire,即單總線(xiàn)器件,具有線(xiàn)路簡(jiǎn)單,體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線(xiàn)路簡(jiǎn)單,在一根通信線(xiàn),可以?huà)旌芏噙@樣的數(shù)字溫度計(jì),十分方便。
2.3.1 DS18B20內(nèi)部結(jié)構(gòu)
DS18B20的內(nèi)部結(jié)構(gòu)如圖3所示,他主要包括溫度傳感器、64位激光ROM單線(xiàn)單口、存放中間數(shù)據(jù)的高速暫存器、用于存儲(chǔ)用戶(hù)設(shè)定的溫度上下限值、觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)碼發(fā)生器等。
2.3.2 DS18B20工作原理
由于DS18B20采用的是1-Wire總線(xiàn)協(xié)議方式,即在一根數(shù)據(jù)線(xiàn)實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89C51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線(xiàn)協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線(xiàn)的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪(fǎng)問(wèn)。
由于DS18B20是在一根I/O線(xiàn)上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線(xiàn)器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線(xiàn)器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。
2.3.3 DS18B20與單片機(jī)接口電路
圖4是DS18B20采用寄生電源供電方式下與單片機(jī)接口電路,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來(lái)完成對(duì)總線(xiàn)的上拉。
當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線(xiàn)上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線(xiàn)制只有一根線(xiàn),因此發(fā)送接口必須是三態(tài)的。
3 軟件設(shè)計(jì)
系統(tǒng)軟件采用單片機(jī)C語(yǔ)言編制。為了方便程序調(diào)試和提高可靠性,軟件采用模塊化結(jié)構(gòu)程序設(shè)計(jì)方法,主要包括初始化程序、主程序、定時(shí)中斷服務(wù)程序、串行口中斷服務(wù)程序、各子程序模塊等。主程序完成系統(tǒng)初始化、查詢(xún)各種狀態(tài)并控制相應(yīng)操作等功能,流程如圖5所示。
3.1 軟件功能
單片機(jī)系統(tǒng)上電后,進(jìn)入初始化程序,完成片內(nèi)各模塊的設(shè)置、清除存儲(chǔ)單元內(nèi)容、端口設(shè)定等初始化工作,然后進(jìn)入主程序,開(kāi)中斷,循環(huán)設(shè)置低功耗模式并執(zhí)行延時(shí)操作。
3.2 軟件特點(diǎn)
本軟件設(shè)計(jì)的特點(diǎn)是利用單片機(jī)C語(yǔ)言的強(qiáng)大功能編制溫度傳感器的溫度計(jì)算處理方法,進(jìn)行非線(xiàn)性修正,極大地提高了程序運(yùn)行速度和采集精度。且匯編語(yǔ)言與C語(yǔ)言可以在編程過(guò)程中混合使用,而匯編在查表方面具有非常明顯的優(yōu)勢(shì)。
4 結(jié)語(yǔ)
本數(shù)字溫度計(jì)硬件結(jié)構(gòu)簡(jiǎn)單,軟件設(shè)計(jì)靈活,充分發(fā)揮了單片機(jī)結(jié)構(gòu)緊湊、功能強(qiáng)大的特點(diǎn),并且具有溫度顯示、便捷的人機(jī)接口的功能,是一種參數(shù)測(cè)量準(zhǔn)確、操作方便的數(shù)字溫度計(jì)。
[參考文獻(xiàn)]
[1] 李群芳.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:電子工業(yè)出版社,2001.184-185.
[2] 王幸之,鐘愛(ài)琴,王雷等.AT89系列單片機(jī)原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2004.199-200.
[作者簡(jiǎn)介]
徐敏(1982-),女,江蘇連云港人,碩士研究生,研究方向?yàn)樾盘?hào)與信息處理。