久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4762|回復: 2
收起左側

單片機之間通信(類紅外發送與接收)

[復制鏈接]
ID:51024 發表于 2014-8-10 12:31 | 顯示全部樓層 |閱讀模式


void call_user_sent()   
{
      static bit data_flag=0;
      static unsigned char a=0,b=0,c=0;
      TRISB5=1;
      TRISB2=0;
      if(!data_flag)        //起始頭
      {
             c++;
             if(c==1)  RB2=0;
             if(c==41) RB2=1;
             if(c>=51)
             {
                  c=0;
                 data_flag=1;  
            }
     }
     if(data_flag)     //數據開始
     {
            c++;
            if(c==1) RB2=0;
            if(c==4)
            {
                  if(a==0)
                  {
                       if((send_user[a]&0x80)!=0)  RB2=1;
                  }   
                  else if(a!=0)
                  {
                           if((send_user[a]&0x08)!=0)  RB2=1;
                  }      
           }
           if(c==7)
           {
                 if(a==0)
                {
                       if((send_user[a]&0x80)==0)  RB2=1;
                }   
                else if(a!=0)
                {
                         if((send_user[a]&0x08)==0)  RB2=1;
                }      
          }
         if(c>=10)
         {
                  c=0;
                  b++;
                  send_user[a]<<=1;
                  if((a==0)&&(b>=8))
                  {
                         b=0;
                          a++;
                 }
                if((a!=0)&&(b>=4))
                {
                          b=0;
                          a++;
                          if(a>=CODELEN)
                          {
                                       a=0;
                                      data_flag=0;
                                      sent_user_flag=0;
                           }            
                 }  
     }        
}

}

void call_user_rece()   
{        
            static bit hl;
            static bit hl_flag;
            static unsigned char low=0,high=0,count=0;
            static unsigned char temp=0,rece_flag=0;
            static unsigned char p,q;
            TRISB5=1;
            TRISB2=1;
            hl=RB5;
            if(hl)
            {
                   if(!hl_flag)
                   {
                           hl_flag=1;
                           low=count;
                           count=0;      
                    }   
                   else count++;   
            }
            else
            {
                     if(hl_flag)   
                     {
                            hl_flag=0;
                            high=count;
                            count=0;
                            if(rece_flag)
                            {
                                        temp<<=1;
                                        if((4<9))
                                        {
                                                        temp=temp|0x00;      
                                        }
                                        else if((0<4))
                                        {
                                                       temp=temp|0x01;   
                                        }
                                        q++;
                                       if((p==0)&&(q>=8))
                                       {
                                                     q=0;
                                                     rece_user[p]=temp;
                                                     p++;
                                       }
                                       if((p!=0)&&(q>=4))  
                                       {
                                                 q=0;
                                                 rece_user[p]=temp&0x0f;
                                                 p++;
                                                if(p>=CODELEN)
                                                {
                                                            p=0;
                                                            rece_flag=0;
                                                            if((0xee==rece_user[0])||(0xfa==rece_user[0]))
                                                            {
                                                                            Alarm();        //報警
                                                             }
                                                            rece_user_proc=1;   //執行接收處理函數                                       
                                                 }      
                                      }            
                           }
                          else
                           {
                                     if(high>30)
                                      {
                                              p=0;
                                              q=0;
                                              temp=0;
                                              rece_flag=1;  
                                      }   
                           }
                     }
                    else count++;        
          }                                 

}


回復

使用道具 舉報

ID:72495 發表于 2015-1-20 08:35 | 顯示全部樓層
學習了
回復

使用道具 舉報

ID:159270 發表于 2017-2-25 23:52 | 顯示全部樓層
菜鳥,看不明
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本欧美久久久久免费播放网 | 精品日韩一区二区三区 | 天堂av在线资源 | 福利在线观看 | 欧美亚洲视频 | 啪啪网站免费 | 91麻豆精品国产91久久久久久久久 | 日本中文字幕在线 | 99福利视频 | 日韩精品免费在线观看 | 亚洲二区视频 | 一区二区三区不卡视频 | 欧美色噜噜| 国产中文字幕一区二区 | 99热久| 国精产品99永久一区一区 | 97久久精品 | 中国农村毛片免费播放 | 中国女人真人一级毛片 | 成人在线免费视频观看 | 久久99视频 | 日本理伦片午夜理伦片 | 在线观看日韩欧美 | 91超碰在线播放 | 婷婷综合视频 | 特黄一级视频 | 完全免费av | 在线视频日本 | 午夜免费观看视频 | 99久久久国产精品 | 一区在线观看 | 亚洲免费在线 | 日韩免费精品视频 | www.久久久久| 国产午夜免费视频 | 国产一级片网站 | 国产成人福利 | 免费观看一级毛片 | 亚洲欧美在线视频 | 国内精品久久久久久久久 | 国产传媒av|