欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于單片機做格力空調遙控器求助

[復制鏈接]
ID:633855 發表于 2019-11-8 23:57 | 顯示全部樓層 |閱讀模式
目前在做格力空調遙控器,但是不懂問題出在哪,剛開始寫的代碼,用一個簡易示波器測出來的延時數據和空調遙控器差不多,但是好像沒有用,后來加上了38Khz之后,用示波器再測就亂碼了....代碼如下,P34是我的紅外發射,P13是我的按鍵,目前只寫了開的功能,校驗碼也是按照示波器得到的數據寫的,有一個一秒的延時,是示波器用到的,不然測不出來.....
#include <STC15F2K60S2.H>
#include <intrins.h>
bit logic=0;
       
void Delay9000us()                //@11.0592MHz
{
        unsigned char i, j;

        _nop_();
        i = 97;
        j = 207;
        do
        {
                while (--j);
        } while (--i);
}
   void Delay9us()                //@11.0592MHz
{
        unsigned char i;

        _nop_();
        _nop_();
        i = 22;
        while (--i);
}

void NO_Send(volatile unsigned int i) //載波不發射
{
        while(i--)
        {
                P34 = 0;
                Delay9us();
                Delay9us();
                Delay9us();
        }
}
void Send(volatile unsigned int i) //載波發射
{
        while(i--)
        {
                P34 = 1;
                Delay9us();
                P34 = 0;
                Delay9us();
                Delay9us();
        }
}

void high()
{  
   P34=0;
   NO_Send(22);
   P34=1;
   Send(59)        ;
}
void low()
{
  P34=0;
  NO_Send(22);
  P34=1;
   Send(22);
}
                                          
  char encode1 [35 ]=
  {1,0,0,  //模式
   0,      //開關
   0,0,     //風速
   0,      //掃風
   0,      //睡眠
   0,0,0,0,//溫度
   0,0,0,0,0,0,0,0,//定時數據
   0,      //加濕
   1,      //燈光
   0,      //負離子
   0,      //節電
   0,     //換氣
   0,0,0,1,0,1,0,0,1,0 //....

  };
  char encode2[33]={
  0,   //上下掃風
  0,0,0,  //....
  0,    //左右掃風
  0,0,0,  //....
  0,0,   //溫度顯示
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  //....
  0,  //節能
  0, //...
  1,1,0,0   //校驗碼

  };
void starcode()
{
   P34=0;
   NO_Send(333);
   P34=1;
   Send(166)        ;          

   }
   void ConnectCode()
{
    P34=0;
    NO_Send(22);        
        P34=1;
    Send(740);           

   }




void Delay1000ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 43;
        j = 6;
        k = 203;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void main()
{       
        int i=0;
        P34=0;
        for(;;)
        {       
                if(P13==0)
             {
                             starcode();
                          for(i=0;i<35;i++)
                             {  
                              if (encode1[i]==1)
                                 high();
                                else
                                 low();  
             
                          }

                              ConnectCode();
                             for(i=0;i<33;i++)
                         {
                                     if(encode2[i]==1)
                                             high();
                                else
                                            low();  
                          }
                         Delay1000ms();       
                   }
                else
                        P34=0;
               
    }
}




回復

使用道具 舉報

ID:123289 發表于 2019-11-9 08:41 | 顯示全部樓層
先了解一下,格力電器遙控的協議(接收部分)。
回復

使用道具 舉報

ID:617449 發表于 2019-11-9 09:48 | 顯示全部樓層
你好!
空調控制本身就是一個難點,因為紅外編碼比 NEC 等遙控器的要復雜;
這樣要制作的話,建議做成脈寬記錄型的,比較好實現,通用型好。。

https://blog.csdn.net/cjjcjj1/article/details/102949172
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表