王慶剛 張晉
(1.西南石油大學網絡與信息化中心,四川成都 610500;2.西南石油大學電氣信息學院,四川成都 610500)
隨著社會和科技高速發展,人們工作的環境條件也在不斷提高,環境的多變導致人們對工作環境的安全更為重視,尤其是一些存放重要設備的機房內,更是需要嚴加看護,而眾多隱患中,火災高溫隱患對儀器設備的危害性最高,因此本文設計了一種基于單片機的機房溫度預警系統,本系統應用Proteus進行仿真,易操作、實用性高,能夠及時發現機房高溫隱患,從而有效減少設備的損失。
本設計主要由52單片機,DS18B20溫度傳感器,數碼管顯示屏,蜂鳴器等組件構成:DS18B20用于采集溫度數據并反饋,數碼管顯示屏用于顯示溫度數值,蜂鳴器用于產生報警信號,而控制操作這一切流程的程序,則被寫入于52單片機內部芯片內。系統的總體流程圖如圖1。
52單片機對比于51類,不僅有51單片機的特性,更甚于說比51更為強大,單片機系統采用C語言編寫,開發環境為Keiluvision4,AT89C52是擁有低電壓高性能特點的CMOS 8位單片機,片內有8kb的反復可擦寫只讀程序存儲器(ROM)以及256B的隨機存儲數據器(RAM),適用MCS-51指令以及51系列引腳,片內配8位中央處理器,FLASH存儲單元也是一大亮點與特點。而實際進行設計組裝時,選擇了功能較為完整的52單片機開發板,易獲得,易操作是其特點之一。開發板采用RC復位方式,總體程序寫入后運行,如果出現程序跑飛,利用RESET按鍵即可復位。
對于溫度信號的采集,本設計利用DS18B20溫度傳感器采集,其擁有體積小,功耗低,抗干擾的優點,其溫度的測量范圍為-55°C-+125°C,足以靈敏地對高溫信號作出反應,DS18B20的三個引腳,一個接電源,一個接地,一個接數字輸出/輸入引腳。DS18B20擁有掉電保護的功能,后接JK觸發器,與ADC0808 A/D轉換芯片相連。ADC0808是含8位A/D 轉換器、8路多路開關,以及與微型計算機兼容的控制邏輯的CMOS組件,利用逐次逼近型的轉換方法。ADC0808的精度為1/2LSB。8 路的模擬開關的通斷由地址鎖存器和譯碼器控制,可以在8 個通道中任意訪問一個單邊的模擬信號。經過ADC0808的信號交由單片機處理判斷是否達到報警溫度值。

圖1 系統總體流程

圖2 總體設計原理
對于溫度顯示,可以采用多位LED數碼管動態顯示或多位LED數碼管靜態顯示,對于位數不多,溫度要求不是特別精確的本題來說,可以采用多位LED數碼管靜態顯示,采用這種方法時,有一優點就是LED顯示器由接口芯片直接來驅動,利用串行輸出的方式節約單片機的內部資源,小電流亦能提供高顯示亮度,減少損耗與浪費。另外,74LS164用來實現串并轉換,不需要其他的驅動電路,LED具有易控制,電路簡單,高亮度,占CPU少等特點,無需太多接口資源,即可滿足設計要求。
一般而言,報警裝置選用蜂鳴器或者揚聲器來使用,我們采用揚聲器組件來作為報警裝置,即由一個三極管,一片模擬四聲訊響器,一片音頻功率放大器LM386并配備一個揚聲器(2w喇叭)。產生報警信號時,由單片機首先導通三極管然后驅動訊響器,由于輸出信號功電流不夠大,功率弱,所以通過功率放大器,通過12V下的大電流驅動揚聲器,從而產生較大分貝的報警鳴響。如果需要更大的報警聲響,可以接入外接設備來進行增益。
本設計中采用的單片機芯片,LED數碼管顯示以及報警用蜂鳴器等裝置,需要電壓不是很高,所以外置電源5V即可,可以利用可充電式電池做一個簡易供電設備。總體設計原理圖2。

圖3 系統實現效果
軟件設計部分主要是利用Keiluvision4環境進行編程,實現日常溫度顯示,高溫產生信號反饋至芯片,判斷是否達到預設危險高溫值,再驅動蜂鳴器進行報警。系統的核心功能代碼如下:
....
void main()
{
LcdInit(); //初始化LCD1602
LcdWriteCom(0x88); //寫地址 80表示初始地址
LcdWriteData('C');
while(1)
{
LcdDisplay(Ds18b20ReadTemp());
// Delay1ms(1000);//1s鐘刷一次
}
}
....
void LcdDisplay(int temp) //
{
unsigned char datas[] = {0, 0, 0, 0, 0};
float tp;
if(temp< 0)
{
LcdWriteCom(0x80);
LcdWriteData('-');
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
....
設計本身正常情況下,數碼管顯示的是正常室溫,以便可以對照是否溫度標準是否出現偏差,及時矯正。在設計過程中,經考慮儀器的高溫承受程度,所以在程序內預設50度為報警溫度,若在溫度傳感器接收到高于50度的溫度信號,就會反饋至設備內部,迅速報警。在進行試驗模擬高溫情景時,利用多種熱源進行試驗,均可以引發溫度報警且靈敏度沒有受高溫的影響,同時由于日常設備開啟狀態時不需要太多負載,所以設備本身的溫度影響可以做到忽略不計。系統實現效果圖如圖3。
本文中基于52單片機系統設計的室內高溫報警系統,成本較低廉,易于操作,由于實驗室條件限制,所以暫時只能對溫度進行報警而不能進行實時測量以及溫度數據反饋,但是若對于一些要求偏低的室內,簡單與快捷也就成了優點與特色。另外,以該系統為基礎模板,可以根據實際應用需求直接進行相關方面的升級,可塑性比較大。在推進全社會工業自動化的今天,必將為我們的工作和生活提供便利。
[1]潘新民.微型計算機控制技術[M].電子工業出版社,2013.
[2]李大為.WINDOWS CE工程實踐解析[M].中國電力出版社,2008.
[3]張毅剛,彭喜元,等.MCS-51單片機應用設計[M].哈爾濱工業大學出版社,2003.
[4]楊恢先,黃輝先,等.單片機原理及應用[M].人民郵電出版社,2006.