基于51單片機兩路溫度控制器的設計方案
4.1 主程序模塊
主程序中先對數據進(jìn)行初始化,然后調用鍵盤(pán)掃描子程序KEY_TEST,溫度比較子程序C O M P A R E,溫度采集子程序G E T _ T E M P,溫度顯示子程序D I S _ S E T和DISPLAY,再判斷采集,顯示第二個(gè)溫度傳感器的溫度值。編寫(xiě)程序如下:
4.2 LED顯示模塊
LED顯示可以分為動(dòng)態(tài)顯示和靜態(tài)顯示兩種,靜態(tài)顯示占用更多口線(xiàn),為了減少硬件成本,本設計采用動(dòng)態(tài)掃描顯示的方法顯示兩個(gè)溫度傳感器的溫度值。
DISPLAY和DISPLAY1函數分別讀取第一個(gè)和第二個(gè)溫度傳感器的溫度并根據暫存單元的數據顯示兩個(gè)溫度傳感器的溫度。編程思路:根據SIGN標志來(lái)判斷轉入不同的顯示,將查表所得的數據存入不同的單元并顯示在LED上。
4.3 鍵盤(pán)控制模塊
鍵盤(pán)通過(guò)設定SIGN標志來(lái)判斷設定第一個(gè)或者第二個(gè)溫度傳感器的最高溫或者最低溫,編程思路為:將SIGN初始設定為0,當第一個(gè)按鍵按下時(shí)將其賦為1,再次按下時(shí)加一,直到按到第5次重新賦值為0,根據SIGN的值確定進(jìn)行不同的設置。
4.4 溫度傳感器模塊
根據溫度傳感器DS18B20完成溫度轉換所必須經(jīng)過(guò)的3個(gè)步驟,程序:MOV A,#0CCH//跳過(guò)ROM MOV A,#44H / / 進(jìn)行溫度變換 MOV A,#0BEH//讀暫存存儲器內容。
4.5 報警模塊
當實(shí)時(shí)溫度高于設定的最高溫度時(shí)或者實(shí)時(shí)溫度低于設定的最低溫度時(shí),單片機會(huì )控制蜂鳴器或者電風(fēng)扇工作,判斷當前溫度是否在正常范圍的函數為COMPARE,高溫部分程序如下:
5.仿真測試
我們對DS18B20寫(xiě)入程序之前,必須調試自己的程序。但我們不能看到程序是怎樣運行的。因此我們可以用仿真機來(lái)仿真,通過(guò)仿真機我們可以看到DS18B20發(fā)送過(guò)來(lái)的數據,讀出來(lái)的溫度值,所利用寄存的值的變化。系統連接示意圖如下圖所示:
我們現在能把DS18B20所采集到的溫度在PC機上顯示出來(lái)并且每一個(gè)溫度值顯示后換一行。試驗證明了系統實(shí)用性強,達到了預定的功能。
6.總結
本方案中所設計的溫度控制器,采用AT89C51單片機作為內核,采用DS18B20作為溫度傳感器,通過(guò)四位LED顯示,通過(guò)循環(huán)掃描實(shí)現了兩路溫度的采集與顯示。然后又經(jīng)過(guò)過(guò)仿真測試證實(shí)了改設計方案經(jīng)濟適用,實(shí)用性強,能夠測量?jì)蓚€(gè)地方的溫度,滿(mǎn)足溫室大棚,室內家居,工業(yè)控制等不同環(huán)境下的使用。
蜂鳴器相關(guān)文章:蜂鳴器原理
評論