新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐津县| 文水县| 临夏市| 宕昌县| 文登市| 天水市| 苍南县| 益阳市| 麦盖提县| 海城市| 寻甸| 和静县| 盐亭县| 长葛市| 海盐县| 嘉荫县| 扎兰屯市| 乌拉特前旗| 措美县| 姚安县| 于都县| 吉林市| 聂拉木县| 寿光市| 霍林郭勒市| 磐石市| 石棉县| 阿拉善右旗| 喀什市| 靖宇县| 新宁县| 磴口县| 苍梧县| 玛曲县| 普陀区| 邵武市| 陆河县| 驻马店市| 晋宁县| 璧山县| 祁东县|