在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 紅外遙控芯片BA5104的軟件解碼方法探討

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

            作者: 時間:2013-01-14 來源:網(wǎng)絡(luò) 收藏


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

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

            c.JPG


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

            e.JPG


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



            評論


            相關(guān)推薦

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

            關(guān)閉