新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用51單片機中斷法解碼pt2262無線遙控器

        用51單片機中斷法解碼pt2262無線遙控器

        作者: 時間:2012-11-15 來源:網絡 收藏

        /***********************************************
        解碼軟件修正版
        使用了位操作代替前版本的位尋址,使用三個字節變量存儲獲取的數據,便于以后將地址和數據進行操作
        增加了兩次數據比對的功能,降低誤碼的干擾
        2007.8.24
        接受模塊的信號輸出端接INT0中斷口。。。
        P1.0,p1.1上接LED顯示接受的情況。。。
        解碼測試通過。。。
        注意:使用的是4M的晶振以減少mcu對接受模塊的干擾。。。
        程序開發:http://www.51hei.com
        運行平臺:51hei單片機開發板+315m無線模塊,用杜邦線連接.
        使用時可能要改變檢測的特征值,視遙控的中心頻率而定,可以通過上的電阻改變*********************************************/

        #include reg52.h>
        unsigned int tmp,t1=0;
        unsigned char i9=0,t2;
        char *dataTMP;
        unsigned char dataTMP0,dataTMP1,dataTMP2,datacheck;
        unsigned char bdata oeCON;
        sbit UD0=oeCON^0;
        sbit UD1=oeCON^1;
        sbit OC0=oeCON^2;
        sbit OC1=oeCON^3;
        sbit p10=P1^0;
        sbit p11=P1^1;
        sbit p32=P3^2;
        bit flagF=1,press;
        void up_down();
        void open_close();
        void delay(unsigned char);

        void main()
        {IT0=1;
        EX0=1;
        TMOD=0x09;
        EA=1;
        TR0=1;
        P3=0xff;

        UD0=1;
        UD1=0;
        OC0=1;
        OC1=0;
        while(1)
        {p10=p32;
        if(datacheck==0xff)
        {
        /**********編碼解析后執行代碼*******************


        ***********************/
        }
        }
        /*************************************************************
        中斷服務程序
        通過探頭flagF的值判斷是否接收到sync信號
        接收到的數據存入dataTMP的三個變量中
        連續按鍵的確認:
        等待i9的值變為0;
        延時
        再次檢測i9的值是否為0;
        是0則認為按鍵中止。
        *************************************************************/
        int0() interrupt 0
        {
        tmp=TH0*256+TL0;
        TH0=0x0;
        TL0=0x0;
        if(flagF)
        {
        if(tmp>1295tmp1300)
        {p11=~p11;flagF=0;}
        }
        else
        {
        if(i99) dataTMP=dataTMP0;
        else
        {dataTMP=i917?(dataTMP1):(dataTMP2);}
        (*dataTMP)=1;
        if(tmp>100tmp150)
        (*dataTMP)=(*dataTMP)|0x01;
        else if(!(tmp>10tmp100))
        {
        flagF=1;
        i9=0;
        }

        if(i9==24)
        {
        if(datacheck!=dataTMP2)
        datacheck=dataTMP2;
        else
        datacheck=0xff;/*按鍵確認*/
        }
        i9++;
        }
        }

        /*******************
        延時函數
        時間:1-2s
        *******************/
        void delay(unsigned char k)
        {unsigned char i;
        for(i=0;ik;i++)
        for(tmp=0;tmp10300;tmp++);
        }

        萬能遙控器相關文章:萬能遙控器代碼


        51單片機相關文章:51單片機教程


        紅外遙控器相關文章:紅外遙控器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平乐县| 临夏市| 台前县| 册亨县| 汕头市| 阿尔山市| 乌海市| 紫云| 大名县| 玉环县| 延寿县| 繁昌县| 镶黄旗| 如皋市| 石楼县| 三江| 东乌| 商南县| 龙州县| 吴川市| 阳新县| 阿城市| 信宜市| 娱乐| 徐闻县| 昭苏县| 永新县| 延川县| 镇平县| 剑川县| 陵川县| 新丰县| 双柏县| 密云县| 邳州市| 兴业县| 丘北县| 永善县| 禄丰县| 石门县| 衡山县|