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