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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4748|回復: 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美女电影 | 亚洲成人播放器 | 久久69精品久久久久久久电影好 | 久久aⅴ乱码一区二区三区 91综合网 | 国产免费一区二区三区 | 日日夜夜天天 | 在线观看国产www | 国产精品视频一区二区三区 | 亚洲精品66 | 91av视频在线| 中文字幕国产视频 | 欧美成人a∨高清免费观看 欧美日韩中 | 欧美国产日韩精品 | 老司机免费视频 | 亚洲三区在线 | 在线一区 | 久久久久久久av麻豆果冻 | 99精品国产一区二区青青牛奶 | 成人免费看黄网站在线观看 | 一区二区在线不卡 | 影音先锋欧美资源 | 日日骚网 | 黄色三级免费网站 | 青青久久 | 黄色三级在线播放 | 欧美色图另类 | 久久r精品 | 99精品欧美一区二区蜜桃免费 | 久久免费资源 | 欧美aⅴ | 精品久久香蕉国产线看观看亚洲 | 日韩www |