新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機在智能窗控制系統中的應用

        51單片機在智能窗控制系統中的應用

        作者: 時間:2011-11-24 來源:網絡 收藏

          A/D 轉換器

          為了便于與AT89C51 單片機相連接, 同時又有利于系統設計, A/D 轉換器選用了ADC0809.其分辨率為8 位,不必進行零點和滿度調整。單一電源( + 5V) 供電, 模擬量輸入范圍0 -5V.轉換速度取決于芯片的時鐘頻率。

          時鐘頻率范圍為10 -500KHZ.ADC0809 有八路模擬量輸入, 在本系統中只用4 路輸入, 即可完成溫度等4 種被測模擬量的A/D 轉換。利用單片機對FOH口的數據寫啟動A/D 轉換器, A/D 轉換結束ADC0809 的EOC 向AT89C51 發出中斷請求信號, CPU 再響應中斷請求信號, 通過對FOH 口的讀操作, 讀取轉換結果并送到被測量的相應存儲區。

          在重新選擇被測量(修改各相關指針) , 并再次啟動A/D 轉換后中斷返回。A/D 轉換器電路如圖三所示。

        51單片機在智能窗控制系統中的應用

        圖3 A/D 轉換器電路

          窗驅動電路

          我們可以根據驅動信號與所控對象的關系, 將窗驅動電路分解為: 移窗驅動電路; 換窗驅動電睡; 窗鎖驅動電路; 溫度調節驅動電路; 濕度調節驅動電路; 換氣扇驅動電路; 報警驅動電路等, 分別用它們去控制1 個對象。

          窗狀態檢測電路

          可考慮采用4 個開關型磁敏器件。外窗、內窗所對應的左、右墻框各1 個。在外窗、內窗的左、右邊上與磁敏器件相對應的地方各貼上一小片磁鐵。當小磁鐵隨窗戶的移動而移近相對應的磁敏器件時, 該磁敏器件的輸出信號從高電平變為低電平, 表示窗戶已移到相應邊上。

          鍵盤輸入及顯示電路

          可采用Intel 公司生產的8279 通用可編程鍵盤顯示器接口芯片。利用8279 , 可實現對鍵盤顯示器的自動掃描,并識別鍵盤上閉合鍵的鍵號, 大大節省單片機對鍵盤顯示器的操作時間, 從而減輕單片機的負擔。該鍵盤輸入及顯示電路具有顯示穩定, 程序簡單, 不會出現誤動作等優點。

          對于控制鍵盤, 可考慮采用微動開關制作并安裝在窗戶的固定邊框上。通過控制鍵盤, 用戶不但可設置各環境參數的臨界值, 還可隨意選擇所顯參數的種類, 并直接控制窗戶的開/關、換氣扇的轉/停、溫(濕) 的升/降等。

          三、軟件設計

          該控制系統的軟件主要由一個主程序和兩個中斷服務程序等所組成。

          主程序

          主程序的主要作用是在系統復位后對系統進行初始化, 如設置8279、ADC0809 等的工作方式和初始狀態, 設置各中斷的優先級別并開中斷, 以及首次啟動A/D 轉換等, 然后向8279 循環送顯示字符。

          讀鍵值中斷服務程序

          讀鍵值中斷服務程序的主要作用是在AT89C51 響應

        51單片機在智能窗控制系統中的應用

        中斷(有鍵按下則產生該中斷) 后, 讀出鍵值, 并根據鍵值從P0 口依序發出相應的控制命令字, 完成相應的控制功能。該中斷應設為高優先級。

          循環檢測及A/D 轉換中斷服務程序

          該中斷服務程序的主要作用是在AT89C51 響應

        51單片機在智能窗控制系統中的應用

        中斷(A/D 轉換結束時EOC 引腳輸出高電平, 從而產生該中斷) 后, 將A/D 轉換結果送相應存儲區, 然后判斷該轉換結果是否在上、下限值之間, 并根據判斷結果依序發出相應的控制命令字, 完成相應的控制、報警功能。然后重新選擇被轉換量, 再次啟動A/D 轉換后返回主程序。

          該中斷應設為低優先級。并設為電平觸發方式。

          程序流程圖如下:

        51單片機在智能窗控制系統中的應用

        圖4 程序流程圖


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 康马县| 中西区| 乐业县| 塘沽区| 庄河市| 汶川县| 北辰区| 志丹县| 安国市| 凉城县| 寿光市| 青海省| 大安市| 岑溪市| 宜都市| 奉节县| 银川市| 泸定县| 桐柏县| 寿宁县| 任丘市| 定州市| 漾濞| 宝兴县| 柘荣县| 中西区| 桂平市| 定州市| 双流县| 安达市| 镇远县| 闽侯县| 余庆县| 凤台县| 达尔| 柏乡县| 丹阳市| 东兰县| 昔阳县| 蓬莱市| 无棣县|