51單片機(jī)在智能窗控制系統(tǒng)中的應(yīng)用
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è)開關(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)開關(guān)制作并安裝在窗戶的固定邊框上。通過(guò)控制鍵盤, 用戶不但可設(shè)置各環(huán)境參數(shù)的臨界值, 還可隨意選擇所顯參數(shù)的種類, 并直接控制窗戶的開/關(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í)別并開中斷, 以及首次啟動(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)論