新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于C語言的SAA3010紅外遙控接收的源代碼

        基于C語言的SAA3010紅外遙控接收的源代碼

        作者: 時間:2012-08-03 來源:網絡 收藏

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

        void intx0() interrupt 0 using 2 //使用外部中斷0,接P3.2口
        {
        ykbtc=TH1;TH1=0;TL1=0;TR1=1;ET1=1;
        switch(ykbnum)
        {
        case(0):
        ykbnum=1;
        break;
        case(1):
        if(ykbtc==6)ykbnum=2;
        else ykbnum=0;
        break;
        case(2):
        if(ykbtc==6||ykbtc==9)ykbnum=3;
        else ykbnum=0;
        break;
        case(3):
        if(ykbtc==9||ykbtc==6){ykbnum=4;}
        else ykbnum=0;
        break;
        default:
        if(ykbnum7)if(ykbtc==6)ykbnum++;
        else ykbnum=0;
        else
        {
        if(ykbtc==6){if(ykcodetemp0)ykcodetemp=ykcodetemp*2+1;
        else ykcodetemp=ykcodetemp*2;
        ykbnum++;
        }
        else if(ykbtc==9){ if(ykcodetemp0){ykbnum++;ykcodetemp=ykcodetemp*2;}
        else {ykbnum+=2;ykcodetemp=ykcodetemp*2;ykcodetemp=ykcodetemp*2+1;}
        }
        else if(ykbtc>11ykbtc15)
        {ykbnum+=2;ykcodetemp=ykcodetemp*2;ykcodetemp=ykcodetemp*2+1;}
        else if(ykbtc>30){EX0=1;}
        else ykbnum=0;
        }
        }
        }

        void intt1() interrupt 3 using 3 //使用定時計數器1
        {
        if(ykdelay){ykdelay--;EX0=0;} //ykdelay不為0暫停
        else
        {
        if(ykbnum==13) //碼最后一位為0,補0
        {
        ykcode=ykcodetemp*=2;
        ykdelay=3;
        EX0=0; //暫停
        ykok=1; //遙控數據有效
        }
        else if(ykbnum==14) //遙控碼最后一位為1,不用補
        {
        ykcode=ykcodetemp;
        ykdelay=3;
        EX0=0; //暫停
        ykok=1; //遙控數據有效
        }
        else EX0=1; //ykbnum不為13,14接收無效,繼續接收
        ykbnum=0;
        ykcodetemp=0;
        }
        }

        /*
        // 測試主函數內容
        main()
        {
        YkInit();
        led_test(); //4LED測試函數
        for(;1;) //主程序
        {
        if (YkTest())
        led_showhh(YkGetcode());
        led_delay(10);
        }
        }

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西贡区| 北碚区| 荆门市| 雷州市| 达尔| 安达市| 永州市| 玉林市| 乐陵市| 河津市| 涞源县| 泾源县| 江门市| 克东县| 台南县| 南城县| 抚松县| 临泽县| 红安县| 旅游| 宜都市| 潼关县| 交口县| 会东县| 石家庄市| 雷波县| 雅安市| 门源| 宁河县| 凤城市| 武安市| 新绛县| 嘉善县| 含山县| 南汇区| 敖汉旗| 广河县| 苍梧县| 珲春市| 佛坪县| 建阳市|