新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機在家電控制系統中的應用

        單片機在家電控制系統中的應用

        作者: 時間:2009-08-04 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/173658.htm


        表1 輸入狀態變量的定義及編碼 輸入鍵 掃描端口PA7-2 紅外碼字 狀態變量 狀態變化的編碼 關閉

        開機/風速風類定時導風冷風
        01111122h
        10111160h
        11011140h
        11101101h
        111101E0h

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 饶河县| 安化县| 通化县| 泽普县| 亚东县| 巩义市| 尖扎县| 宁城县| 长乐市| 固安县| 佛冈县| 保定市| 舞钢市| 天等县| 苍梧县| 资阳市| 永登县| 浪卡子县| 阿坝| 东乡| 同心县| 荃湾区| 囊谦县| 天柱县| 博爱县| 井陉县| 晋宁县| 洛宁县| 图木舒克市| 德阳市| 兴和县| 泸定县| 惠安县| 嵩明县| 无为县| 卓尼县| 乌拉特前旗| 加查县| 维西| 二连浩特市| 慈利县|