在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)紅外遙控解碼程序

            單片機(jī)紅外遙控解碼程序

            作者: 時(shí)間:2012-08-24 來(lái)源:網(wǎng)絡(luò) 收藏
            #includereg52.h>#includeintrins.h>#define uchar unsigned char//宏定義#define uint unsigned int#define ulong unsigned longsbit   sound=P2^3;              //蜂鳴器sbit      IR=P1^2;       //IR_DATAuchar dm,i,j,k;  //IR_解碼用的變量uchar  aa[2];    //定義1個(gè)數(shù)組,用來(lái)存儲(chǔ)代碼,8位的數(shù)據(jù)碼和8位的數(shù)據(jù)反碼ulong  bb;       //定義bb用來(lái)存放用戶識(shí)別碼,這里采用的是26位的用戶識(shí)別uchar newdata;    //IR收到新的數(shù)據(jù)提示主函數(shù)去處理//0.9msvoid delay0_9ms(void){unsigned char j,k;for(j=18;j>0;j--)for(k=20;k>0;k--) ;}//1msvoid delay1ms(void){unsigned char i,j;for(i=2;i>0;i--)for(j=230;j>0;j--) ;}//4.5msvoid delay4_5ms(void){unsigned char i,j;for(i=10;i>0;i--)for(j=225;j>0;j--) ;}//100msvoid delay100ms(void){unsigned char i,j,k;for(i=200;i>0;i--)  for(j=20;j>0;j--)for(k=10;k>0;k--) ;}IR_JM(unsigned char date){switch(date){case 0x01:   {P0=0X00;break;} case 0x10:   {break;}default:     {break;}}}void main(){IT0=1;           //外部中斷0觸發(fā)方式控制位,下降沿觸發(fā)EX0=1;           //外部中斷0(INT0)中斷允許位EA=1;            //總中斷dm=0;       while(newdata){newdata=0;IR_JM(aa[0]);}}void t0(void) interrupt 0//外部中斷0的函數(shù){EA=0;                        //暫時(shí)關(guān)閉CPU的所有中斷請(qǐng)求for(k=0;k10;k++)  //重復(fù)10次,目的是檢測(cè)在9毫秒內(nèi)如果出現(xiàn)高電平就退出{                      //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadelay0_9ms();                   //延時(shí)0.9毫秒if (IR==1) {k=10;break;}    //延時(shí)0.9毫秒后判斷P3.2腳是否出現(xiàn)高電平如果有就退出else if(k==9)                //重復(fù)10次?{          //bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbwhile(IR==0);       //等待高電平避開(kāi)9毫秒低電平引導(dǎo)脈沖delay4_5ms();           //延時(shí)4.5毫秒避開(kāi)4.5毫秒的結(jié)果碼/********************************************//26位的用戶碼,前13位數(shù)據(jù)碼,后13位數(shù)據(jù)反碼*********************************************/for(j=1;j=26;j++)//每組數(shù)據(jù)為26位{                 while(IR==0);  //delay0_9ms();if(IR==1){delay1ms();dm=dm|0x2000000;              
            //因?yàn)槭?6位,一個(gè)"1",后面25個(gè)"0",轉(zhuǎn)化二進(jìn)制即為"1000000"    if(j26) dm=dm>>1;           
             //數(shù)據(jù)"1",右移一個(gè)"1",一共25次}                else  if(j26) dm=dm>>1;           
             //數(shù)據(jù)"0",一共25次}                    bb=dm;dm=0;/***************************************************//16位的用戶碼,前8位數(shù)據(jù)碼,后8位數(shù)據(jù)反碼****************************************************/for(i=0;i2;i++)     {                for(j=1;j=8;j++)//每組數(shù)據(jù)為8位{                while(IR==0);  //delay0_9ms();if(IR==1){delay1ms();dm=dm|0x80;if(j8) dm=dm>>1;           //數(shù)據(jù)"1",右移一個(gè)"1",一共7次}                else  if(j8) dm=dm>>1;       //數(shù)據(jù)"0",一共7次}                    aa[i]=dm;dm=0;}              /***************************************************//顯示部分****************************************************/            if(aa[0]==~aa[1])         //驗(yàn)證成功{   sound=0; delay100ms();sound=1;newdata=1;}}                     //bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb}                             //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEA=1;}


            評(píng)論


            相關(guān)推薦

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

            關(guān)閉