亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ir.c

?? 紅外遙控解碼程序
?? C
字號:
//Fosc=11.0592MHz    
// states for and variables IR data processing ;    

#include <reg54.h>

typedef enum{     
             IR_idle,     
             IR_waitstart,              
             IR_getaddr,              
             IR_getaddrinv,              
             IR_getdata,              
             IR_getdatainv              
            }_IRstate;                   
   
_IRstate IRstate = IR_idle;    
   
unsigned char IRaddr = 0xff;    
unsigned char _IRaddr = 0xff;    
unsigned char IRdata = 0xff;    
unsigned char _IRdata = 0xff;    
unsigned char IR_repeat = 0;    
unsigned char IR_ready = 0;    
unsigned char IR_poweron = 0;    
//bit ir_done=0;    
// time constants    
unsigned int IRtimer = 0; // IR timeout     
   
//cpu初始化    
void cpu_init(void)    
{    
    TMOD=0X11; 		// T0 and T1 十六位定時                    
    TH0=0xee;  		//fosc=11.0592M,timer=5ms    
    TL0=0x00;     
    TR0=1; 			// run timer 0;    
    TF0=0;    
   
    ET0=1;  		// enable tmr 0 overflow interrupt    
    IT0=1; 			// int0 edge sensitive    
    EX0=1; 			//  enable "int0"    
    EA=1;   		// global interupt enable     
}    
   
//T0中斷    
void tmrint() interrupt 1    
{    
    TH0=0xee;    
    TL0=0x00;     
    if (IRtimer)     	//IR接收超時    
        --IRtimer; 		//     
    else   
    {    
        IRstate=IR_idle;    
//        IR_poweron=0;    
    }    
}    
   
//Fosc=11.0592MHz    
#define msec_12p5  	0x2d00    
#define msec_15  	0x3600    
#define msec_9  	0x2066    
//#define msec_9  0x1066    
#define msec_2p5  	0x900    
#define msec_0p9  	0x33d    
#define msec_1p68  	0x610    
   
   
//void IRint() interrupt 0(void)    
   
//When the IR receive pin goes low and interrupt is generated     
// IR is collected by starting timer 2 in the first falling edge of the pin    
// then on every other falling edge, the timer value is saved and the timer restarted .      
// the captured time is then used to get the IR data     
// a "start of data" is 13.5Msec,a "1" is 2.25Msec,a "0" is 1.12 msec and a "repeat" is 11.25msec.    
// the counter increments at 1.085 Usec    
// I allow a fairly large tolerance to time jitter but there are no false triggers seen.    
   
void IRint() interrupt 0    
{    
    static unsigned char bits;    
    unsigned short time;    
    switch(IRstate)    
    {    
        case IR_idle:    
            TL1=0;    
            TH1=0;    
            TR1=1;    
            IRstate=IR_waitstart;    
            IRtimer=26;    
            break;    
        case IR_waitstart: 									//P2_4=!P2_4;    
            TR1=0;    
            time=TH1;    
            time =(time <<8)+TL1;;    
            TL1=0;    
            TH1=0;    
            TR1=1;    
            if ((time > msec_12p5)&&(time < msec_15)) 		// greater than 12.5Msec & less than 15 msec = start code     
            {        
                IRaddr=0;    
                _IRaddr=0;    
                IRdata=0;    
                _IRdata=0;    
                bits=1;    
                IRstate=IR_getaddr;    
            }    
            else if ((time > msec_9)&&(time <  msec_12p5))	// less than 12.5Msec  and greater than 9 msec =Repeat code     
            {         
                IR_repeat=2;    
                IRstate=IR_idle;    
            }    
            else     
            {           									// to short, bad data just go to idle     
                IRstate=IR_idle;                    
            }                    
            break;    
        case IR_getaddr:    								// P2_4=!P2_4;    
            TR1=0;    
            time=TH1;    
            time =(time <<8)+TL1;;    
            TL1=0;    
            TH1=0;    
            TR1=1;    
            if ((time>msec_2p5)||(time<msec_0p9))			// if  > 2.5msec or shorter than .9Msec bad data , go to idle     
            {       
                IRstate=IR_idle;    
                break;     
            }    
            if (time>msec_1p68)								// greater than 1.68Msec is a 1    
            {          
                IRaddr|= bits;    
            }    
            bits=bits<<1;    
            if (!bits)    
            {    
                IRstate=IR_getaddrinv;                    
                bits=1;    
            }    
            break;                  
        case IR_getaddrinv:  								//P2_4=!P2_4;    
            TR1=0;    
            time=TH1;    
            time =(time <<8)+TL1;;    
            TL1=0;    
            TH1=0;    
            TR1=1;    
            if ((time>msec_2p5)||(time<msec_0p9))			// if  > 2.5msec or shorter than .9Msec bad data , go to idle     
            {       
                IRstate=IR_idle;    
                break;     
            }    
            if (time>msec_1p68)								// greater than 1.68Msec is a 1     
            {         
                _IRaddr|= bits;    
            }    
            bits=bits<<1;    
            if (!bits)    
            {    
                IRstate=IR_getdata;;                    
                bits=1;    
            }    
            break;                  
        case IR_getdata:    
            TR1=0;    
            time=TH1;    
            time =(time <<8)+TL1;;    
            TL1=0;    
            TH1=0;    
            TR1=1;    
            if ((time>msec_2p5)||(time<msec_0p9))			// if  > 2.5msec or shorter than .9Msec bad data , go to idle    
            {        
                IRstate=IR_idle;    
                break;     
            }    
            if (time>msec_1p68)								// greater than 1.68Msec is a 1    
            {          
                IRdata|= bits;    
            }    
            bits=bits<<1;    
            if (!bits)    
            {    
                IRstate=IR_getdatainv;                    
                bits=1;    
            }    
            break;                  
        case IR_getdatainv:    
            TR1=0;    
            time=TH1;    
            time =(time <<8)+TL1;;    
            TL1=0;    
            TH1=0;    
            TR1=1;    
            if ((time>msec_2p5)||(time<msec_0p9)) 			// if  > 2.5msec or shorter than .9Msec bad data , go to idle     
            {       
                IRstate=IR_idle;    
                break;     
            }    
            if (time>msec_1p68)			 					// greater than 1.68Msec is a 1     
            {         
                _IRdata|= bits;    
            }    
            bits=bits<<1;    
            if (!bits)         			// we have it all , now we make sure it is a NEC code from the CHS IR transmitter    
            {                   		// make sure address,~address are correct , data ,~data are correct and address is 0.    
                IR_ready=((IRaddr^_IRaddr)==0xff)&&((IRdata^_IRdata)==0xff)&&(IRaddr==0);    
                if(IR_ready)    
                {    
                    IRstate=IR_idle;    
                }        
            }    
            break;                  
        default:    
            IRstate=IR_idle;    
            break;    
    }    
}    
   
void main(void)    
{    
    cpu_init();    
    while(1)    
    {    
        if(IR_ready)    
        {    
            IR_ready=0;    
            switch(IRdata)    
            {    
                case 0x45:        //1    
                    //your code    
                    break;    
                case 0x44:        //3    
                    //your code    
                    break;    
                case 0x43:       //4    
                    //your code    
                    break;    
                case 0x08:        //prev    
                    //your code    
                    break;    
                case 0x5a:        //next    
                    //your code    
                    break;    
                default:    
                    break;    
  /*       &n bsp;*/  }    
        }    
    }    
}    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区在线不卡| 日韩亚洲欧美一区| 一区在线观看视频| 欧美性videosxxxxx| 国产精品女同一区二区三区| 高清成人在线观看| 国产精品你懂的| 色悠悠久久综合| 亚洲一区二区3| 欧美一三区三区四区免费在线看| 蜜桃视频在线观看一区| 亚洲精品在线观| 成av人片一区二区| 午夜亚洲福利老司机| 欧美变态tickle挠乳网站| 国产盗摄女厕一区二区三区| 国产精品视频第一区| 欧美亚洲一区三区| 日日欢夜夜爽一区| 国产亚洲美州欧州综合国| www.日韩在线| 日韩电影在线观看网站| 26uuu久久综合| 91在线观看一区二区| 视频一区在线视频| 中文字幕欧美国产| 欧美亚洲一区二区在线| 国产精品白丝av| 亚洲一区二区在线免费观看视频| 日韩一区二区不卡| 91在线视频官网| 久久精品av麻豆的观看方式| 亚洲特黄一级片| 欧美变态tickle挠乳网站| 91最新地址在线播放| 久久99久久99| 免费的国产精品| 91天堂素人约啪| 人禽交欧美网站| 精品国产乱码久久久久久浪潮| 成人黄色a**站在线观看| 免费成人在线播放| 亚洲一区二区三区小说| 欧美激情综合在线| 欧美一级欧美三级| 色视频成人在线观看免| 国产在线国偷精品产拍免费yy| 亚洲精品午夜久久久| 国产亚洲精品bt天堂精选| 欧美日韩精品一区二区天天拍小说| 7777精品伊人久久久大香线蕉完整版 | 久99久精品视频免费观看| 国产精品视频yy9299一区| 精品国产不卡一区二区三区| 欧美日韩精品一区二区在线播放| av一区二区三区四区| 国产精品一区免费视频| 日本少妇一区二区| 亚洲一区二区黄色| 一区二区三区中文在线| 亚洲国产精品激情在线观看| 欧美成人精精品一区二区频| 欧美日韩国产经典色站一区二区三区| 99久久婷婷国产| 国产激情偷乱视频一区二区三区| 久久精品99国产精品| 日韩av网站在线观看| 亚洲一区二区三区激情| 尤物在线观看一区| 亚洲六月丁香色婷婷综合久久 | 成人综合婷婷国产精品久久蜜臀 | 99re热这里只有精品免费视频| 国产在线播放一区三区四| 青草国产精品久久久久久| 三级欧美在线一区| 亚洲成人黄色影院| 亚洲va在线va天堂| 亚洲国产sm捆绑调教视频 | 国产精品亚洲视频| 国产原创一区二区三区| 精品在线免费视频| 久久国产综合精品| 激情欧美一区二区| 国产在线不卡一卡二卡三卡四卡| 国内一区二区视频| 国产精品一线二线三线精华| 国产麻豆精品一区二区| 麻豆免费看一区二区三区| 久久99国产精品久久99果冻传媒| 久久99精品久久久| 国产老妇另类xxxxx| 国产精品99久| 91在线你懂得| 欧美性生活久久| 欧美一区二区三区婷婷月色 | 欧美三级午夜理伦三级中视频| 日本精品一区二区三区高清 | 91精品国产综合久久久蜜臀粉嫩| 欧美人成免费网站| 日韩精品中文字幕在线不卡尤物| 欧美精品一区二区蜜臀亚洲| 欧美国产成人在线| 一区二区三区.www| 天天综合日日夜夜精品| 奇米综合一区二区三区精品视频| 国产一区二区三区免费播放| www.日韩在线| 正在播放亚洲一区| 国产三级精品视频| 亚洲欧美欧美一区二区三区| 午夜精品福利在线| 国产在线不卡一卡二卡三卡四卡| 91视频com| 日韩无一区二区| 日本一区二区三区四区| 一区二区欧美精品| 久久99精品久久久| 91国产丝袜在线播放| 亚洲日本青草视频在线怡红院 | 一区二区成人在线观看| 青青草97国产精品免费观看| 不卡av在线免费观看| 91精品国产福利在线观看| 国产欧美日韩亚州综合| 亚洲一二三四久久| 国产黑丝在线一区二区三区| 欧美综合一区二区| 国产日产欧美一区| 午夜av一区二区三区| 国产91精品一区二区麻豆网站 | 日韩欧美国产一区二区在线播放| 国产精品三级视频| 麻豆91在线观看| 欧美日韩三级一区| 亚洲欧洲精品成人久久奇米网| 日本欧美一区二区| 色一情一乱一乱一91av| 国产欧美一区二区在线| 免费亚洲电影在线| 欧洲中文字幕精品| 日本一区二区三区视频视频| 久久电影国产免费久久电影 | 成人av动漫网站| 精品欧美一区二区久久| 亚洲成人福利片| 91美女在线看| 国产精品女人毛片| 国产成人aaa| 日韩一区二区三区观看| 亚洲伊人色欲综合网| 不卡视频一二三四| 久久久久国产精品麻豆| 精品一区二区三区不卡| 欧美日韩国产首页在线观看| 亚洲欧美一区二区三区孕妇| 成人午夜视频免费看| 久久综合久久综合九色| 久久精品久久精品| 日韩精品最新网址| 免费欧美高清视频| 欧美一区二区网站| 日韩精品久久久久久| 欧美剧情电影在线观看完整版免费励志电影 | 天天操天天干天天综合网| 色呦呦国产精品| 自拍偷在线精品自拍偷无码专区| 成人一道本在线| 国产精品久久看| 欧美精品一区男女天堂| 久久99精品久久久| 欧美精品一区二区三区在线播放 | 在线看一区二区| 亚洲午夜视频在线| 欧美精品色一区二区三区| 亚洲国产日日夜夜| 欧美精品久久一区二区三区| 视频一区中文字幕国产| 欧美成人女星排行榜| 久久激情五月婷婷| 久久久久久亚洲综合| 成人永久免费视频| 日韩一区在线看| 欧美视频中文字幕| 日本成人在线电影网| 精品国产亚洲在线| 国产凹凸在线观看一区二区| 中文无字幕一区二区三区| 91丨porny丨中文| 亚洲高清免费在线| 精品毛片乱码1区2区3区| 国产精品亚洲午夜一区二区三区| 国产精品欧美综合在线| 色域天天综合网| 免费xxxx性欧美18vr| 国产三级精品视频| 欧美色老头old∨ideo| 久久不见久久见免费视频7| 国产日韩欧美综合在线| 一本大道久久a久久精品综合| 首页亚洲欧美制服丝腿|