PIC單片機在中央空調控制器中的應用
1 引 言
本文引用地址:http://www.104case.com/article/172143.htm中央空調控制器有別于普通空調控制器。普通空調控制器安裝于室內掛機內,對控制器尺寸要求不高,采用任何單片機加上外擴,不管多少外圍器件都沒問題。但中央空調控制器由于沒有可放置的室內機,所以只能單獨放置,這樣,就要求控制器小巧精致。本設計中,用戶要求設計的控制器尺寸與一般的家用開關面板大小相仿,上面排布七個按鍵,十個LED發光指示和一個溫度顯示,功能上還有遙控、兩路溫度采樣等。
2 系統硬件設計
根據用戶要求,我們進行了初步設計。在排布組件時,我們就發現,這么小的空間,放上面板所需的鍵盤、顯示后,只留下了一片單片機的位置,那么A/D、紅外遙控譯碼和外圍驅動電路怎么放?經過比較,我們最終選擇了PIC單片機。在開發階段使用PIC16F877,以后還可改為PIC16C74,以降低產品成本。
PIC16F877應用于本系統具有以下優勢:
·自帶10位多通道模數轉換器,因而無須增加外圍模數轉換器;
·有三個定時器,有足夠的時鐘可用,因為空調控制最重要的部分就在時鐘上,而且實現紅外遙控的軟件解碼亦需定時器。
設計中,為了減少驅動要求,全部采用低電平有效,這樣就進一步減少了外圍器件對空間的要求。
圖1中,RA3引腳由于模數轉換的設置限制而不能使用,RC0、RC1引腳由于時鐘定義限制而不能使用。
3 系統軟件設計
3.1 總體設計方案
系統主程序非常簡單,主要執行一個任務,就是鍵盤掃描檢測,因為PIC16F877只有一個外部中斷引腳,為實現紅外遙控軟解碼,鍵盤須采用掃描查詢方式。本系統的技術方案主要集中在紅外遙控軟件解碼和時鐘控制上。
3.2 紅外遙控軟件解碼
紅外遙控采用HOLTEK公司的HT6221多功能編碼芯片,該公司公布的資料顯示,該芯片采用PPM進行編碼,HT6221每發送一個碼,先送出一個 9ms的頭碼和4.5ms的間隙,然后依次送出16位的地址碼(18ms~36ms)、8位數據碼(9ms~18ms)和8位數據反碼,圖2給出了 DOUT引腳上輸出的格式。
數據的識別為:1.12ms為 0,2.24ms為1,如圖3所示。這樣,紅外遙控軟件解碼需設計一時鐘,與中斷同步計數就可識別了。本系統的系統時鐘為4MHz,為了便于識別數據值,我們確定:時鐘中斷為0.28ms。其基本工作原理為:通過判斷兩次外部中斷間時鐘中斷的次數(即時間值)來解碼。基本算法如下:
3.3 時鐘控制設計
時鐘中斷設計是本系統的重點,系統每一部分功能幾乎都圍繞時鐘進行,例如:制冷室內風機起動20秒后壓縮機外風機才起動,溫度到時,壓縮機關機20秒后關風機,壓縮機停機后三分鐘才能再開;按鍵調溫度,5秒停止按鍵后恢復,并顯示溫度,LED要閃爍。各種模式下,除了本身控制需要的時間要求外,還有許多為保護系統而設的時鐘要求。經過對系統的仔細分析,設計方案主要從兩個方面著手:
一是處理好各種狀態,為此,為每種狀態都定義狀態標志如下:
系統的四種切換模式定義狀態,定義名為mode
上面列出了系統所定義的狀態,正是有了這些狀態的幫助,才方便了時間控制的處理。
二是經分析,時鐘的要求盡管多,但都為秒、分、時,所以就設計了一個真正的“時鐘”,把“秒”的控制放在“秒”一段,“分”的放在“分”一段,“時”的放在“時”一段,結合上面的狀態,使控制邏輯非常清晰。下面給出算法示意:
時鐘中斷服務程序
Secs++“秒”計數
If Secs6
goto sec-1 如果不到1分鐘,處理“秒”程序段
else
{
以上程序是用匯編語言實現的,為了清晰及減少篇幅,這里改用算法描述來說明。
評論