中级维修师
 
金币122 分
威望139 点
UID133127
好友4
记录0
回帖9
主题10
积分315
阅读权限30
注册时间2008-8-19
最后登录2020-5-29
在线时间43 小时
中级维修师
 
- 回帖
- 9
- 主题
- 10
- 积分
- 315
- 在线时间
- 43 小时
- 注册时间
- 2008-8-19
- 最后登录
- 2020-5-29
|
本帖最后由 lbq691477940 于 2011-7-25 21:54 编辑
分享一下格力空调遥控器读码程序,有了这么码自己就可以做一个遥控器出来了
下图为 28度、风速自动、模式制冷、健康、超强、上下送风、灯光开时由开到关及由关到开的发码过程:
/*******************************************************************************************
格力空调遥控器(YB0F2)解码
CUP:STC89C52RC 晶振:11.0569MHz
直接由串口输出 波特率:57600
************************************ 说 明 **********************************************
解码方式:
以一个9ms的低电平和4.5ms的高电平为引导码,后跟35位二进制代码 接着0.565ms低电平和20MS高电平跟32位二进制代码
前4个字节每个字节为8位,中间1个字节只有3位,接着为20MS高电平,跟后4个字节每个字节为8位
以低电平为0.565ms、高电平为0.56ms、 周期为1.125ms的组合表示"0";
以低电平为0.565ms、高电平为1.685ms、周期为2.25ms的组合表示"1"。
注意:经过红外接收头解调后单片机接收到的高低电平是和遥控器发射时是相反的一个过程
* 兼容 1T-12T单片机中断方式红外接收数据,并通过串口发送
程序编辑: lbq691477940 22/07/2011
/*******************************************************************************************/
/*******************************************************************************************/
#include <reg52.h>
typedef unsigned char uint8;
sbit Ir_Pin = P3^2;
uint8 Ir_Buf[9]; //用于保存解码结果
/*******************************************************************************************
* 外部中断0初始化
/*******************************************************************************************/
void int1_init(void)
{
IT0 = 1; //下降沿有效
EX0 = 1;
EA = 1;
}
/*******************************************************************************************
* UART初始化
* 波特率:9600 波特率:57600
/*******************************************************************************************/
void uart_init(void)
{
TMOD = 0x21;
/* SCON = 0x50;
TH1 = 0xFD; //9600bps @ 11.0592MHz
TL1 = 0xFD;
TR1 = 1; */
SCON = 0x50;
PCON |= 0x80;
TH1 = 0xff; //57600bps @ 11.0592MHz
TL1 = 0xff;
TR1 = 1;
}
/****************************** 延时21ms子程序 ************************************
void delay21ms(void) //
{
uint8 a,b;
for(b=150;b>0;b--)
for(a=63;a>0;a--);
}
/*******************************************************************************************/
/*******************************************************************************************
* UART发送一字节
/*******************************************************************************************/
void UART_Send_Byte(uint8 dat)
{
SBUF = dat;
while (TI == 0);
TI = 0;
}
/*******************************************************************************************
* 获取低电平时间
/*******************************************************************************************/
unsigned int Ir_Get_Low()
{
TL0 = 0;
TH0 = 0;
TR0 = 1;
while (!Ir_Pin && (TH0 & 0x80)==0);//一直计到Ir_Pin不等0与计到大于1.085*32768=35553.28us
TR0 = 0;
return (TH0 * 256 + TL0); //返回T1 高八位和低八位计数值
}
。。。。。。。。。。。。。。。。。。。。。略!
下图为 28度、风速自动、模式制冷、健康、超强、上下送风、灯光开时由开到关及由关到开的按键码
下面是这个读码固件,电路连接请看程序的开头说明:
格力空调遥控器(YB0F2)解码.rar
(755 Bytes, 下载次数: 7)
|
|