甕嘉民, 周成虎
(河南工程學(xué)院 電氣信息工程系,河南 鄭州 451191)
系統(tǒng)方案如圖1所示,主機(jī)和從機(jī)選用AT89S52單片機(jī),通過(guò)RS-485總線進(jìn)行數(shù)據(jù)通信.主機(jī)采用LCD2002顯示各從機(jī)的溫度和當(dāng)前時(shí)間,根據(jù)按鍵或無(wú)線遙控的輸入命令對(duì)控制溫度上限值、溫度報(bào)警值和當(dāng)前時(shí)間進(jìn)行設(shè)置,并通過(guò)RS-485總線傳遞溫度報(bào)警值給從機(jī)并讀取從機(jī)溫度.從機(jī)通過(guò)DS18B20采集.
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System frame chart
現(xiàn)場(chǎng)溫度利用LCD1602進(jìn)行顯示,通過(guò)RS-485總線接收溫度報(bào)警值,同時(shí)上傳溫度檢測(cè)值給主機(jī).
(1)液晶顯示功能.主機(jī)LCD2002液晶顯示從機(jī)1和從機(jī)2實(shí)時(shí)采集的溫度值、時(shí)間和日期如圖2所示.圖2(a)中第一行顯示的是從機(jī)1的溫度為28.0 ℃和當(dāng)前日期是2010年9月2日,第二行顯示的是從機(jī)2的溫度為34.0 ℃和當(dāng)前時(shí)間是16∶40∶15;圖2(b)中第一行顯示的日期是2010年9月2日和星期五,第二行顯示時(shí)間16∶38∶08和溫度上限值37 ℃.
圖2 主機(jī)液晶顯示界面Fig.2 Host computer LCD display panel
(2)DS1302實(shí)時(shí)時(shí)鐘功能[1].采用DS1302實(shí)時(shí)時(shí)鐘芯片進(jìn)行年、月、日、時(shí)、分、秒刷新.可以通過(guò)按鍵調(diào)整或者無(wú)線遙控調(diào)整時(shí)間,并具有系統(tǒng)掉電后啟用備用電池向DS1302繼續(xù)供電的功能,使用戶不必每次上電調(diào)整時(shí)間.
(3)AT24C02 掉電存儲(chǔ)功能[2].存儲(chǔ)用戶設(shè)定的溫度上限值和其他重要數(shù)據(jù).
(4)蜂鳴器報(bào)警功能.當(dāng)溫度大于等于用戶設(shè)定的上限值時(shí),主機(jī)蜂鳴器報(bào)警.
(5)自動(dòng)控溫.當(dāng)溫度大于等于用戶設(shè)定的上限值時(shí),繼電器吸合,控制電扇通風(fēng)降溫,同時(shí)繼電器接通指示燈亮.
(6)按鍵鍵盤(pán).按鍵8個(gè),其中SET、UP、DOWN和OUT是手動(dòng)仿真按鍵,SET_、UP_、DOWN_和OUT_是無(wú)線遙控[3]仿真按鍵.當(dāng)SET或SET_鍵按下后進(jìn)入調(diào)整模式,此時(shí)主機(jī)液晶顯示界面如圖2(b)所示,并且可以通過(guò)SET或SET_鍵切換進(jìn)入對(duì)溫度上限值、時(shí)間、星期、年月日的調(diào)整狀態(tài).當(dāng)進(jìn)入某種調(diào)整狀態(tài)時(shí)其對(duì)應(yīng)值會(huì)快速閃爍,通過(guò)UP鍵(或UP_)或者DOWN(或DOWN_)鍵進(jìn)行調(diào)整.調(diào)整完畢后按下OUT(或OUT_)鍵保存并退出調(diào)整模式.
以從機(jī)1為例進(jìn)行功能介紹.從機(jī)1通過(guò)DS18B20進(jìn)行溫度采集,然后通過(guò)LCD1602進(jìn)行顯示,如圖3所示.
圖3 從機(jī)LCD顯示Fig.3 Slave computer LCD display
第一行顯示主機(jī)發(fā)來(lái)的溫度上限值,第二行顯示從機(jī)1所在位置的溫度值.
從機(jī)2功能與從機(jī)1功能類(lèi)似.
主機(jī)AT89S52采用查詢方式[4],從機(jī)AT89S52采用中斷方式,具體協(xié)議如下:
(1)主機(jī)AT89S52發(fā)送查詢地址.
(2)從機(jī)AT89S52接收查詢地址,并與本從機(jī)地址比較,若相同則發(fā)送從機(jī)地址、采集溫度十位、采集溫度個(gè)位、采集溫度小數(shù)位及累加和校驗(yàn).
(3)主機(jī)AT89S52接收數(shù)據(jù).
(4)主機(jī)AT89S52發(fā)送溫度上限報(bào)警值十位、溫度上限報(bào)警值個(gè)位.
(5)從機(jī)AT89S52接收溫度上限報(bào)警值命令.
(6)主機(jī)AT89S52未查詢完所有的AT89S52,則返回(1)繼續(xù)查詢下一個(gè)從機(jī).
(7)通信速率9 600 bps,數(shù)據(jù)幀格式:1位起始位,9位數(shù)據(jù)位,1位停止位,即串行口工作于方式3.
(8)主機(jī)發(fā)送從機(jī)地址和溫度上限值采用奇校驗(yàn)(每幀數(shù)據(jù)的第8位(即D7)為奇校驗(yàn)位);主機(jī)接收從機(jī)發(fā)送的匹配地址和采集到的溫度值時(shí)采用累加和校驗(yàn).
(9)從機(jī)機(jī)接收主機(jī)發(fā)送的從機(jī)地址和溫度上限值采用奇校驗(yàn)(每幀數(shù)據(jù)的第8位(即D7)為奇校驗(yàn)位);從機(jī)發(fā)送匹配地址和采集到的溫度值時(shí)采用累加和校驗(yàn).
主機(jī)和從機(jī)主程序流程圖分別如圖4和圖5所示.圖4中,根據(jù)工作標(biāo)志取值的不同,主機(jī)進(jìn)行不同的工作,當(dāng)工作標(biāo)志為1時(shí),調(diào)參數(shù)調(diào)整函數(shù),具體調(diào)節(jié)過(guò)程見(jiàn)2.1.
圖4 主機(jī)主程序流程圖Fig.4 Host computer main program flow chart
圖5 從機(jī)主流程圖Fig.5 Slave computer main flow chart
整個(gè)系統(tǒng)的原理圖[5]和Proteus仿真結(jié)果見(jiàn)圖6.
從圖6可以看出,從機(jī)1當(dāng)前的溫度值為42.0 ℃,從機(jī)2當(dāng)前的溫度為34.0 ℃,溫度報(bào)警上限溫度值為39.0 ℃,主機(jī)與從機(jī)顯示的溫度一致,說(shuō)明Proteus仿真是完全正確的.
圖6 Proteus仿真圖Fig.6 Proteus simulation
本系統(tǒng)采用RS-485總線傳輸、DS18B20采集溫度和無(wú)線遙控(或手動(dòng))調(diào)節(jié)參數(shù)的方案,電路簡(jiǎn)單,工作穩(wěn)定,轉(zhuǎn)換精度高,便于控制.系統(tǒng)方案具有非常高的工程應(yīng)用價(jià)值,不僅可適用于冷庫(kù)的溫度控制,而且可適用于糧倉(cāng)、養(yǎng)雞場(chǎng)、蔬菜大棚、啤酒發(fā)酵罐、樓宇自動(dòng)化溫度控制等對(duì)溫度控制有嚴(yán)格要求的場(chǎng)所.
參考文獻(xiàn):
[1] 甕嘉民. 單片機(jī)應(yīng)用開(kāi)發(fā)技術(shù)——基于protes單片機(jī)仿真和C語(yǔ)言編程[M].北京:人民郵電出版社,2010.
[2] 王東鋒.單片機(jī)C語(yǔ)言應(yīng)用100例[M].北京:電子工業(yè)出版社,2009.
[3] 徐瑋,沈建良.單片機(jī)快速入門(mén)[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 劉同法.單片機(jī)外圍接口電路與工程實(shí)踐[M]. 北京:北京航空航天大學(xué)出版社,2009.
[5] 侯玉寶.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真[M].北京:電子工業(yè)出版社,2008.