在工業生產及日常生活中,多點溫度檢測系統的應用十分廣泛,例如消防電氣的非破壞性溫度檢測,電力設備的過熱故障預知檢測,空調系統的溫度檢測,各類運輸工具組件的過熱檢測,醫療與診斷設備的溫度測試等。針對這一情況,本文設計了一種基于AT89C51、數字溫度傳感器DSl8820的多點溫度檢測系統,該系統利用DSl8820單總線的特點,可以方便地組建傳感器網絡,從而實現多點溫度的測量。該系統設計靈活、抗干擾性好,可以在惡劣的工作環境中進行溫度測量。 1 總體結構 設計的多點溫度檢測系統如圖1所示。該系統主要由AT89C51單片微型計算機、鍵盤顯示電路、溫度顯示電路、看門狗電路、溫度測試電路、串口通信電路等組成。 圖1 多點溫度檢測系統硬件框圖 圖2 DS18B20內部結構圖 2 硬件電路 2.1 溫度測試電路 溫度測試電路主要采用溫度芯片DSl8820,它是DALLAS公司生產的一線式數字溫度傳感器,測溫范圍為-55~+125℃,測溫分辨率可達O.062 5℃,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等特點,特別適合于構成多點溫度測控系統。其內部結構如圖2所示。 DSl8820有4個主要的數據部件: (1)64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號和8位家族代碼(28H)組成; (2)溫度靈敏元件; (3)非易失性溫度報警觸發器TH和TL,可通過軟件寫入用戶報警上下限值; (4)配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節。DSl8820在0工作時按此寄存器中的分辨率將溫度轉換成相應精度的數值,其各位定義如圖3所示。 圖3 DS18B20配置寄存器結構 圖3中:TM為測試模式標志位,出廠時被寫入0,不能改變;R0,Rl為溫度計分辨率設置位,其對應4種分辨率如表1所列,出廠時R0,R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據需要改寫配置寄存器以獲得合適的分辨率。 表1 配置寄存器結構與分辨率關系表 高速暫存存儲器由9個字節組成,其分配如圖4所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第O和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,數據格式如圖4所示。對應的溫度計算:當符號位S=O時,直接將二進制位轉換為十進制;當S=1時,先將補碼變為原碼,再計算十進制值。 圖4 DS18B20寄存器映像圖 由于DSl8B20是單線數字溫度傳感器,因此它基本不需要外圍電路就可以與單片機直接以1根線相連,圖5為多個DSl8B20通過單總線與單片機相連的原理圖,圖中,DSl8B20采用外部電源供電方式。 圖5 DSl8B20測溫電路 2.2 鍵盤及顯示電路 該系統采用的是矩陣式鍵盤,共組成20個按鍵,主要包括10個數字鍵以及“上限”、“下限”、“確定”等功能鍵。當有鍵按下時,8279產生中斷信號送入單片機,然后轉向相應的功能程序。 顯示部分采用1片75451與5個LED數碼管相連來實現動態顯示,工作狀況下,從左向右依次顯示為通道號、溫度的正負號、溫度值的十位、溫度值的個位以及溫度值的小數點后一位。 2.3 電源電路 因為單片機工作電源為+5 V,且底層電路功耗很小,采用7805三端穩壓片即可滿足要求。具體電路如圖6所示。 圖6 電源電路圖 2.4 看門狗電路 考慮到底層電路板的工作環境相對惡劣,單片機會受到周圍環境的干擾,因而出現程序跑飛、死機等一些不可預知的不正常工作現象,工作人員也不可能到現場對單片機重起,本設計為單片機電路添加一個外部看門狗電路,定時查詢單片機的工作狀態,一但發現異常即對單片機延時重起,以保證系統安全可靠的運行。其電路如圖7所示。 圖7 看門狗電路 3 軟件設計 系統的軟件采用模塊化方法進行編程,主要由主程序、數碼管顯示程序、鍵盤掃描以及按鍵處理程序、溫度測試程序、中斷控制程序等組成。其中主程序完成系統初始化和對采集到的溫度進行計算等;鍵盤掃描電路及按鍵處理程序實現鍵盤的輸入按鍵的識別及相關處理;溫度測試程序主要完成由溫度芯片傳送數據的處理,并進行判斷和顯示;數碼管顯示程序完成向數碼的顯示送數,控制系統的顯示部分;中斷控制程序則實現循環顯示功能。 系統程序流程圖如圖8所示。 圖8 系統程序流程圖 4 結語 利用AT89C51單片機和DSl8B20數字溫度傳感器可以實現多點溫度的檢測與控制。系統具有信號數字化、硬件簡單化和抗干擾能力強等特點,如果與相應的可擴展接口芯片相連,則可實現更多路溫度的測量與控制,以適應工業生產的需要。 |