中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于8952單片機(jī)的紅外解碼(TC9012F編碼)

        基于8952單片機(jī)的紅外解碼(TC9012F編碼)

        作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
        紅外操作免去了和機(jī)器接觸。第一是方便,第二也很自然的可以將用戶與管理著分離(使用功能在遙控上,調(diào)試功能在機(jī)器上)。所以免不了在自己的電子鐘設(shè)計(jì)中加入了紅外。加的多,學(xué)得也多嘛。

        雖然重點(diǎn)在后面,但是先上個(gè)程序

        本文引用地址:http://www.antipu.com.cn/article/201611/323082.htm

        參考總結(jié)后,第一次參考?xì)w納出源程序如下:

        #include
        #include
        #include
        ////////////////////////////////////////////////

        sbit ir=P3^2;//紅外接口標(biāo)志

        ////////////////////////////////////////////

        unsigned char irtime;//電平寬度(以定時(shí)器來(lái)記錄)
        bit irpro_ok,irok;
        unsigned char ircord[4];
        unsigned char irdata[33];

        //////////////////////////////////////////////

        void ir_work(void);
        void ircordpro(void);

        //////////////////////////////////////////////////////////////////

        void tim0_isr (void) interrupt 1 using 1//定時(shí)器0中斷服務(wù)函數(shù)
        {
        irtime++;
        }

        ///////////////////////////////////////////////////////////////////////
        void ex0_isr (void) interrupt 0 using 0//外部中斷0服務(wù)函數(shù)
        {
        unsigned char i;
        bit startflag;

        if(startflag)
        {
        TR0=0;
        if(irtime<38&&irtime>=34)//引導(dǎo)碼判斷(9MS)
        i=0;
        TR0=1;
        //確認(rèn)為引導(dǎo)碼,初始為新的32位編碼開始
        irdata[i]=irtime;//i=0是引導(dǎo)碼,后面是其余碼。每次記錄的是每次高低電平一起的脈沖寬度。
        //收到到一個(gè)碼算一次中斷,中斷結(jié)束前清零寬度計(jì)時(shí)
        irtime=0;
        i++;
        if(i==33)
        {
        irok=1;
        i=0;
        }
        }
        //第一次進(jìn)入中斷開啟startflag,用于第二次進(jìn)入中斷計(jì)時(shí)比對(duì)
        else
        {irtime=0;startflag=1;}

        }

        ////////////////////////////////////////////////////////////////////
        void TIM0init(void)//定時(shí)器0初始化
        {

        TMOD=0x02;//定時(shí)器0工作方式2,TH0是重裝值,TL0是初值
        TH0=0;//reload value
        TL0=0;//initial value
        ET0=1;//開中斷
        TR0=1;
        }
        ///////////////////////////////////////////////////////////////////
        void EX0init(void)
        {
        IT0 = 1;
        EX0 = 1;
        EA = 1;
        }
        void ir_work(void)//紅外鍵值散轉(zhuǎn)程序
        {

        switch(ircord[2])//判斷第三個(gè)數(shù)碼值(數(shù)據(jù)碼,后面是反碼,前面是引導(dǎo)碼和地址碼)
        {
        case 0:P1=0x00;break;//1 LED顯示相應(yīng)的按鍵值
        case 1:P1=0xfe;break;//2
        case 2:P1=0xfd;break;//3
        }


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉