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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2699|回復: 5
打印 上一主題 下一主題
收起左側

關于單片機解碼格力空調源代碼,求大佬解答

[復制鏈接]
跳轉到指定樓層
樓主
ID:633855 發表于 2019-11-1 14:59 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用的STC15F60S2單片機,本來以為挺簡單的,做個PCB然后寫代碼就行,但是按照百度搜到的代碼,也寫了出來,控制單片機發送起始碼加35位控制碼加中斷碼加32位控制碼,但是空調沒反應,不知道是啥地方出了問題。。。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2019-11-1 15:52 | 只看該作者
空調遙控器芯片多為定制,同一品牌的遙控器都未必能通用。馬云家搜一下,挺便宜,不必自己勞神寫代碼。如果是練手就另當別論。
回復

使用道具 舉報

板凳
ID:610681 發表于 2019-11-1 15:53 | 只看該作者
你好!
空調的紅外控制難度是比較大的,原因呢
1、原理圖或PCB本身有問題
2、程序問題,38K發射載波有問題
3、你這什么都沒發,只能說這些了
回復

使用道具 舉報

地板
ID:633855 發表于 2019-11-1 22:47 | 只看該作者
來51學習的 發表于 2019-11-1 15:53
你好!
空調的紅外控制難度是比較大的,原因呢
1、原理圖或PCB本身有問題

參加學校的比賽然后復試是做這個,第一次接觸這類東西,代碼也是按著百度搜到的紅外協議直接寫的代碼,很菜....不過PCB應該沒啥問題,裝個單片機,液晶顯示屏,復位開關,紅外發射模塊,這些都具備,代碼如下:
#include <STC15F2K60S2.H>
#include <intrins.h>

#define LCD_DATA P2    //D0~D7的8位數據口
sbit E =P3^7;sbit RW=P3^6;sbit RS=P3^5;//使能(啟用)端,讀寫控制端
        void check_busy()                        //液晶忙檢測函數,用戶無須調用
{
  LCD_DATA=0xff;
  RS=0;RW=1;E=0;E=1;
  while(LCD_DATA&0x80){E=0;E=1;}       //如果最高位為1說明正忙,嘗試再寫入
}
        void write_command(unsigned char command)//液晶命令控制函數
        {
  check_busy();
  E=1;                //使能液晶
  RW=RS=0;            //命令模式     
  LCD_DATA=command;   //寫入數據
  E=0;               
}
void write_data(unsigned char Data)      //液晶顯示字符函數
{
  check_busy();
  RW=0;
  RS=E=1;
  LCD_DATA=Data;
  E=0;
}
void LCD_init()          //液晶初始化函數
{
  write_command(0x38); //顯示5*7點陣數據
  write_command(0x0c); //開顯示,顯示閃爍光標
  write_command(0x06); //每寫入一個字符光標自動右移一位
  write_command(0x01); //清屏
}
   void Delay9000us()                //@11.0592MHz
{
        unsigned char i, j;

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

        _nop_();
        _nop_();
        i = 18;
        j = 216;
        do
        {
                while (--j);
        } while (--i);
}

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

        _nop_();
        _nop_();
        _nop_();
        i = 6;
        j = 231;
        do
        {
                while (--j);
        } while (--i);
}

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

        _nop_();
        _nop_();
        i = 49;
        j = 101;
        do
        {
                while (--j);
        } while (--i);
}
void Delay20000us()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 1;
        j = 216;
        k = 35;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void main()
{        int i=1;
        LCD_init();
        if(P13==0)
        {
                P34=0;
                Delay9000us();
                P34=1;
                Delay4500us();
                for(i=1;i<7;i++)
                {
                  P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                 
                }
                P34=0;
                Delay550us();
                P34=1;
                Delay1660us();
                for(i=1;i<22;i++)
                {
                 P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                }
                 P34=0;
                Delay550us();
                P34=1;
                Delay1660us();
                 P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                 P34=0;
                Delay550us();
                P34=1;
                Delay1660us();
           P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                  P34=0;
                  Delay550us();
                  P34=1;          
                  Delay550us();
                  P34=0;
                Delay550us();
                P34=1;
                Delay1660us();
                P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                  P34=0;
                  Delay550us();
                  P34=1;
                  Delay20000us();
                  for(i=1;i<9;i++)
                  {
                   P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                  }
                   P34=0;
                Delay550us();
                P34=1;
                Delay1660us();
                for(i=1;i<21;i++)
                  {
                   P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                  }
                   P34=0;
                Delay550us();
                P34=1;
                Delay1660us();
           P34=0;
                  Delay550us();
                  P34=1;
                  Delay550us();
                   P34=0;
                Delay550us();
                P34=1;
                Delay1660us();

                }
       
        else
                P13=0;

}
回復

使用道具 舉報

5#
ID:633855 發表于 2019-11-1 22:48 | 只看該作者
wulin 發表于 2019-11-1 15:52
空調遙控器芯片多為定制,同一品牌的遙控器都未必能通用。馬云家搜一下,挺便宜,不必自己勞神寫代碼。如果 ...

嗯,確實是練手,參加學校的比賽用到
回復

使用道具 舉報

6#
ID:235200 發表于 2019-11-2 13:21 | 只看該作者
先用正常的遙控器去測試所發出的波,再用單片機模擬發射
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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