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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 跟我學(xué)51單片機(jī)(六):?jiǎn)纹瑱C(jī)外部中斷及紅外遙控器解碼

          跟我學(xué)51單片機(jī)(六):?jiǎn)纹瑱C(jī)外部中斷及紅外遙控器解碼

          作者: 時(shí)間:2013-02-06 來(lái)源:網(wǎng)絡(luò) 收藏

          PHILIPS 標(biāo)準(zhǔn):載波頻率為38kHz ;沒(méi)有簡(jiǎn)碼,點(diǎn)按鍵時(shí),控制碼在1 和0 之間切換,若持續(xù)按鍵,則控制碼不變。一個(gè)全碼可等同于起始碼、控制碼、系統(tǒng)碼、數(shù)據(jù)碼的時(shí)間總和,如圖4 所示。

          圖4 PHILIPS標(biāo)準(zhǔn)下的全碼表示

            數(shù)據(jù)0 用“低電平0. 889ms +高電平0. 889ms”

            表示;數(shù)據(jù)1 用“ 高電平0. 889ms + 低電平0.

            889ms”表示(圖5)。連續(xù)碼重復(fù)延時(shí)114ms。

          圖5 PHILIPS標(biāo)準(zhǔn)下的數(shù)據(jù)0和1的表示

            在本講中采用的是SAA3010 這款紅外遙控器(見(jiàn)圖6(a)),其符合常見(jiàn)的PHILIPS 標(biāo)準(zhǔn)中的RC-5 編碼格式,其一幀碼序列是由2 位控制碼,1 位翻轉(zhuǎn)碼,5 為地址碼,6 位數(shù)據(jù)碼,結(jié)束碼組成。其數(shù)據(jù)位時(shí)間長(zhǎng)度是1.688ms。連續(xù)碼重復(fù)延時(shí)為108ms,即在每按鍵一直被按下時(shí)延時(shí)為108ms 再輸出同樣的一幀數(shù)據(jù)。

          圖6 (a) SAA3010遙控器外觀圖 (b) SAA3010的數(shù)據(jù)位 (c) SAA3010的數(shù)據(jù)重復(fù)周期

            從圖6 中可以看出,SAA3010 的位傳送方式是采用雙相位,位1 和位0 的相位正好相反。在解碼時(shí)可以用定時(shí)采樣的方式進(jìn)行解碼,一個(gè)位采樣二次,分別在位波形的四分之一和四分之三處進(jìn)行采樣,如位1 用這種方法采樣的值就是0 和1。當(dāng)然也可以只采樣一次,例如在波形的四分之一處進(jìn)行采樣,然后定時(shí)一個(gè)波形的周期再采樣,這樣位1 采樣的值就是0(本講的實(shí)例即是采用這種方法)。

            三、電路詳解

            如圖7 (a) 中所示,紅外接收頭解碼電路非常簡(jiǎn)單,采用的是一體化紅外線接收頭,一體化的紅外接收頭將遙控信號(hào)的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機(jī)識(shí)別的TTL 信號(hào),這樣大大簡(jiǎn)化了接收電路的復(fù)雜程度和電路的設(shè)計(jì)工作,方便使用。在本講中采用的是紅外一體化接收頭HS0038,其外觀圖如7(b) 所示。其為黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號(hào)情況下,接收距離可達(dá)30m。它能與TTL、COMS 電路兼容。HS0038 為直立側(cè)面收光型。它接收紅外信號(hào)頻率為38 kHz, 周期約26μs,同時(shí)能對(duì)信號(hào)進(jìn)行放大、檢波、整形,得到TTL 電平的編碼信號(hào)。

          圖7 (a) 紅外接收頭解碼電路 (b) HS0038外觀圖

            其三個(gè)管腳分別是地、電源正、解調(diào)信號(hào)輸出端。

            為了響應(yīng)速度,紅外接收頭的解碼信號(hào)輸出接入到單片機(jī)P3.3(1)端口上,這樣一旦有紅外解碼信號(hào)輸出就可觸發(fā)進(jìn)去中斷。此外,電容C7 用于電源去耦濾波,保證紅外接收頭穩(wěn)定工作。

            四、程序設(shè)計(jì)

            本講設(shè)計(jì)的核心程序如下:

            void time0() interrupt 1 ( 1)

            bit in = ~IR_Input; ( 2)

            TH0 = 0XFF; ( 3)

            TL0 = 0X83; ( 4)

            IR_Data[IR_sign] = IR_Data[IR_sign] | in; ( 5)

            IR_count++; ( 6)

            if(IR_count == 1 || IR_count == 2) ( 7)

            {

            if(in == 0) ( 8)

            {

            TR0 = 0; ( 9)

            EX1 = 1; ( 10)

            return; ( 11)

            }

            }

            if(IR_count == 3) ( 12)

            {

            IR_sign = 1; ( 13)

            }

            else if(IR_count == 8) ( 14)

            {

            if(IR_Data[1] != 0) ( 15)

            {

            TR0 = 0; ( 16)

            EX1 = 1;

            return;

            }

            IR_sign = 2; ( 17)

            }

            else if(IR_count == 14) ( 18)

            {

            IR_sign = 3; ( 19)

            }

            else if(IR_sign == 3) ( 20)

            {

            TR0 = 0; ( 21)

            IR_Success(); ( 22)

            return; ( 23)

            }

            else

            IR_Data[IR_sign] = IR_Data[IR_sign] 《 1; ( 24)



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();