新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機紅外遙控解碼

        51單片機紅外遙控解碼

        作者: 時間:2011-10-09 來源:網絡 收藏

        發射芯片采用PPM編碼方式,當發射器按鍵按下后,將發射一組108ms的編碼脈沖。編碼脈沖由前導碼、8位用戶碼、8位用戶碼的反碼、8位操作碼以及8位操作碼的反碼組成。通過對用戶碼的檢驗,每個器只能控制一個設備動作,這樣可以有效地防止多個設備之間的干擾。編碼后面還要有編碼的反碼,用來檢驗編碼接收的正確性,防止誤操作,增強系統的可靠性。前導碼是一個遙控碼的起始部分,由一個9ms的低電平(起始碼)和一個4. 5ms的高電平(結果碼)組成,作為接受數據的準備脈沖。以脈寬為0. 56ms、周期為1. 12ms的組合表示二進制的“0”;以脈寬為1. 68ms、周期為2. 24ms的組合表示二進制的“1”。如果按鍵按下超過108ms仍未松開,接下來發射的代碼(連發代碼)將僅由起始碼(9ms)和結束碼(2. 5ms)組成。

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

        采用外部中斷INTI管腳和接收頭的信號線相連,中斷方式為邊沿觸發方式。并用定時器0計算中斷的間隔時間,來區分前導碼、二進制的“1”、“0”碼。并將8位操作碼提取出來在數碼管上顯示。

        // 值在Im[2]中,當IrOK=1時有效。
        /* 51遙控程序 */
        //用遙控器對準紅外接收頭,按下遙控器按鍵,在數碼管前兩位上就會顯示對應按鍵的編碼

        #include reg52.h>
        #define uchar unsigned char
        sbit dula=P2^6;
        sbit wela=P2^7;
        uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

        uchar f;

        #define Imax 14000 //此處為晶振為11.0592時的取值,
        #define Imin 8000 //如用其它頻率的晶振時,
        #define Inum1 1450 //要改變相應的取值。
        #define Inum2 700
        #define Inum3 3000

        unsigned char Im[4]={0x00,0x00,0x00,0x00};
        uchar show[2]={0,0};
        unsigned long m,Tc;
        unsigned char IrOK;


        void delay(uchar i)
        {
        uchar j,k;
        for(j=i;j>0;j--)
        for(k=125;k>0;k--);
        }

        void display()
        {
        dula=0;
        P0=table[show[0]];
        dula=1;
        dula=0;

        wela=0;
        P0=0xfe;
        wela=1;
        wela=0;
        delay(5);

        P0=table[show[1]];
        dula=1;
        dula=0;

        P0=0xfd;
        wela=1;
        wela=0;
        delay(5);
        }

        液位計相關文章:磁翻板液位計原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 虎林市| 庆阳市| 双桥区| 沙坪坝区| 黎平县| 哈尔滨市| 大姚县| 南汇区| 溆浦县| 罗城| 本溪市| 鄂州市| 张家界市| 广元市| 泸水县| 江孜县| 安顺市| 息烽县| 香格里拉县| 涿州市| 库尔勒市| 读书| 丰宁| 临夏市| 西林县| 江西省| 赤城县| 武鸣县| 长兴县| 印江| 黔江区| 枣强县| 会理县| 武义县| 桃江县| 富宁县| 阳曲县| 永丰县| 恩平市| 泸水县| 西吉县|