久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

CSDN 論壇

 昵稱11763061 2017-05-28

#include    'reg51.H'
#define uchar unsigned char
#define uint unsigned int
sbit IRIN = P3^5;         //紅外接收器數(shù)據(jù)線
sbit out1= P3^0;      //四個輸出口控制繼電器
sbit out2= P3^1;        
sbit out3= P3^2;        
sbit out4= P3^3;            
////////////////////////////////////////////
//定義數(shù)組IRCOM,,分別裝解碼后得到的數(shù)據(jù)
//IRCOM[0]   低8位地址碼
//IRCOM[1]   高8位地址碼
//IRCOM[2]   8位數(shù)據(jù)碼
//IRCOM[3]   8位數(shù)據(jù)碼的反碼      
/////////////////////////////////////////////

uchar IRCOM[4]=0;
//bit flag=0;
//bit flagcom=0; //串口發(fā)送標(biāo)志

void delay014ms(unsigned char x);    //x*0.14MS
void IR_init(void);
      
void delay014ms(unsigned char x)    
{
unsigned char i;
while(x--)
{
for (i = 0; i<>
     {;}
}
}
///////////////
//初始化
////////////
void IR_init(void)
{
   EA=1;
   EX0=1;                 //允許總中斷中斷,使能 INT0 外部中斷
   IT0=1;               //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)   
   IRIN=1;                    //I/O口初始化
}
//////////
//解碼過程
//////////////
void IR_CODE(void)    interrupt 0   //在外部中斷子程序中解碼
{
unsigned char j,k,m=0 ;
unsigned int  err,time=0,N=0;
EX0 = 0;
delay014ms(15); 
    if(IRIN==1)
{
         EX0=1;
    return;


}                           //確認(rèn)IR信號出現(xiàn)  
while (!IRIN)            //等IR變?yōu)楦唠娖?,跳過9ms的前導(dǎo)低電平信號,。
   {
    delay014ms(1);
N++;
if(N>50)
{
    EX0=1;
return;
}
   }
   N=0;
while (IRIN)            //等 IR 變?yōu)榈碗娖?,跳過4.5ms的前導(dǎo)高電平信號,。
   {
    delay014ms(1);
N++;
if(N>35)
{ EX0=1;
    return;
}

   }
N=0;
for (j=0;j<4;j++)         >
{
for (k=0;k<8;k++)        >
{  err=60;
     while ((IRIN==0)&&(err>0 )  )       //等 IR 變?yōu)楦唠娖?br>      {
    delay014ms(1);
err--;
 }
 err=500;
     while ((IRIN==1)&&(err>0) )          //計(jì)算IR高電平時長
      {
    delay014ms(1);
    time++; 
err--;       
    if (time>=30)
    { 
    EX0=1;
    return;
    }              //0.14ms計(jì)數(shù)過長自動離開,。
      }                        //高電平計(jì)數(shù)完畢             
     IRCOM[j]=IRCOM[j] >> 1;                  //數(shù)據(jù)最高位補(bǔ)'0'
     if (time>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補(bǔ)'1'
     time=0;
}
  }
   if (IRCOM[2]!=~IRCOM[3]) //不等的話表示解碼失敗
   //if (IRCOM[0]=0x00ff&&IRCOM[2]!=~IRCOM[3]) //不等的話表示解碼失敗
  
   {
IRCOM[4]=0;
EX0=1;
      return;
    }
       
EX0=1;
return;
}



//主程序

void main(void)
  {
           out1= 0;      
             out2= 0;        
             out3= 0;        
             out4= 0; 
             IR_init( ); //初始化外部中斷0

              TR1=1;     //開定時器1
       
                 if ( IRCOM[2]==0x0044)
  {out1=1;

   } 
        if ( IRCOM[2]==0x0007)
  {out2=1;

   } 
 if ( IRCOM[2]==0x0016)
  {out3=1;

   } 
if ( IRCOM[2]==0x0047)
  {out4=1;

   }                        
 

  
  }



 
想實(shí)現(xiàn)  紅外4個按鍵,,按1,繼電器1動作其他不動作,,松手繼電器1不動作,,同理其他,我現(xiàn)在時間和中斷  弄得不對,,請幫幫修改下  用紅顏色

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多