新聞中心

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

        SAA3010紅外遙控接收的C程序源代碼

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

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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安康市| 蒙阴县| 临洮县| 玉山县| 调兵山市| 三原县| 紫金县| 乌什县| 淅川县| 陆丰市| 盐边县| 屏山县| 收藏| 涿州市| 慈溪市| 霍林郭勒市| 休宁县| 青冈县| 浑源县| 保亭| 云龙县| 山丹县| 定安县| 余干县| 桃园市| 开江县| 会昌县| 屏东市| 永顺县| 涿鹿县| 自治县| 双城市| 巧家县| 梅河口市| 勐海县| 古浪县| 土默特左旗| 河池市| 奉节县| 迁西县| 沙河市|