單片機(jī)在家電控制系統(tǒng)中的應(yīng)用
1 系統(tǒng)構(gòu)成和核心接口電路的工作原理 設(shè)計(jì)家電控制器的核心是成本、功耗的控制?,F(xiàn)在市場(chǎng)上的同類產(chǎn)品中需要的硬件資源比較多,包括國(guó)個(gè)MCU和個(gè)三-八譯碼器,其中三-八譯碼器用于擴(kuò)展I/O端口。實(shí)際上,在國(guó)般MCU的I/O端口足夠的情況下,可以充發(fā)利用MCU,采用軟件編碼模塊完全代替三-八譯碼器,從而降低成本和功耗。 1.1 用戶端的輸入信號(hào)源和輸出信號(hào)源 冷風(fēng)扇除了具有普通電風(fēng)扇的基本功能外,還有國(guó)個(gè)最重要的功能――冷風(fēng)功能,用于選擇是否冷風(fēng)輸出??刂乒δ苄枰獌蓚€(gè)水位信號(hào)源――缺水(L)、水滿(H),輸出信號(hào)國(guó)個(gè)。 從用戶使用方面來(lái)講,有下列輸入源和輸出源。 輸入源: ?6個(gè)鍵盤:關(guān)機(jī)、開機(jī)/風(fēng)速、風(fēng)類、導(dǎo)風(fēng)、定時(shí)和冷風(fēng); ?6個(gè)紅外遙控功能鍵:與鍵盤相對(duì)應(yīng); ?2個(gè)水位信號(hào)。 輸出源: ?12個(gè)LED指示燈; ?5個(gè)控制信號(hào):高風(fēng)HF、中風(fēng)MF、低風(fēng)LF、導(dǎo)風(fēng)SWI和冷風(fēng)輸出控制; ?蜂鳴信號(hào)。 1.2 系統(tǒng)構(gòu)成框圖 本設(shè)計(jì)中采用單片機(jī)SST868542R。該單片機(jī)有20個(gè)I/O端口,352字節(jié)片上SRAM,16KB Flash EEPROM,以及兩個(gè)可充當(dāng)計(jì)數(shù)器的模塊Core Timer和Carrier Modulator Transmitter。采用6805精簡(jiǎn)指令集。 6個(gè)紅外輸入共有國(guó)個(gè)紅外輸入端口,根據(jù)輸入的紅外碼來(lái)判斷輸入的按鍵。6個(gè)鍵盤輸入共用國(guó)個(gè)鍵盤輸入端口。12個(gè)LED指示燈與單片機(jī)的接口有8個(gè),分別為6個(gè)掃描端口和2個(gè)控制端口。系統(tǒng)框圖如圖1所示。 1.3 LED和鍵盤輸入的接口電路及其工作原理 為了節(jié)省I/O端口,接口電路將12個(gè)LED排列成一個(gè)6行×2列的矩陣,如圖2所示。每列有6個(gè)LED,其陽(yáng)極相連并通過(guò)一個(gè)反相器連接到單片機(jī)的I/O口,稱為控制端口。每行有2個(gè)LED,其陰極相連并與單片機(jī)I/O口相連,稱為掃描端口。每一行的掃描端口后串聯(lián)一個(gè)二極管和一個(gè)脈沖式鍵盤,6個(gè)鍵盤的另一端相連并與單片機(jī)的公共鍵盤輸入端口相連。這樣LED和鍵盤僅需要9個(gè)端口。 由于電路上的需要,LED和鍵盤檢測(cè)采用行掃描的工作方式。每次掃描將需掃描行的掃描端口置低,其它掃描端口置高。如果此時(shí)按下被掃描行的鍵盤,那么公共鍵盤輸入端口為低電平,否則為高電平。為了讓指標(biāo)燈持續(xù)發(fā)亮沒(méi)有閃爍感,掃描頻率要求75Hz以上。每周期掃描6行,因此掃描時(shí)間間隔應(yīng)小于2.2ms。 2 軟件模塊的設(shè)計(jì) 系統(tǒng)軟件分為主程序和實(shí)時(shí)中斷兩個(gè)模塊。 主程序包括系統(tǒng)參數(shù)初始傾向循環(huán)工作過(guò)程。系統(tǒng)參數(shù)初始化包括單片機(jī)狀態(tài)參量和程序自定義的狀態(tài)變量的初始化。循環(huán)工作過(guò)程循環(huán)執(zhí)行水位檢測(cè)、紅外碼流檢測(cè)、輸入狀態(tài)字變化檢測(cè)、輸出端口賦值和定時(shí)器檢查等任務(wù)。 實(shí)時(shí)中斷服務(wù)程序是本設(shè)計(jì)中的關(guān)鍵,主要處理與時(shí)間有關(guān)的任務(wù),包括掃描端口和控制端口的賦值、鍵盤檢測(cè)、定時(shí)器的處理、蜂鳴波形的產(chǎn)生和紅外信號(hào)的捕獲等。 2.1 鍵盤和LED的掃描編碼 指示燈用于指示系統(tǒng)的當(dāng)前狀態(tài),而系統(tǒng)的狀態(tài)由用戶輸入的信號(hào)來(lái)改變。根據(jù)6種不同的輸入源,定義6個(gè)輸入狀態(tài)變量,每一次按鍵,相應(yīng)的狀態(tài)字將產(chǎn)生變化,表示系統(tǒng)的不同狀態(tài)。從上述的電路及其工作原理可以看出,輸入鍵盤和掃描端口的值是相互對(duì)應(yīng)的,如‘關(guān)閉鍵’對(duì)應(yīng)0111,狀態(tài)變量設(shè)為OFF,只有兩個(gè)狀態(tài),開/關(guān),因此用一個(gè)比特就能表示。同理可以得到其它5個(gè)狀態(tài)變量的定義和編碼。編碼應(yīng)盡量簡(jiǎn)單,狀態(tài)的變經(jīng)如能采用自編碼應(yīng)盡量簡(jiǎn)單,狀態(tài)的變化如能采用自減一或自加一則最好。詳細(xì)見表1。
本文引用地址:http://2s4d.com/article/173658.htm
表1 輸入狀態(tài)變量的定義及編碼 輸入鍵 掃描端口PA7-2 紅外碼字 狀態(tài)變量 狀態(tài)變化的編碼 關(guān)閉
開機(jī)/風(fēng)速 | 風(fēng)類 | 定時(shí) | 導(dǎo)風(fēng) | 冷風(fēng) |
011111 | 22h | |||
101111 | 60h | |||
110111 | 40h | |||
111011 | 01h | |||
111101 | E0h |
評(píng)論