<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 跟我學51單片機(六):單片機外部中斷及紅外遙控器解碼

          跟我學51單片機(六):單片機外部中斷及紅外遙控器解碼

          作者: 時間:2013-02-06 來源:網絡 收藏

          程序詳細說明:

            (1)定時器中斷0 服務函數,紅外接收頭解碼數據觸發(fā)1 后,引發(fā)定時器中斷,從而進行捕獲解碼。

           ?。?)解碼時, 將載頻部分變?yōu)榈碗娖剑?即低電平實際為1, 高電平實際為0。

           ?。?)設置定時器0 高八位初值,因為要定時間長度為一個數據位周期。

           ?。?) 設置定時器0 低八位初值。經過實測,SAA3010 的位時間在1.655ms 左右。

           ?。?)將紅外數據放入最低位。

           ?。?)紅外計數沒進一次定時器中斷就加1。

           ?。?)如果當前是第1 次和第2 次進入定時器中斷。

           ?。?)如果此時in 的值為0,即如果發(fā)現起始兩位不全是1 的情況。

           ?。?)關閉定時器0。

           ?。?0)重新打開進行接收。即起始兩位必須都為1。

            (11)退出返回。

            (12)如果接收完起始位(2 位)和控制位(1 位)。

            (13)IR_sign 置1,即將接收到的紅外系統碼放到IR_Data[1] 中。

            (14)如果當前計數達到第8 次,即接收完5 位系統碼。

           ?。?5)如果接收到的系統碼不為0,即要求系統碼全為0 才正確。

            (16)則關閉定時器和重開并返回。

            (17)IR_sign 置2,將接收到的紅外數據位放到IR_Data[2] 中。

           ?。?8)如果當前計數達到第14 次,即接收完6 位數據碼。

           ?。?9)IR_sign 置3,表示數據碼接收成功。

           ?。?0)如果IR_sign 等于3,即表示如果接收完成。

            (21)接收完成,關閉定時器0,不再捕獲。

           ?。?2)接收完成后跳轉到執(zhí)行IR_Success() 函數,進行顯示以及重新初始化等。

            (23)返回。

            (24)將數據左移一位, 以便將一下位數據并于最低位。

            五、調試要點與實驗現象

            接好硬件,通過冷啟動方式將程序所生成的。hex 文件下載到單片機運行后,打開串口調試助手軟件,設置好波特率9600,復位單片機,然后按下SAA3010 遙控器上的相應按鍵,可以觀察到在接收窗口有接收到的數據顯示見圖8,此外電路板上的串行通信指示燈也會閃爍,P0 口也會將所接到的數據顯示在LED 燈上。

            值得注意的是,不同紅外遙控器的編碼格式不同,即便是同一型號的紅外遙控器,其發(fā)射出來的碼值也可能稍有微小的區(qū)別,例如筆者手里所用的SAA3010 紅外遙控器,其位時間實測在1.655ms 左右,而不是在標稱的1.688ms,因此,有條件的讀者可以用示波器或者邏輯分析儀之類的儀表對遙控器發(fā)射出來的碼值進行測量,從而相應的修改所捕獲的時間,確保無誤。此外,紅外的穿透能力較弱,例如我們用手遮擋住遙控器的發(fā)射頭或者接收頭時,此時難以收到數據或者引入干擾。

            六、總結

            本講介紹了51 單片機如何利用外部中斷觸發(fā)和內部定時器捕獲的方式進行,現簡單總結如下:

            要對,首先應當知道遙控器的編碼標準,無論是本文中所介紹的NEC 標準和PHILIPS 標準,還是其他編碼格式,因為不了解編碼格式,難以對編碼進行判斷,從而造成解錯碼。其次,由于晶振(如遙控器內部和單片機晶振)本身的不穩(wěn)定性等,為保證解碼的準確性,應對每位碼長時間經行測量,如利用儀表或者使用單片機本身,從而得到準備結果。下講將講述單片機驅動字符型液晶1602 模塊的原理與實例,敬請期待。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();