《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 單片機(jī)在家電控制系統(tǒng)中的應(yīng)用

單片機(jī)在家電控制系統(tǒng)中的應(yīng)用

2009-01-21
作者:曾虹虹 周祖成 黃德豐

  摘? 要: 介紹一種采用單片機(jī)SST86542R作為控制核心的家電控制系統(tǒng),其與市場上的同類產(chǎn)品相比,減少了硬件資源,,在成本和功耗方面有較大的改進(jìn),。

  關(guān)鍵詞: 單片機(jī)? SST86542R芯片

?

  從對家電的控制手段來看,經(jīng)歷了兩個階段。在上世紀(jì)70年代到80年代,家用電器基本上屬于機(jī)電控制功能型。進(jìn)入90年代,,家用電器出現(xiàn)了智能化,轉(zhuǎn)向電腦控制的智能型家電,。這種智能型家電一般通過微控制器(即單片機(jī))實現(xiàn)對家電的控制操作,。未來的家電將實現(xiàn)網(wǎng)絡(luò)化,Bluetooth,、HomeRF以及IEEE802.15等標(biāo)準(zhǔn)的制定表明了這個趨勢,。本文以一種家電冷風(fēng)扇為例,介紹單片機(jī)在家電控制系統(tǒng)中的應(yīng)用,。家電冷風(fēng)扇是一種能模擬空調(diào)輸出冷風(fēng)的電風(fēng)扇,,其控制核心采用SST86542R單片機(jī)。

1 系統(tǒng)構(gòu)成和核心接口電路的工作原理

  設(shè)計家電控制器的核心是成本,、功耗的控制?,F(xiàn)在市場上的同類產(chǎn)品中需要的硬件資源比較多,包括一個MCU和一個三-八譯碼器,,其中三-八譯碼器用于擴(kuò)展I/O端口,。實際上,在一般MCU的I/O端口足夠的情況下,,可以充分利用MCU,,采用軟件編碼模塊完全代替三-八譯碼器,,從而降低成本和功耗。

1.1 用戶端的輸入信號源和輸出信號源

  冷風(fēng)扇除了具有普通電風(fēng)扇的基本功能外,,還有一個最重要的功能——冷風(fēng)功能,,用于選擇是否冷風(fēng)輸出??刂乒δ苄枰獌蓚€水位信號源——缺水(L),、水滿(H),輸出信號一個,。

  從用戶使用方面來講,,有下列輸入源和輸出源。

  輸入源:

  · 6個鍵盤:關(guān)機(jī),、開機(jī)/風(fēng)速、風(fēng)類,、導(dǎo)風(fēng),、定時和冷風(fēng);

  · 6個紅外遙控功能鍵:與鍵盤相對應(yīng);

  · 2個水位信號。

??? 輸出源:

  · 12個LED指示燈;

  · 5個控制信號:高風(fēng)HF,、中風(fēng)MF,、低風(fēng)LF、導(dǎo)風(fēng)SWI和冷風(fēng)輸出控制;

  · 蜂鳴信號,。

1.2 系統(tǒng)構(gòu)成框圖

  本設(shè)計中采用單片機(jī)SST86542R,。該單片機(jī)有20個I/O端口,352字節(jié)片上SRAM,,16KB Flash EEPROM,,以及兩個可充當(dāng)計數(shù)器的模塊Core Timer 和Carrier Modulator Transmitter。采用6805精簡指令集,。

  6個紅外輸入共用一個紅外輸入端口,,根據(jù)輸入的紅外碼來判斷輸入的按鍵。6個鍵盤輸入共用一個鍵盤輸入端口,。12個LED指示燈與單片機(jī)的接口有8個,,分別為6個掃描端口和2個控制端口。系統(tǒng)框圖如圖1所示,。

?

?

1.3 LED和鍵盤輸入的接口電路及其工作原理

  為了節(jié)省I/O端口,,接口電路將12個LED排列成一個6行×2列的矩陣,如圖2所示,。每列有6個LED,,其陽極相連并通過一個反相器連接到單片機(jī)的I/O口,稱為控制端口,。每行有2個LED,,其陰極相連并與單片機(jī)I/O口相連,稱為掃描端口。每一行的掃描端口后串聯(lián)一個二極管和一個脈沖式鍵盤,,6個鍵盤的另一端相連并與單片機(jī)的公共鍵盤輸入端口相連,。這樣LED和鍵盤僅需要9個端口。

?

?

  由于電路上的需要,,LED和鍵盤檢測采用行掃描的工作方式,。每次掃描將需掃描行的掃描端口置低,其它掃描端口置高,。如果此時按下被掃描行的鍵盤,,那么公共鍵盤輸入端口為低電平,否則為高電平,。為了讓指示燈持續(xù)發(fā)亮沒有閃爍感,,掃描頻率要求75Hz以上。每周期掃描6行,,因此掃描時間間隔應(yīng)小于2.2ms,。

2 軟件模塊的設(shè)計

  系統(tǒng)軟件分為主程序和實時中斷兩個模塊。

  主程序包括系統(tǒng)參數(shù)初始化和循環(huán)工作過程,。系統(tǒng)參數(shù)初始化包括單片機(jī)狀態(tài)參量和程序自定義的狀態(tài)變量的初始化,。循環(huán)工作過程循環(huán)執(zhí)行水位檢測、紅外碼流檢測,、輸入狀態(tài)字變化檢測,、輸出端口賦值和定時器檢查等任務(wù)。

  實時中斷服務(wù)程序是本設(shè)計中的關(guān)鍵,,主要處理與時間有關(guān)的任務(wù),,包括掃描端口和控制端口的賦值、鍵盤檢測,、定時器的處理,、蜂鳴波形的產(chǎn)生和紅外信號的捕獲等。

2.1 鍵盤和LED的掃描編碼

????指示燈用于指示系統(tǒng)的當(dāng)前狀態(tài),,而系統(tǒng)的狀態(tài)由用戶輸入的信號來改變,。根據(jù)6種不同的輸入源,定義6個輸入狀態(tài)變量,,每一次按鍵,,相應(yīng)的狀態(tài)字將產(chǎn)生變化,表示系統(tǒng)的不同狀態(tài),。從上述的電路及其工作原理可以看出,,輸入鍵盤和掃描端口的值是相互對應(yīng)的,如‘關(guān)閉鍵’對應(yīng) 011111,,狀態(tài)變量設(shè)為OFF,,只有兩個狀態(tài),,開/關(guān),因此用一個比特就能表示,。同理可以得到其它5個狀態(tài)變量的定義和編碼,。編碼應(yīng)盡量簡單,狀態(tài)的變化如能采用自減一或自加一則最好,。詳細(xì)見表1,。

?

?

  LED的掃描端口是確定的六個值,控制端口的數(shù)據(jù)由輸入狀態(tài)變量來決定,。

  當(dāng)系統(tǒng)處于開機(jī)狀態(tài)下,,掃描端口是011111時,表示選中(圖2)LED矩陣的第一行,,此時系統(tǒng)控制第一行兩個燈的亮滅,。首先來看看這兩個燈各代表什么意思,第一個表示‘導(dǎo)風(fēng)’連接到PA0端口,,第二個表示‘冷風(fēng)’ 連接到PA1端口,。

從狀態(tài)字的定義來看,SWING=1,,無導(dǎo)風(fēng),則燈滅,, 反之SWING=0,,燈亮;由于MCU的PA0端口通過反相器連接到該燈的陽極,所以 PA0=1,,燈滅,,PA0=0,燈亮,,因此PA0的值直接等于狀態(tài)變量SWING,。同理,PA1=COOL,。

  在其它5個不同的掃描端口賦值下,,根據(jù)控制燈和狀態(tài)字的意義,可以得出如表2的結(jié)果,,表中的 (0),、(1)、(2),、(3)表示該狀態(tài)字的第0,、1、2,、3位的值,。當(dāng)系統(tǒng)處于關(guān)閉狀態(tài)時,,所有指示燈是滅的,因此對于6個掃描端口值,,控制端口PA1-PA0恒等于11,,不驅(qū)動LED。

?

?

  事實上,,5個控制輸出信號也是與當(dāng)前的狀態(tài)變量密切相關(guān)的,,它們的賦值計算方法與PA1、PA0相同,。

2.2 紅外碼流檢測

  紅外碼流檢測采用查詢方式,。在實時中斷服務(wù)程序中,每隔2ms檢查是否有紅外按鍵輸入,,進(jìn)行引導(dǎo)碼的查詢捕獲,。一旦捕獲后,執(zhí)行碼流檢測子程序,,該子程序包括讀取碼字和判斷碼字兩步,。讀取碼字是一個對紅外信號進(jìn)行數(shù)據(jù)采樣的過程,判斷碼字是一個數(shù)據(jù)匹配的過程,。

2.3 軟件設(shè)計中的幾個問題

  (1)時間匹配

  在主程序處理紅外碼流的檢測過程時,,仍然會產(chǎn)生實時中斷。如上所述,,紅外碼流用采樣的辦法進(jìn)行數(shù)據(jù)的讀取,,則采樣間隔的大小將直接影響到對紅外信號的正確接收。如果采樣間隔太大,,得到的數(shù)據(jù)不夠精確,,不足于分辨1/0比特;但是如果采樣間隔太小,小于中斷服務(wù)程序執(zhí)行一次的時間,,則采集的數(shù)據(jù)會變小,,導(dǎo)致錯誤判斷。因此中斷服務(wù)程序應(yīng)該寫得盡量簡短,。

  (2)紅外碼流檢測方式

  紅外碼流的檢測可以采用外中斷方式或查詢方式,,在本設(shè)計中采用查詢方式。因為該單片機(jī)定義了外中斷的級別比實時中斷高,,一旦產(chǎn)生外中斷,,實時中斷請求將被忽略,不執(zhí)行掃描過程,,因此會產(chǎn)生部分應(yīng)該點亮的指示燈沒有點亮的現(xiàn)象,。

  (3)紅外碼流數(shù)據(jù)匹配

  數(shù)據(jù)匹配是一個把采集后的數(shù)據(jù)與預(yù)設(shè)定的數(shù)值進(jìn)行比較的過程。預(yù)設(shè)定的數(shù)值可以從紅外波形理論計算得出,,但是理論值與實際值總會存在一些差異,,因此最好的解決辦法是預(yù)先寫一段數(shù)據(jù)采集程序并記錄下這些數(shù)據(jù)代替理論值,,作為預(yù)設(shè)定的數(shù)值進(jìn)行比較。

  SST65P54R工作電壓為2.2~3.2V,,功耗小,,適用于家電控制系統(tǒng)。另外,,本文中的軟件開發(fā)模塊易于推廣成家電控制器的通用軟件模塊,。

?

參考文獻(xiàn)

1 SST65P54R Design Specification Rev A 02.SST.Sep.1999

2 剛寒冰,齊秋群.MOTOROLA單片機(jī)M68HC05原理與應(yīng)用大全.北京:北京理工大學(xué)出版社,,1994

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]