多點溫度監(jiān)控系統(tǒng)的設(shè)計
2.1.3 輸出控制電路
上位機向下位機發(fā)送命令和預(yù)置溫度,下位機接收到之后,解析命令,并將預(yù)置溫度與實際溫度比較,根據(jù)命令和比較結(jié)果,利用P3.5口控制調(diào)溫設(shè)備。當P3.5輸出低電平時,U1導(dǎo)通發(fā)光,使晶體管導(dǎo)通,從而T1導(dǎo)通,驅(qū)動繼電器K工作,使調(diào)溫設(shè)備導(dǎo)通工作。當P3.5為高電平時,U1不導(dǎo)通,晶體管不導(dǎo)通,T1也截止,繼電器不通電,調(diào)溫設(shè)備不工作。
2.2 上位機電路
上位機電路包括RS 485總線接口電路、鍵盤電路和液晶顯示電路。其中總線接口電路與下位機總線接口電路基本一致。其電路原理圖如圖3所示。下面介紹鍵盤電路和顯示電路。本文引用地址:http://www.ex-cimer.com/article/173748.htm
2.2.1 鍵盤電路
上位機電路中提供6個按鍵用于溫度設(shè)置、溫度查詢、系統(tǒng)時間設(shè)置、工作/待機設(shè)置。它們是“ON/OFF”鍵、“+”鍵、“―”鍵、“SET”鍵、“ENQ”鍵、“TIME”鍵,分別與AT89S51的P2.0,P2.1,P2.2,P2.3,P2.4,P2.5相連。“SIET”鍵用于選擇下位機,之后可按“ON/OFF”鍵使對應(yīng)的下位機工作/待機,也可按“+”,“一”鍵給該分機設(shè)置預(yù)置溫度。“ENQ”鍵用于查詢下位機的預(yù)置溫度、實際溫度值和調(diào)溫設(shè)備運轉(zhuǎn)狀態(tài)。設(shè)置系統(tǒng)時間需先按“TIME”鍵選擇時或分,然后利用“+”,“一”鍵設(shè)置系統(tǒng)時間。
2.2.2 顯示電路
上位機系統(tǒng)采用16×2字符型液晶模組(LCM),其為按鍵操作提供可視化依據(jù),內(nèi)部集成了LCD控制器、LCD驅(qū)動器、LCD顯示裝置。LCM與單片機的接口電路比較簡單,單片機的P1口接LCM的數(shù)據(jù)總線,P3.5,P3.6,P3.7用于控制LCM。LCM的第一行顯示系統(tǒng)時間,第二行顯示分機的設(shè)置溫度、實際溫度和工作狀態(tài)。如果在1 m內(nèi)沒有任何操作,則液晶顯示屏上開始循環(huán)顯示各個點的實際溫度值、預(yù)置溫度值以及工作狀態(tài),每一個點的數(shù)據(jù)在液晶屏上顯示的時間是8 s。
3 RS 485通信協(xié)議
為實現(xiàn)上位機與多臺下位機通信可靠穩(wěn)定,上位機與下位機通信波特率都為9 600 b/s,通信方式均為串行工作方式3,每幀通信數(shù)據(jù)包括1個起始位,1個停止位,8個數(shù)據(jù)位,1個奇校驗位。通信模式采用主/從方式,上位機為主機,下位機為從機,主機地址為1,從機地址是2,3,4,…;主機與從機之間采用一問一答方式,從機之間不能相互通信。每個上行/下行的數(shù)據(jù)包的字節(jié)個數(shù)都是一樣的,從機收到數(shù)據(jù)包后向主機回復(fù)一個數(shù)據(jù)包。每個數(shù)據(jù)包長度為4 B,下行數(shù)據(jù)包格式:地址信息(1 B)、命令信息(1 B)、溫度設(shè)置值(1 B)、檢驗碼(1 B);上行數(shù)據(jù)包格式:主機地址信息(1 B)、命令應(yīng)答信息(1 B)、實測溫度值(1 B)、檢驗碼(1 B)。命令信息和命令應(yīng)答信息就是指從機的工作狀態(tài)。
主機采用輪詢方式訪問各從機,在發(fā)出指令后,主機進入查詢狀態(tài),等待從機應(yīng)答。從機不斷查詢總線,如主機訪問地址與從機地址相符,并且校驗通過,則執(zhí)行指令,并保存設(shè)置溫度值,然后將相關(guān)信息以上行數(shù)據(jù)包格式發(fā)回主機。如不是本機地址或校驗碼錯誤,則丟棄指令及數(shù)據(jù)。傳輸過程中的誤碼校驗采用校驗和的方式,即先將要發(fā)送的數(shù)據(jù)包的所有字節(jié)相加,然后截短到一個字節(jié)長度。
4 系統(tǒng)軟件設(shè)計
4.1 下位機程序設(shè)計
下位機程序主要包括DSl8820傳感器溫度采集子程序、串行通信子程序、輸出控制子程序。主程序循環(huán)調(diào)用溫度采集子程序和輸出控制子程序,利用串行中斷來接收上位機發(fā)送的信息并回復(fù)主機(上位機),接收數(shù)據(jù)包的長度是4 B,發(fā)送數(shù)據(jù)包的長度也是4 B。其串行中斷接收發(fā)送程序流程圖如圖4所示。
4.2 上位機程序設(shè)計
上位機程序主要包括鍵盤掃描子程序、串行通信子程序、液晶顯示子程序。
利用T0產(chǎn)生50 ms定時中斷來進行時間換算、實時更新液晶顯示屏上的信息;在主程序中利用循環(huán)來查詢按鍵、向下位機發(fā)送數(shù)據(jù);利用串行中斷來接收下位機的回復(fù)數(shù)據(jù)。上位機接收數(shù)據(jù)過程與下位機接收數(shù)據(jù)過程一樣,其主程序流程圖如圖5所示。系統(tǒng)采用一問一答的通信方式,上位機是主機,在向從機(下位機)發(fā)送完數(shù)據(jù)之后要調(diào)用延時程序等待從機的回復(fù)。
5 結(jié) 語
該系統(tǒng)能夠?qū)崿F(xiàn)多點溫度檢測控制,操作方便,配置簡單,有效地節(jié)省了人力物力,實現(xiàn)自動化,具有通用性,可用于多種場合,具有很好的實用價值。
評論