新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 紅外遙控器在單片機控制系統(tǒng)中的應(yīng)用

紅外遙控器在單片機控制系統(tǒng)中的應(yīng)用

作者: 時間:2012-08-31 來源:網(wǎng)絡(luò) 收藏

3 軟件設(shè)計

本系統(tǒng)旨在識別指令代碼并依據(jù)指令信息實現(xiàn)新鍵功能, 我們的思路是在中斷服務(wù)程序中識別指令代碼并保存數(shù)據(jù), 用主程序?qū)?shù)據(jù)進行比較和處理, 從而實現(xiàn)各種功能。

3. 1 中斷服務(wù)程序

3. 1. 1 代碼的判斷

代碼的判斷是用計數(shù)和比較的方法來實現(xiàn)的,進入中斷的同時立即打開定時器T 1, 開始計數(shù), 代碼/ 00和/ 10的計數(shù)時間由其脈沖寬度決定, 分別為1ms 和2ms, 則理論計數(shù)值A(chǔ)0、A1 分別可由以下公式得出:

A0= 1ms/ 一個機器周期

A1= 2ms/ 一個機器周期

采用不同頻率的晶振時, 理論計數(shù)值也將隨之不同。

考慮到基準頻率的誤差, 實際計數(shù)值很難保證與理論計數(shù)值完全一致, 為此需給/ 00和/ 10的實際計數(shù)值開設(shè)一個窗口, 以免丟失數(shù)據(jù); 同時, 為增強抗干擾性, 窗口寬度應(yīng)適中, 經(jīng)過實驗, 我們確定的窗口寬度為0. 224ms, 具體數(shù)值如表2 所列。

表2 記數(shù)窗口數(shù)值
表2 記數(shù)窗口數(shù)值

當實際計數(shù)值在A0L ~ A0H時, 我們認為接收的代碼是/ 00; 實際計數(shù)值在A1L~ A1H 時, 則將代碼記為/ 10。

3. 1. 2 指令的識別

將接收的指令代碼逐位存儲在RAM 區(qū)的2AH~ 2FH 單元中, 則可以存儲48 位共3 組指令代碼, 存儲的有效方式如表3 所列。

表3 存儲方式
表3 存儲方式

在表3 中, jjH 表示的是表1 中的任意一個按鍵的功能操作碼, 只有當2A= 2C= E2H, 且2B= 2D=jjH 的時候, 此指令代碼才被認為是有效的, 將jjH代表的操作碼存入數(shù)據(jù)暫存單元1EH 中, 主程序即可以使用。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉