家電控制的智能化已成為社會需求的新趨勢。基于微機控制系統的智能化家電使我們的生活更加便利。而是否能夠實現遠程家電的開關控制。又是否能夠隨時查詢電器的工作狀況,或者能夠事先對家電的定時開關做出控制。又成為越來越感興趣的研究方向。家電產品現已進入成熟期和穩定期。市場規模穩步上漲,但競爭日愈劇烈,其核心部件。即控制器性能及質量對企業產品的影響很大。同時,經濟快速發展,人們對于家庭生活的舒適程度也提出了越來越高的要求,尤其體現在家電的便捷方面。在這個背景下,可以自主控制的家電控制系統,就逐漸顯示出競爭力,這也符合時代發展的客觀需要。隨著中國經濟的快速穩步增長和迅速發展,家電廠家越來越意識到被喻為家電“芯片”的家電控制器的重要性,因而紛紛與專業的研發公司或廠家合作,開發符合市場需求的、具有行業領先水平的控制器。 目前。關于家電控制器的研究和設計方案提出的很多,但仍有許多問題尚待解決,如沒有統一的互操作規范等。但是,一些領先技術已經開始被應用于今天的家電控制領域。如:電話遠程控制、紅外線遙控、語音識別等等。如將語音識別技術應用到電器產品,來實現語音提示操作,從而使系統具有更加良好的操作界面等。隨著相關技術不斷進步,互操作型智能家電必將向著調度智能化、靈活性和互操作性的方向發展。從而進入尋常百姓家。 1 硬件設計 本設計主要基于AT89S52單片機,并通過C語言來實現多路家電的即時開關控制、定時進行開關操作以及工作狀態返回等三個功能程序,并以此為基礎。結合帶有HJPC5l-B的單片機開發系統來進行硬件調試。完成該基本要求以后,還可考慮加入外接鍵盤或外接存儲器以及ISD語音芯片,并添加錄放音程序,從而實現家電語音提示的控制。 本設計采用的硬件芯片為AT89S52芯片,同時選用了8盞綠色LED指示燈,8塊LED數碼顯示管,其中3個分別與單片機的INTl、T0、Tl相連,以用來接收外部信號的按鍵。另外還使用了一個74LS245模塊和兩個74ALS573模塊。整個硬件的核心是AT89S52芯片。該芯片的 P1.0~P1.7口通過74LS245與8盞LED燈相連,這8盞指示燈在即時開關中起到直接顯示的作用,而在定時開關中兼有故障檢驗功能。 P0.0~P0.7口和P2.0~P2.7口分別通過兩個74ALS573模塊與八個LED數碼顯示管相連。8個數碼管中,左起第一個用來指示具體某一路電器的開關狀態,第二個指示哪一路電器被選中,第三和第四個顯示小時數,第五和第六個顯示分鐘,第七和第八個顯示秒數。另外,硬件電路中還特別配備了小燈,可作為按鍵是否按下的標志。 2 軟件設計 2.1 即時開關與狀態返回 即時開關與狀態返回都是在初始時按KEYl鍵進入操作的,完成此功能,需要調用鍵盤讀取子程序、燈泡開關子程序、數碼管顯示子程序、延時予程序等組合。其中鍵盤讀入子程序是整個軟件的基礎,在鍵盤沒有按鍵按下時,KEYl、KEY2、KEY3始終保持高電平,此時KEY值為0X38。而當某一個鍵被按下時,則該鍵位出現低電平。此時的KEY值必然出現變化,這樣,將該值與0X38相與,然后根據得出的新值,就可以判斷哪一個鍵被按下。 軟件通常首先運行讀取鍵盤程序,當數碼管顯示哪一路被選中后,再次讀取鍵盤,以顯示該路電器的工作狀態,并根據外部輸入決定開關操作。由于需要同時完成兩個功能,所以,在程序中。設定KEY2和KEY3對電器進行操作,而KEY1用來在狀態返回功能完成以后,指示該功能的結束,并開始即時開關功能。具體來說,就是先檢測哪個電器對應的按鍵被按下,然后調用顯示子程序在數碼管中顯示被選中的電器編號。狀態返回部分是檢測特定電器對應的管腳輸出為低電平還是高電平,若輸出為低電平,則調用顯示0的數碼顯示子程序,反之則調用顯示1的數碼顯示子程序。即時開關則可在按下電器對應的按鍵以后,將該電器(這里就是小燈泡)連接的Pl的某個端口進行取反操作,即工作狀態反向。 2.2 時間顯示 在確定KEY2按鍵被按下以后,程序將自動調用數碼顯示,并循環調用周期為1s的中斷程序,如果需要設定時間,則可通過外部輸入調用時間設定子程序來對時間進行調整。通過外部按鍵可改變秒、分鐘、小時所對應的變量的值,并將其帶入數碼顯示程序,在數碼管中顯示。在數碼顯示部分,應先確定段選和位選位,由于有秒、分鐘、小時三個部分,故需要連續6個顯示管,所以,在程序中要設定從第一個開始的6次循環,每次分別將選中的數碼管的序號送到位選端,并將秒、分鐘、小時所對應的變量的值作為實參送到段選端,從而使數碼管依次顯示對應的時間信息。 2. 3 定時開關 通過定時開關可在初始時按KEY3鍵進入操作。該功能是整個設計的核心和難點,綜合運用到了之前幾種功能的設計思想。這里也有一個定時中斷子程序,但與之前以ls為基準、一分鐘循環60次的固定模式不同的是,這是在事先不清楚用戶的定時時間的情況下進行的,所以是以1分鐘為基數,即定時時間間隔必須為1分鐘的整數倍,但循環次數卻是一個全局變量。這個全局變量的值可通過用戶按鍵來實現。根據程序設定,若按下KEYl,則表示將該全局變量的值加60,若按下 KEY2,則表示將該全局變量的值加1,即KEYl代表1小時,KEY2代表1分鐘。此后若再按下KEY3,則表示設定結束,此時全局變量的值表示進行1 分鐘的定時的次數,在定時結束時,將該電器(這里就是小燈泡)連接的P1的某個端口進行取反操作,即可完成開關。這一功能的子程序流程圖如圖1所示。 3 系統功能分析 3.1 即時開關與狀態返回功能 按下KEYl鍵,即可進入即時開關與狀態返回功能。此時數碼顯示管和LED燈都沒有變化,用戶可以選擇按下KEY2和KEY3中的任意一個,來選擇其中一盞燈泡(模擬一路電器)作為操作對象。現以按下KEY2為例,則左起第二個數碼管顯示“2”,同時左起第6盞LED小燈亮,表示KEY2確實被按下(此處可用于故障檢驗)。 3.2 時間顯示與設定功能 時間顯示功能可在初始通電以后按下KEY2鍵開始執行。在按下KEY3鍵以后,數碼管從左起第三個開始,到第八個為止。分別顯示小時、分鐘、秒數,用戶可以根據需要設定時間,按下KEY3,則小時數加一,按下KEY2,則分鐘數加一。該鍵還帶有自動進位功能。整個數碼管時間顯示的極限是23時59分59 秒。 3.3 定時開關功能 定時開關功能是在初始通電以后按下KEY3鍵開始進行的。初始數碼管從左起第三個開始,到第八個為止,全部顯示為“0”,以等待按鍵輸入設定時間。此時,按下KEYl,則小時顯示加1,并定時中斷程序中,全局變量值加60;按下KEY2,分鐘顯示加1,定時中斷程序中,全局變量值加l;再次按下KEY3,即進入中斷定時子程序,開始定時。定時結束以后,所指定的那個電器開關狀態取反。在定時結束時,對應的LED自動點亮。 3.4 功能拓展與強化 該系統的現有功能還比較基礎,主要局限在對于電器的開關操作中。比較現實的改進方案是加入語音提示功能。使用戶在每次按鍵以前都可以有語音提示,如果出現錯誤按鍵,還可以有語音提示糾錯。再有就是擴展鍵盤,現在的鍵盤數量的限制不僅使可操作的電器數量有限,還制約了控制系統的功能。在加入按鍵以后,除了可控電器數量會提升,還可以附加諸如分層次調節。在條件更好的情況下,也可以增加電話遠程控制,使某個固定號碼與控制系統相連,這樣,當用戶在較遠處時,就可以通過網絡與系統連接,并根據事先在程序中的設定,通過電話上的不同按鍵實現系統中按鍵的效果。從而完成遠程家電的控制。 4 結束語 按照上述軟硬件的分析。可在充分了解AT89S52單片機的基礎上,基本實現帶有即時開關、狀態返回、時間顯示與設定、定時開關等多種功能的多路家電控制系統。用戶可以根據自己需要選擇相應電器,了解其工作狀態,自主設定時間進行通斷操作。同時,這個系統還具有良好的拓展性,因此可以加入語音提示、多功能控制、甚至遠程控制等后續功能。 |