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