新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機紅外解碼庫文件

        51單片機紅外解碼庫文件

        作者: 時間:2016-11-30 來源:網絡 收藏
        遙控器就是下面圖上的那種

        完整的程序源碼下載地址:http://www.51hei.com/bbs/dpj-20623-1.html
        紅外解碼文件 ir.h/*---------------------------------------------------
        名稱:紅外驅動
        編寫:YuMin_Dong
        時間:2012.11.26
        ---------------------------------------------------*/
        #ifndef _IR_H_
        #define _IR_H_
        uint8 irtime;
        uint8 irdata[33]/*,irprodata[4]*/;
        bitirreceive_ok,irpro_ok;
        //uint8 code LCD_TAB[]={"0123456789ABCDEF"};
        void Timer1_Init(void)
        {
        TMOD|=0X20;
        TH1=0;
        TL1=0;
        //EA=1;
        ET1=1;
        TR1=1;
        }

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

        void Timer1_IRQ(void) interrupt 3
        {
        irtime++;
        }

        void ExtInt0_Init(void)
        {
        IT0=1;
        IE|=0x81;
        }

        void ExtInt_IRQ(void) interrupt 0
        {
        static uint8 i;
        uint8 j,k;
        if(irtime>32&&irtime<64)
        i=0;
        irdata[i]=irtime;//每次外中斷時i會自加1,可見是一個i靜態變量
        irtime=0;
        i++;
        if(i==33)
        {
        i=0;
        irtime=0;
        //irreceive_ok=1;
        ir_value=0;
        k=17;
        for(j=0;j<8;j++)
        {
        ir_value>>=1;
        if(irdata[k]>6)
        ir_value|=0x80;
        k++;
        }
        irpro_ok=1;
        }

        if(irpro_ok)
        {
        irpro_ok=0;
        if(matrix.S==FIRST)
        {
        if(ir_value==0x43)
        {
        ir_value=0xff;
        matrix.S=Second;
        }
        else if(ir_value==0x40)
        {
        matrix.N++;
        if(matrix.N>MENU_COUNT)
        matrix.N=0;//首頁翻動循環
        ir_value=0xff;
        }
        else if(ir_value==0x44)
        {
        matrix.N--;
        if(matrix.N<0)
        matrix.N=MENU_COUNT;//首頁翻動循環
        ir_value=0xff;
        }
        else if(ir_value==0x46)
        {
        PCON|=0x02;
        ir_value=0xff;
        }
        else if(ir_value==0x47)
        {
        PCON=0X01;
        ir_value=0xff;
        }
        }

        else
        {
        if(matrix.N==SNAKE)
        {
        Snake_Key();
        if(ir_value==0x07)
        {ir_value=0xff;snake_speed++;if(snake_speed>30);snake_speed=30;}
        else if(ir_value==0x15)
        {ir_value=0xff;snake_speed--;if(snake_speed<10) snake_speed=10;}
        }
        else if(matrix.N==JINIANRI)
        LeftMove_Key();

        else if(matrix.N==TIME)
        Time_Key();

        else if(matrix.N==SET)
        Time_Set_Key();

        else if(matrix.N==TEMPERATURE)
        Temperature_Key();

        //else if(matrix.N==RADIO)
        //Radio_Key();

        }
        }
        }

        #endif



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 贞丰县| 丹阳市| 哈密市| 龙里县| 招远市| 合肥市| 陆良县| 张北县| 庄浪县| 扎鲁特旗| 曲沃县| 肇庆市| 普宁市| 荥经县| 嘉义市| 荆门市| 贺兰县| 平凉市| 云龙县| 耒阳市| 遵义市| 长寿区| 黔江区| 山东省| 莱西市| 安福县| 垦利县| 额尔古纳市| 乌兰察布市| 信阳市| 黑龙江省| 合山市| 葫芦岛市| 南京市| 错那县| 巴马| 大洼县| 河南省| 沙洋县| 大渡口区| 卢氏县|