AT89C51單片機(jī)在智能窗控制系統(tǒng)中的應(yīng)用
摘 要 本文采用AT89C51 單片機(jī), 對(duì)過(guò)去用中、小規(guī)模集成電路實(shí)現(xiàn)的智能窗控制電路進(jìn)行了改進(jìn), 使其更具實(shí)用性和智能性。本文對(duì)產(chǎn)品開(kāi)發(fā)者具有一定的啟迪意義。
一、引言
隨著電子技術(shù)的不斷發(fā)展, 家庭中的許多電器設(shè)備如彩電、冰箱、空調(diào)等都已貼上了智能化的標(biāo)簽, 為提高人們的生活質(zhì)量做出了貢獻(xiàn)。但遺憾的是, 居室的眼睛---窗戶, 卻遲遲未跟上時(shí)代的步伐。即使是在眾多的智能化生活小區(qū), 我們都可以發(fā)現(xiàn), 幾乎所有的窗戶的管理仍然處在原始管理方式, 與電子技術(shù)毫不沾邊, 更不用說(shuō)智能化了。如果使窗戶具有一定的智能, 如下雨則自動(dòng)關(guān)、室內(nèi)有害氣體超標(biāo)則自動(dòng)開(kāi)、有盜賊入內(nèi)則自動(dòng)報(bào)警等, 就會(huì)給人們的居家生活帶來(lái)諸多方便, 從而進(jìn)一步提高人們的生活質(zhì)量。
沿著這樣的思路, 我們?cè)O(shè)計(jì)了以AT89C51 單片機(jī)為中央控制器的智能窗控制系統(tǒng)。
該控制系統(tǒng)能通過(guò)其數(shù)據(jù)檢測(cè)傳感電路不斷循環(huán)檢測(cè)室內(nèi)溫度、濕度、有害氣體(如媒氣) 濃度等環(huán)境參數(shù),然后與由控制鍵盤預(yù)置的參數(shù)臨界值相比較, 從而作出開(kāi)/關(guān)窗、轉(zhuǎn)動(dòng)/停止換氣扇、降/升溫(濕) 等判斷, 再結(jié)合窗狀態(tài)檢測(cè)電路所檢測(cè)到的窗狀態(tài), 發(fā)出一系列的控制命令, 完成下雨則自動(dòng)關(guān)窗、室內(nèi)有害氣體超標(biāo)則自動(dòng)開(kāi)窗(同時(shí)轉(zhuǎn)動(dòng)換氣扇) 、恒溫(濕) 等自動(dòng)控制功能。人們還可通過(guò)控制鍵盤, 直接控制窗戶的開(kāi)/關(guān)、換氣窗的轉(zhuǎn)/停、溫(濕) 的升/降、選擇所顯示參數(shù)的種類等。
二、系統(tǒng)組成和部分電路設(shè)計(jì)
本控制系統(tǒng)主要由AT89C51 單片機(jī)組成的中央控制器, 數(shù)據(jù)檢測(cè)傳感電路, A/D 轉(zhuǎn)換器, 窗驅(qū)動(dòng)控制接口電路、窗驅(qū)動(dòng)電路等組成。其系統(tǒng)框圖如圖一所示。
圖1 系統(tǒng)框圖
中央控制器
中央控制器以美國(guó)ATMEL 公司的AT89C51 單片機(jī)為核心。
1. AT89C51 單片機(jī)系統(tǒng)具有設(shè)計(jì)簡(jiǎn)單、性能可靠、功耗低等優(yōu)點(diǎn)。它為用戶預(yù)留下足夠的軟、硬件資源, 可供用戶進(jìn)行再開(kāi)發(fā)應(yīng)用。該系統(tǒng)除內(nèi)部已有的4K Flash 存儲(chǔ)器外, 還可以擴(kuò)展選址64KROM區(qū)和64KRAM區(qū), 供用戶使用。用戶在系統(tǒng)開(kāi)發(fā)時(shí), 可以將自己的數(shù)據(jù)塊和程序段、數(shù)據(jù)表, 以若干控制子程序、數(shù)據(jù)塊形式存放于AT89C51 單片機(jī)的擴(kuò)展ROM或RAM區(qū)中, 以便系統(tǒng)工作時(shí)重復(fù)使用和反復(fù)調(diào)用。由于本應(yīng)用系統(tǒng)主要用于溫度、濕度、有害氣體識(shí)別、防盜安全的定點(diǎn)和多點(diǎn)測(cè)試, 片內(nèi)4K Flash 存儲(chǔ)器已能滿足系統(tǒng)設(shè)計(jì)要求。
2. AT89C51 單片機(jī)機(jī)有三級(jí)程序存儲(chǔ)器加密。利用該功能可防止別人非法復(fù)制程序, 從而保護(hù)知識(shí)產(chǎn)權(quán)。
3. AT89C51 單片機(jī)還為用戶預(yù)置了P0、P1、P2、P3 四個(gè)并行I/O 口, 為該系統(tǒng)的數(shù)據(jù)采集和控制提供了足夠的端口資源。
4. AT89C51 單片機(jī)還為用戶提供一組全雙工串行數(shù)據(jù)傳輸端口, 可用于單片機(jī)系統(tǒng)間的遠(yuǎn)程數(shù)據(jù)信息交換。
本系統(tǒng)采用P0 數(shù)據(jù)采集、控制端口, 完成控制信息的采集和控制功能。
P110~P113 作為窗狀態(tài)檢測(cè)端口, 完成對(duì)窗狀態(tài)(即窗是否移到邊框) 的檢測(cè)。
數(shù)據(jù)檢測(cè)傳感電路
數(shù)據(jù)檢測(cè)傳感電路由四個(gè)部分組成: 1) 溫度傳感電路; 2) 濕度傳感電路; 3) 有害氣體傳感電路; 4) 紅外防盜傳感電路。
為了討論問(wèn)題方便, 我們以溫度傳感電路為例進(jìn)行分析。通常, 在自然情況下, 窗戶的開(kāi)關(guān)與生活環(huán)境和人體的舒適度有關(guān), 溫度的測(cè)試是該系統(tǒng)設(shè)計(jì)的關(guān)鍵。為了較好地測(cè)出溫度參數(shù), 我們選用集成溫度傳感器AD590(可測(cè)-55~+150 ℃) , 其溫度檢測(cè)完全可以滿足要求。基本電路如圖二所示。
圖2 基本電路
A/D 轉(zhuǎn)換器
為了便于與AT89C51 單片機(jī)相連接, 同時(shí)又有利于系統(tǒng)設(shè)計(jì), A/D 轉(zhuǎn)換器選用了ADC0809.其分辨率為8 位,不必進(jìn)行零點(diǎn)和滿度調(diào)整。單一電源( + 5V) 供電, 模擬量輸入范圍0 -5V.轉(zhuǎn)換速度取決于芯片的時(shí)鐘頻率。
時(shí)鐘頻率范圍為10 -500KHZ.ADC0809 有八路模擬量輸入, 在本系統(tǒng)中只用4 路輸入, 即可完成溫度等4 種被測(cè)模擬量的A/D 轉(zhuǎn)換。利用單片機(jī)對(duì)FOH口的數(shù)據(jù)寫啟動(dòng)A/D 轉(zhuǎn)換器, A/D 轉(zhuǎn)換結(jié)束ADC0809 的EOC 向AT89C51 發(fā)出中斷請(qǐng)求信號(hào), CPU 再響應(yīng)中斷請(qǐng)求信號(hào), 通過(guò)對(duì)FOH 口的讀操作, 讀取轉(zhuǎn)換結(jié)果并送到被測(cè)量的相應(yīng)存儲(chǔ)區(qū)。
在重新選擇被測(cè)量(修改各相關(guān)指針) , 并再次啟動(dòng)A/D 轉(zhuǎn)換后中斷返回。A/D 轉(zhuǎn)換器電路如圖三所示。
圖3 A/D 轉(zhuǎn)換器電路
窗驅(qū)動(dòng)電路
我們可以根據(jù)驅(qū)動(dòng)信號(hào)與所控對(duì)象的關(guān)系, 將窗驅(qū)動(dòng)電路分解為: 移窗驅(qū)動(dòng)電路; 換窗驅(qū)動(dòng)電睡; 窗鎖驅(qū)動(dòng)電路; 溫度調(diào)節(jié)驅(qū)動(dòng)電路; 濕度調(diào)節(jié)驅(qū)動(dòng)電路; 換氣扇驅(qū)動(dòng)電路; 報(bào)警驅(qū)動(dòng)電路等, 分別用它們?nèi)タ刂? 個(gè)對(duì)象。
窗狀態(tài)檢測(cè)電路
可考慮采用4 個(gè)開(kāi)關(guān)型磁敏器件。外窗、內(nèi)窗所對(duì)應(yīng)的左、右墻框各1 個(gè)。在外窗、內(nèi)窗的左、右邊上與磁敏器件相對(duì)應(yīng)的地方各貼上一小片磁鐵。當(dāng)小磁鐵隨窗戶的移動(dòng)而移近相對(duì)應(yīng)的磁敏器件時(shí), 該磁敏器件的輸出信號(hào)從高電平變?yōu)榈碗娖剑?表示窗戶已移到相應(yīng)邊上。
鍵盤輸入及顯示電路
可采用Intel 公司生產(chǎn)的8279 通用可編程鍵盤顯示器接口芯片。利用8279 , 可實(shí)現(xiàn)對(duì)鍵盤顯示器的自動(dòng)掃描,并識(shí)別鍵盤上閉合鍵的鍵號(hào), 大大節(jié)省單片機(jī)對(duì)鍵盤顯示器的操作時(shí)間, 從而減輕單片機(jī)的負(fù)擔(dān)。該鍵盤輸入及顯示電路具有顯示穩(wěn)定, 程序簡(jiǎn)單, 不會(huì)出現(xiàn)誤動(dòng)作等優(yōu)點(diǎn)。
對(duì)于控制鍵盤, 可考慮采用微動(dòng)開(kāi)關(guān)制作并安裝在窗戶的固定邊框上。通過(guò)控制鍵盤, 用戶不但可設(shè)置各環(huán)境參數(shù)的臨界值, 還可隨意選擇所顯參數(shù)的種類, 并直接控制窗戶的開(kāi)/關(guān)、換氣扇的轉(zhuǎn)/停、溫(濕) 的升/降等。
三、軟件設(shè)計(jì)
該控制系統(tǒng)的軟件主要由一個(gè)主程序和兩個(gè)中斷服務(wù)程序等所組成。
主程序
主程序的主要作用是在系統(tǒng)復(fù)位后對(duì)系統(tǒng)進(jìn)行初始化, 如設(shè)置8279、ADC0809 等的工作方式和初始狀態(tài), 設(shè)置各中斷的優(yōu)先級(jí)別并開(kāi)中斷, 以及首次啟動(dòng)A/D 轉(zhuǎn)換等, 然后向8279 循環(huán)送顯示字符。
讀鍵值中斷服務(wù)程序
讀鍵值中斷服務(wù)程序的主要作用是在AT89C51 響應(yīng)中斷(有鍵按下則產(chǎn)生該中斷) 后, 讀出鍵值, 并根據(jù)鍵值從P0 口依序發(fā)出相應(yīng)的控制命令字, 完成相應(yīng)的控制功能。該中斷應(yīng)設(shè)為高優(yōu)先級(jí)。
循環(huán)檢測(cè)及A/D 轉(zhuǎn)換中斷服務(wù)程序
該中斷服務(wù)程序的主要作用是在AT89C51 響應(yīng)中斷(A/D 轉(zhuǎn)換結(jié)束時(shí)EOC 引腳輸出高電平, 從而產(chǎn)生該中斷) 后, 將A/D 轉(zhuǎn)換結(jié)果送相應(yīng)存儲(chǔ)區(qū), 然后判斷該轉(zhuǎn)換結(jié)果是否在上、下限值之間, 并根據(jù)判斷結(jié)果依序發(fā)出相應(yīng)的控制命令字, 完成相應(yīng)的控制、報(bào)警功能。然后重新選擇被轉(zhuǎn)換量, 再次啟動(dòng)A/D 轉(zhuǎn)換后返回主程序。
該中斷應(yīng)設(shè)為低優(yōu)先級(jí)。并設(shè)為電平觸發(fā)方式。
程序流程圖如下:
圖4 程序流程圖
評(píng)論