新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 紅外遙控芯片BA5104的軟件解碼方法探討

        紅外遙控芯片BA5104的軟件解碼方法探討

        作者: 時間:2013-01-14 來源:網絡 收藏


        3 BA5104芯片的軟件方法
        3.1 測出接收脈沖下降沿剄上升沿的時間間隔并保存
        的關鍵是要測出接收脈沖下降沿到上升沿的時間間隔,行之有效的方法有兩種:外部中斷法輸入捕獲功能法,下面分別進行介紹。
        3.1.1 外部中斷法
        ATmega16的外部中斷INT0接收BA5104芯片的電路如圖4所示。PC838為一體化紅外接收頭,YM12864為中文液晶顯示器,用于顯示下降沿中斷至上升沿中斷之間的時間間隔及解碼成功后的遙控碼。

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

        c.JPG


        外部中斷法的解碼思路:PCF838的輸出端未接收到紅外遙控信號時保持高電平,接收到紅外遙控信號時,輸出端從高電平變成低電平,形成下降沿,低電平持續一段時間后,紅外遙控信號消失,輸出端又從低電平變成高電平,形成上升沿。單片機ATmega16的外部中斷可以由編程者自由設置為上升沿中斷或下降沿中斷,初始化時先將ATmega16的外部中斷INT0設置為下降沿中斷,當INT0發生下降沿中斷時用定時器/計數器T/C1記錄發生的時間并保存在t1中,然后設置外部中斷INT0為上升沿中斷,當外部中斷INT0又一次觸發中斷時將發生的時間保存在t2中,再次將外部中斷INT0為下降沿中斷。最后計算從下降沿中斷至上升沿中斷之間的時間間隔并保存在事先開辟的數據存儲區中,直到接收完一幀遙控碼,外部中斷INT0發生的過程如圖5所示。外部中斷INT0的中斷服務子程序如下:
        d.JPG
        3.1.2 輸入捕獲功能法
        ATmega16的輸入捕獲功能ICP1接收解碼BA5104芯片的電路如圖6所示。

        e.JPG


        輸入捕獲功能法的思路:初始化時先將ATmega16的T/C1設置為輸入,下降沿捕獲中斷。當ICP1引腳檢測到下降沿時產生捕獲中斷,將計數寄存器TCNT1中的計數值自動寫入捕捉寄存器ICR1,在捕獲中斷程序中將ICR1的值保存到變量t1中,之后將T/C1設置為上升沿捕獲中斷;當ICP1引腳檢測到上升沿時再一次產生捕獲中斷,此時將ICR1的值保存在變量t2中,然后將TENT1的計數值清0,并將T/C1設置為上升沿捕獲。最后進行計算便可得到下降沿捕獲中斷至上升沿捕獲中斷之間的時間間隔并保存在數據緩沖區中,直到接收完12位遙控碼。輸入捕獲中斷發生的過程如圖7所示。ICP1捕獲中斷服務子程序如下:
        f.JPG



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石棉县| 昆明市| 开远市| 广德县| 昭通市| 融水| 林州市| 绩溪县| 怀远县| 汕尾市| 宁夏| 常山县| 德昌县| 子长县| 三台县| 东兰县| 沐川县| 蓬莱市| 长丰县| 临邑县| 讷河市| 堆龙德庆县| 秭归县| 辽宁省| 金阳县| 微山县| 三都| 彰化县| 洞口县| 兴化市| 外汇| 吉安县| 新和县| 达拉特旗| 吴旗县| 准格尔旗| 新建县| 聊城市| 宜城市| 蓬安县| 喜德县|