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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3215|回復: 0
收起左側

紅外遙控解碼

[復制鏈接]
ID:75926 發表于 2015-4-10 16:57 | 顯示全部樓層 |閱讀模式
#define _1_HighCap         
#define _1_LowFroor         
#define _0_HighCap         
#define _0_LowFroor      

#define Head_Cap
#define Head_Froor

#define IRDA_Read()    //讀出IRDA引腳的電平的方法
// 當高電平的時間在  
_1_LowFroor和_1_HighCap之間時認為接收到   1
//當高電平時間在
_0_LowFroor 和 _0_HighCap   之間時認為就收到   0

uint16_t Get_LowTime(void)
{
    //實現一個獲取高電平的時間的函數
}

uint16_t Get_HighTime(void)
{
    //實現一個回去低電平時間的函數
}

void Test(void)
{
    uint8_t HeadCode=0;   //第七位為 1表示接收到頭碼  [6:0]位 用來存儲 接收到的電平個數  
    uint8_t Irad_Buff[4];   //0-7 地址碼   8-15 地址碼反碼  16-23 數據碼  24-31 數據碼反碼
    uint8_t Byte,Bit;
    uint16_t HighTime;
    while(1)
    {
        if(!IRDA_Read())//出現了低電平
        {
            if(!(HeadCode&0x80))//如果沒有接受到頭碼
            {
                Get_LowTime();//過濾低電平
               
HighTime=Get_HighTime();
                if(HighTime>
Head_Froor&&HighTime<Head_Cap)  //如果高電平的時間在這兩個數之間 就
認為頭碼來了     {
                    HeadCode|=0x80;//標記頭碼來了
                }
            }
            else
            {
                for(Byte=0;Byte<4;Byte++)
                {
                    for(Bit=0;Bit<8;Bit++)
                    {
                     
  Get_LowTime();//過濾低電平
                        
HighTime=Get_HighTime();
                        if(HighTime>
_1_LowFroor&&HighTime<_1_HighCap)
                        {
                           
Irad_Buff[Byte]>>=1;
                            Irad_Buff[Byte]|=0x80;
                           
HeadCode++;
                        }
                        if(
HighTime>_0_LowFroor&&HighTime<_0_HighCap)
                        {
                           
Irad_Buff[Byte]>>=1;
                            Irad_Buff[Byte]&=0x7f;
                           
HeadCode++;
                        }

                    }
                }
                HeadCode&=0x7f;
            
if(HeadCode==32&&Irad_Buff[0]+Irad_Buff[1]==0xff&&Irad_Buff[2]+Irad_Buff[3]==0xff)
                 {
                    
HeadCode=0;
                    //解碼正確  得到的編碼就是Irad_Buff[2]
                 }
                else
                {
                    //錯誤
                  
HeadCode=0;
                }
            }
        }
    }
}














   



回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区二区三区在线 | 黑人精品一区二区 | 日韩一区二区在线观看视频 | 久久成人免费视频 | 久久精品免费看 | 在线不卡av | 日韩精品久久久久 | 欧美国产在线观看 | 亚洲小视频| 日日夜夜操操 | 中文字幕在线免费播放 | 久久久网 | 成人在线免费视频 | av香蕉| 国产午夜精品一区二区三区视频 | 成人福利视频在线观看 | 国产精品毛片一区视频播 | 91在线亚洲| 久久天天躁狠狠躁夜夜躁2014 | 成人小视频在线观看 | 人人爱人人插 | 国产区一区二区 | 日韩在线视频一区 | 放几个免费的毛片出来看 | 69精品视频 | 成人免费视频一区二区 | 国产99在线 | 999久久久国产精品 亚洲黄色三级 | 激情综合网五月 | 婷婷久久久| 亚洲精品免费看 | 国产精品日韩在线 | 中文字幕国产精品 | 日本不卡免费 | 欧美一级特黄aaaaaa | 成人区精品一区二区婷婷 | 91网站免费| www.久久久久 | 欧美激情三区 | www.超碰在线| 亚洲一区二区在线播放 |