《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > 基于单片机的高精度温度测量系统设计
基于单片机的高精度温度测量系统设计
摘要: 本文就是运用单片机及其接口和集成单总线温度传感器DS18B20构建一个高精度的温度测量和显示系统,并且通过开关进行温度上限的设置,如果温度超过设定值就会报警或进行相应的控制命令。设计的电路简单,易于实现,而且还具有一定的扩展功能,可以扩展成多点采集和更复杂的功能。
Abstract:
Key words :
  0 引言

  溫度是工業(yè)生產(chǎn)過程和實驗過程中比較重要的一個參數(shù),精確的溫度測量和及時的顯示溫度是很重要的。目前溫度測量系統(tǒng)種類繁多,功能參差不齊。單片機(jī)具有體積小,價格便宜,通用性和靈活性強(qiáng)的特點,利用單片機(jī)設(shè)計溫度測量系統(tǒng),既可以滿足功能要求,又經(jīng)濟(jì)實惠。數(shù)字溫度測量傳感器DS18B20是單一總線的高精度測量器件,它克服了以前模擬式傳感器與微機(jī)接口時需要的A/D轉(zhuǎn)換器及其他復(fù)雜外圍電路的缺點。本文就是運用單片機(jī)及其接口和集成單總線溫度傳感器DS18B20構(gòu)建一個高精度的溫度測量和顯示系統(tǒng),并且通過開關(guān)進(jìn)行溫度上限的設(shè)置,如果溫度超過設(shè)定值就會報警或進(jìn)行相應(yīng)的控制命令。設(shè)計的電路簡單,易于實現(xiàn),而且還具有一定的擴(kuò)展功能,可以擴(kuò)展成多點采集和更復(fù)雜的功能。

  1 系統(tǒng)硬件設(shè)計

  整個系統(tǒng)主要由主控中心(單片機(jī))、溫度傳感器DS18B20、數(shù)碼管顯示及開關(guān)控制等功能模塊組成??梢酝ㄟ^開關(guān)調(diào)節(jié)報警溫度的上限,既可以使上限增加,也可以使上限減小,這樣就可以用于不同場合了,系統(tǒng)的框圖如圖1所示。

a.jpg

  1.1 溫度傳感器DS18B20

  DS18B20是美國Dallas半導(dǎo)體公司生產(chǎn)的數(shù)字式溫度傳感器,提供9位溫度讀數(shù),指示溫度。溫度信息通過單線接口送入DS18B20或者從DS18B20送出,所以從處理器到DS18B20僅需連接一條線。讀、寫和完成溫度變換所需的電源可以由數(shù)據(jù)本身提供,而不需要外部電源。這使得DS18B20與單片機(jī)接口變得很簡單,克服了模擬式傳感器與微機(jī)接口時需要的A/D轉(zhuǎn)換及其他復(fù)雜外圍電路的缺點,而且它具有結(jié)構(gòu)簡單、成本低、體積小、抗干擾能力強(qiáng)、使用簡單等優(yōu)點。最重要的是DS18B20的ROM中存有其芯片的惟一標(biāo)識碼,即任意兩個DS18B20的標(biāo)識碼是不同的,特別適合與微處理芯片構(gòu)成多點溫度測量控制系統(tǒng)。DS18B20是DS1820的改進(jìn)型,分辨率為9~12位可編程控制,由其寄存器R0,R1的兩位狀態(tài)決定。測量范圍從-55~+125℃,增量值為0.5℃。

  DS18B20在內(nèi)部以時鐘周期個數(shù)計數(shù)來測量溫度,并且提供0.5℃的分辨率。溫度讀數(shù)以16位、符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供。需要注意的是在DS18B20中溫度以1/2℃LSB(最低有效位)形式表示時,產(chǎn)生以下9位格式:

b.jpg

  1.2 鍵盤控制設(shè)計

  系統(tǒng)工作前先由用戶自己設(shè)定一個兩位溫度值作為報警值,打開電源,單片機(jī)復(fù)位初始化,閉合開關(guān)中斷程序,按復(fù)位開關(guān),每按一次報警值就會在初始化的基礎(chǔ)上加1℃,數(shù)碼管顯示設(shè)定值。用戶進(jìn)行核對查看顯示的數(shù)字值是否與設(shè)置值一樣,然后打開開關(guān)進(jìn)行周圍溫度測量值傳輸。由于報警值可以由用戶自己設(shè)定,故系統(tǒng)能適應(yīng)各種不同溫度的環(huán)境。

  1.3 其他的部分

  系統(tǒng)主要采用的是7段共陽極數(shù)碼管顯示測量的溫度值,由發(fā)光二極管蜂鳴器進(jìn)行報警。如果測的溫度值高于設(shè)定值1℃,報警系統(tǒng)就會報警(發(fā)光二極管點亮,蜂鳴器鳴響)。這樣可以從聲音和視覺上收到系統(tǒng)的警報。

  1.4 系統(tǒng)的電路原理圖

  系統(tǒng)的電路原理圖如圖2所示。

c.jpg

  2 軟件設(shè)計

  系統(tǒng)開始工作時,首先進(jìn)行I/O口初始化、報警值初始化,然后判斷開關(guān)是否閉合,由用戶自己在原報警值的基礎(chǔ)上更改,確定后由單片機(jī)控制軟件發(fā)出溫度讀取指令,通過數(shù)字溫度傳感器DS18B20采集當(dāng)前溫度值,轉(zhuǎn)換后經(jīng)過單總線傳輸給單片機(jī),單片機(jī)經(jīng)過處理由數(shù)碼管顯示,如果超出設(shè)置的報警值1℃,系統(tǒng)就會報警(發(fā)光二極管點亮、蜂鳴器鳴響)。系統(tǒng)的軟件部分主要是由中斷子程序、讀寫DB18B20程序、顯示程序和報警系統(tǒng)四部分組成,主程序流程圖如圖3所示。

d.jpg

  設(shè)計的部分程序如下:

e.jpg

f.jpg

g.jpg

  3 結(jié)語

  基于C51系列單片機(jī)和DS18B20數(shù)字溫度傳感器的溫度測量系統(tǒng)結(jié)構(gòu)簡單、成本低、操作方便,比較好推廣,而且也可以根據(jù)情況進(jìn)行擴(kuò)展,比如進(jìn)行多點采集等。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容