如何编写红外遥控器 客户码 红外遥控编解码码格式

\u7ea2\u5916\u9065\u63a7\u5668\u7801\u503c\u7684\u7f16\u5199

\u4ec0\u4e48\u610f\u601d\uff1f\u4e0d\u660e\u767d\uff0c\u4e00\u4e2a\u6309\u952e\u4ea7\u751f\u4e24\u4e2a\u952e\u503c\uff1f\uff1f\uff1f

1\u3001\u7f16\u7801\u683c\u5f0f
\u3000\u3000\u73b0\u6709\u7684\u7ea2\u5916\u9065\u63a7\u5305\u62ec\u4e24\u79cd\u65b9\u5f0f\uff1aPWM\uff08\u8109\u51b2\u5bbd\u5ea6\u8c03\u5236\uff09\u548cPPM\uff08\u8109\u51b2\u4f4d\u7f6e\u8c03\u5236\uff09\u3002
\u3000\u3000\u4e24\u79cd\u5f62\u5f0f\u7f16\u7801\u7684\u4ee3\u8868\u5206\u522b\u4e3aNEC\u548cPHILIPS\u7684RC-5\u3001RC-6\u4ee5\u53ca\u5c06\u6765\u7684RC-7\u3002
\u3000\u3000PWM\uff08\u8109\u51b2\u5bbd\u5ea6\u8c03\u5236\uff09\uff1a\u4ee5\u53d1\u5c04\u7ea2\u5916\u8f7d\u6ce2\u7684\u5360\u7a7a\u6bd4\u4ee3\u8868\u201c0\u201d\u548c\u201c1\u201d\u3002\u4e3a\u4e86\u8282\u7701\u80fd\u91cf\uff0c\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u53d1\u5c04\u7ea2\u5916\u8f7d\u6ce2\u7684\u65f6\u95f4\u56fa\u5b9a\uff0c\u901a\u8fc7\u6539\u53d8\u4e0d\u53d1\u5c04\u8f7d\u6ce2\u7684\u65f6\u95f4\u6765\u6539\u53d8\u5360\u7a7a\u6bd4\u3002\u4f8b\u5982\u5e38\u7528\u7684\u7535\u89c6\u9065\u63a7\u5668\uff0c\u4f7f\u7528NEC upd6121\uff0c\u5176\u201c0\u201d\u4e3a\u8f7d\u6ce2\u53d1\u5c040.56ms,\u4e0d\u53d1\u5c040.56ms\uff1b\u5176\u201c1\u201d\u4e3a\u8f7d\u6ce2\u53d1\u5c040.56ms,\u4e0d\u53d1\u5c041.68ms\uff1b\u6b64\u5916\uff0c\u4e3a\u4e86\u89e3\u7801\u7684\u65b9\u4fbf\uff0c\u8fd8\u6709\u5f15\u5bfc\u7801\uff0cupd6121\u7684\u5f15\u5bfc\u7801\u4e3a\u8f7d\u6ce2\u53d1\u5c049ms\uff0c\u4e0d\u53d1\u5c044.5ms\u3002upd6121\u603b\u5171\u7684\u7f16\u7801\u957f\u5ea6\u4e3a108ms\u3002
\u3000\u3000\u4f46\u5e76\u4e0d\u662f\u6240\u6709\u7684\u7f16\u7801\u5668\u90fd\u662f\u5982\u6b64\uff0c\u6bd4\u5982TOSHIBA\u7684TC9012\uff0c\u5176\u5f15\u5bfc\u7801\u4e3a\u8f7d\u6ce2\u53d1\u5c044.5ms\uff0c\u4e0d\u53d1\u5c044.5ms\uff0c\u5176\u201c0\u201d\u4e3a\u8f7d\u6ce2\u53d1\u5c040.52ms,\u4e0d\u53d1\u5c040.52ms,\u5176\u201c1\u201d\u4e3a\u8f7d\u6ce2\u53d1\u5c040.52ms,\u4e0d\u53d1\u5c041.04ms\u3002
\u3000\u3000PPM\uff08\u8109\u51b2\u4f4d\u7f6e\u8c03\u5236\uff09\uff1a\u4ee5\u53d1\u5c04\u8f7d\u6ce2\u7684\u4f4d\u7f6e\u8868\u793a\u201c0\u201d\u548c\u201c1\u201d\u3002\u4ece\u53d1\u5c04\u8f7d\u6ce2\u5230\u4e0d\u53d1\u5c04\u8f7d\u6ce2\u4e3a\u201c0\u201d\uff0c\u4ece\u4e0d\u53d1\u5c04\u8f7d\u6ce2\u5230\u53d1\u5c04\u8f7d\u6ce2\u4e3a\u201c1\u201d\u3002\u5176\u53d1\u5c04\u8f7d\u6ce2\u548c\u4e0d\u53d1\u5c04\u8f7d\u6ce2\u7684\u65f6\u95f4\u76f8\u540c\uff0c\u90fd\u4e3a0.68ms\uff0c\u4e5f\u5c31\u662f\u6bcf\u4f4d\u7684\u65f6\u95f4\u662f\u56fa\u5b9a\u7684\u3002
\u3000\u3000\u901a\u8fc7\u4ee5\u4e0a\u5bf9\u7f16\u7801\u7684\u5206\u6790\uff0c\u53ef\u4ee5\u5f97\u51fa\u4ee5\u67d0\u79cd\u56fa\u5b9a\u683c\u5f0f\u7684\u201c0\u201d\u548c\u201c1\u201d\u53bb\u5b66\u4e60\u7ea2\u5916\uff0c\u662f\u5f88\u6709\u53ef\u80fd\u4e0d\u6210\u529f\u7684\u3002\u5373\u5e02\u9762\u4e0a\u6240\u5ba3\u4f20\u7684\u53ef\u4ee5\u5b66\u4e6064\u4f4d\u3001128\u4f4d\u5fc5\u7136\u662f\u4e0d\u53ef\u9760\u7684\u3002
\u3000\u3000\u53e6\u5916\uff0c\u7531\u4e8e\u7a7a\u8c03\u7684\u72b6\u6001\u8fdc\u591a\u4e8e\u7535\u89c6\u3001\u97f3\u50cf\uff0c\u5e76\u4e14\u6ca1\u6709\u4e00\u4e2a\u6807\u51c6\uff0c\u6240\u4ee5\u5404\u5382\u5bb6\u90fd\u6309\u81ea\u5df1\u7684\u683c\u5f0f\u53bb\u505a\u4e00\u4e2a\uff0c\u9020\u6210\u5dee\u5f02\u66f4\u5927\u3002\u6bd4\u5982\uff1a\u7f8e\u7684\u7684\u9065\u63a7\u5668\u91c7\u7528PWM\u7f16\u7801\uff0c\u7801\u957f120ms\u5de6\u53f3\uff1b\u65b0\u79d1\u7684\u9065\u63a7\u5668\u4e5f\u91c7\u7528PWM\u7f16\u7801\uff0c\u7801\u957f500ms\u5de6\u53f3\u3002\u5982\u6b64\u5927\u7684\u5dee\u5f02\uff0c\u5982\u679c\u6309\u201c\u4f4d\u201d\u7684\u6982\u5ff5\u6765\u8bb2\uff0c\u5e94\u8be5\u662f\u591a\u5c11\u4f4d\u5462\uff1f64\uff1f128?\u663e\u7136\u90fd\u4e0d\u53ef\u80fd\u5305\u542b\u5982\u6b64\u957f\u77ed\u4e0d\u4e00\u7684\u7f16\u7801\u3002
\u3000\u30002\u3001\u5b66\u4e60\u6a21\u5f0f
\u3000\u3000\u73b0\u5728\u7528\u6765\u5b66\u4e60\u7ea2\u5916\u7684CPU\uff0c\u65e0\u5916\u4e4e\u4ee5\u4e0b\u51e0\u79cd\uff1a
\u3000\u3000MCS-51\u7cfb\u5217\u3001microchip pic16\u7cfb\u5217\u3001winbond w741\u7cfb\u5217\u3001holtek ht48\u7cfb\u5217
\u3000\u3000\u4ee5\u4e0a\u7684CPU\u7531\u4e8e\u4ef7\u683c\u4fbf\u5b9c\u3001\u4f7f\u7528\u91cf\u5927\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\u5728\u9065\u63a7\u5668\u4e0a\u3002
\u3000\u3000\u4ee5\u4e0a\u7684CPU\u7684\u57fa\u672c\u70b9\u662f\uff1a\u6267\u884c\u901f\u5ea6\u57281us\u5de6\u53f3\uff0c\u6570\u636e\u5b58\u50a8\u5668\u4e00\u822c\u4e3a256\u4e2a\u5b57\u8282\u3002\u5982\u679c\u6309\u56fa\u5b9a\u683c\u5f0f\u5b66\u4e60\uff0c\u4e00\u822c\u53ef\u4ee5\u5b66\u5230128\u4f4d\uff08\u5176\u4ed6\u7a0b\u5e8f\u4f1a\u5360\u7528\u4e00\u4e9b\u6570\u636e\u5b58\u50a8\u5668\uff09\uff1b\u5982\u679c\u4e0d\u6309\u56fa\u5b9a\u7684\u683c\u5f0f\uff0c\u9700\u8981\u627e\u51fa\u7f16\u7801\u7684\u6700\u5c0f\u516c\u7ea6\u6570\u4f5c\u4e3a\u57fa\u672c\u5355\u4f4d\uff0c\u5219\u53ef\u4ee5\u5b66\u4e60\u5230\u7684\u4f4d\u6570\u5927\u5927\u964d\u4f4e\uff0c\u8fbe\u4e0d\u5230\u5b9e\u7528\u7684\u6548\u679c\u3002\u4f46\u662f\uff0c\u5373\u4f7f\u5982\u6b64\uff0c\u627e\u5230\u7684\u6700\u5c0f\u516c\u7ea6\u6570\u4e0d\u53ef\u80fd\u6ee1\u8db3\u6240\u6709\u7684\u7ea2\u5916\u8bbe\u5907\uff0c\u9664\u975e\u6700\u5c0f\u5355\u4f4d\u4e3a26us(1000000/38k)\u3002\u5982\u679c\u8fbe\u5230\u8fd9\u4e2a\u901f\u5ea6\uff0c\u4ee5\u4e0aCPU\u7684\u901f\u5ea6\u8fdc\u8fdc\u4e0d\u591f\uff0c\u5e76\u4e14\u7531\u4e8e\u5b58\u50a8\u91cf\u7684\u52a0\u5927\uff0c\u6570\u636e\u5b58\u50a8\u5668\u4e5f\u8fdc\u8fdc\u4e0d\u591f\u7528\u3002
\u3000\u3000\u9488\u5bf9\u4ee5\u4e0a\u7ea2\u5916\u5b66\u4e60\u7684\u7f3a\u9677\uff0c\u672c\u4eba\u8bbe\u8ba1\u4e86\u4e00\u5957\u667a\u80fd\u5bb6\u5c45\u7684\u7cfb\u7edf\u89e3\u51b3\u65b9\u6848\u3002\u7531\u4e8e\u91c7\u7528\u9ad8\u901fCPU\uff0c\u4f7f\u5f97\u667a\u80fd\u5bb6\u5c45\u7684\u6240\u6709\u529f\u80fd\u90fd\u53ef\u4ee5\u5728\u5b83\u4e0a\u9762\u5b9e\u73b0\uff0c\u65e0\u9700\u518d\u50cf\u4ee5\u524d\u4e00\u6837\u9700\u8981\u591a\u4e2a\u5b50\u7cfb\u7edf\uff0c\u540c\u65f6\u4e5f\u8282\u7ea6\u4e86\u6210\u672c\u3002\u6b22\u8fce\u667a\u80fd\u5bb6\u5c45\u751f\u4ea7\u5382\u5546\u63a2\u8ba8\u548c\u5408\u4f5c\uff0c\u63a8\u52a8\u6574\u4e2a\u5e02\u573a\u7684\u53d1\u5c55\u3002
\u3000\u3000\u5bf9\u4e8e\u7535\u89c6\u3001\u97f3\u54cd\u7b49\uff0c\u4e00\u822c\u4f7f\u7528\u4e13\u7528\u7684\u9065\u63a7\u82af\u7247\uff0c\u6bd4\u5982nec,philips,toshiba,sanyo,mitsubish,panasonic\u7684\u82af\u7247\uff0c\u5176\u7f16\u7801\u683c\u5f0f\u56fa\u5b9a\uff0c\u4e00\u4e2a\u952e\u53ea\u6709\u4e00\u4e2a\u7f16\u7801\uff0c\u5b66\u4e60\u6bd4\u8f83\u5bb9\u6613\u3002
\u3000\u3000\u800c\u7a7a\u8c03\u4e0d\u4e00\u6837\uff0c\u5404\u5bb6\u7a7a\u8c03\u5382\u5546\u90fd\u662f\u6309\u81ea\u5df1\u7684\u8981\u6c42\u7528cpu\u505a\u9065\u63a7\u82af\u7247\uff0c\u7f16\u7801\u5f62\u5f0f\u5c31\u6709\u5f88\u591a\u79cd\u3002\u6bd4\u5982\u53ef\u80fd\u6ca1\u6709\u5f15\u5bfc\u7801\uff08\u7535\u89c6\u97f3\u54cd\u7c7b\u90fd\u6709\uff09\u3001\u6821\u9a8c\u65b9\u5f0f\u53d6\u7d2f\u52a0\u548c\uff08\u7535\u89c6\u97f3\u54cd\u7c7b\u4e00\u822c\u53d6\u53cd\u7801\uff09\u7b49\u3002\u56e0\u4e3a\u7a7a\u8c03\u7684\u72b6\u6001\u591a\uff0c\u5fc5\u987b\u4e00\u6b21\u53d1\u9001\u5b8c\u6bd5\uff0c\u6709\u5236\u51b7\u3001\u6e29\u5ea6\u3001\u98ce\u901f\u3001\u81ea\u52a8\u3001\u5b9a\u65f6\u3001\u52a0\u6e7f\u3001\u5236\u70ed\u7b49\uff0c\u6240\u4ee5\u7f16\u7801\u5f88\u957f\uff0c\u5e76\u4e14\u540c\u4e00\u4e2a\u6309\u952e\uff0c\u5728\u4e0d\u540c\u72b6\u6001\u4e0b\u53d1\u9001\u7684\u7f16\u7801\u4e0d\u4e00\u6837\uff0c\u9020\u6210\u5b66\u4e60\u4e0a\u7684\u56f0\u96be\u3002

以下是程序,调试成功,LCD1602显示
//本解码程序适用于NEC的upd6121及其兼容芯片的解码,支持大多数遥控器 实验板采用11.0592MHZ晶振
#include<reg52.h> //包含单片机寄存器的头文件
#include<intrins.h> //包含_nop_()函数定义的头文件
sbit IR=P3^2; //将IR位定义为P3.2引脚
sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚
sbit E=P2^2; //使能信号位,将E位定义为P2.2引脚
sbit BF=P0^7; //忙碌标志位,,将BF位定义为P0.7引脚
sbit BEEP = P3^6; //蜂鸣器控制端口P36
unsigned char flag;
unsigned char code string[ ]= {"1602IR-CODE TEST"};
unsigned char a[4]; //储存用户码、用户反码与键数据码、键数据反码
unsigned int LowTime,HighTime; //储存高、低电平的宽度
/*****************************************************
函数功能:延时1ms
***************************************************/
void delay1ms()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
/*****************************************************
函数功能:延时若干毫秒
入口参数:n
***************************************************/
void delay(unsigned char n)
{
unsigned char i;
for(i=0;i<n;i++)
delay1ms();
}

/*********************************************************/
void beep() //蜂鸣器响一声函数
{
unsigned char i;
for (i=0;i<100;i++)
{
delay1ms();
BEEP=!BEEP; //BEEP取反
}
BEEP=1; //关闭蜂鸣器
delay(250); //延时
}

/*****************************************************
函数功能:判断液晶模块的忙碌状态
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
unsigned char BusyTest(void)
{
bit result;
RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态
RW=1;
E=1; //E=1,才允许读写
_nop_(); //空操作
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
result=BF; //将忙碌标志电平赋给result
E=0;
return result;
}
/*****************************************************
函数功能:将模式设置指令或显示地址写入液晶模块
入口参数:dictate
***************************************************/
void WriteInstruction (unsigned char dictate)
{
while(BusyTest()==1); //如果忙就等待
RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令
RW=0;
E=0; //E置低电平(根据表8-6,写指令时,E为高脉冲,
// 就是让E从0到1发生正跳变,所以应先置"0"
_nop_();
_nop_(); //空操作两个机器周期,给硬件反应时间
P0=dictate; //将数据送入P0口,即写入指令或地址
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=1; //E置高电平
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
/*****************************************************
函数功能:指定字符显示的实际地址
入口参数:x
***************************************************/
void WriteAddress(unsigned char x)
{
WriteInstruction(x|0x80); //显示位置的确定方法规定为"80H+地址码x"
}
/*****************************************************
函数功能:将数据(字符的标准ASCII码)写入液晶模块
入口参数:y(为字符常量)
***************************************************/
void WriteData(unsigned char y)
{
while(BusyTest()==1);
RS=1; //RS为高电平,RW为低电平时,可以写入数据
RW=0;
E=0; //E置低电平(根据表8-6,写指令时,E为高脉冲,
// 就是让E从0到1发生正跳变,所以应先置"0"
P0=y; //将数据送入P0口,即将数据写入液晶模块
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=1; //E置高电平
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
/*****************************************************
函数功能:对LCD的显示模式进行初始化设置
***************************************************/
void LcdInitiate(void)
{
delay(15); //延时15ms,首次写指令时应给LCD一段较长的反应时间
WriteInstruction(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口
delay(5); //延时5ms
WriteInstruction(0x38);
delay(5);
WriteInstruction(0x38);
delay(5);
WriteInstruction(0x0C); //显示模式设置:显示开,有光标,光标闪烁
delay(5);
WriteInstruction(0x06); //显示模式设置:光标右移,字符不移
delay(5);
WriteInstruction(0x01); //清屏幕指令,将以前的显示内容清除
delay(5);
}
/************************************************************
函数功能:对4个字节的用户码和键数据码进行解码
说明:解码正确,返回1,否则返回0
出口参数:dat
*************************************************************/
bit DeCode(void)
{

unsigned char i,j;
unsigned char temp; //储存解码出的数据
for(i=0;i<4;i++) //连续读取4个用户码和键数据码
{
for(j=0;j<8;j++) //每个码有8位数字
{
temp=temp>>1; //temp中的各数据位右移一位,因为先读出的是高位数据
TH0=0; //定时器清0
TL0=0; //定时器清0
TR0=1; //开启定时器T0
while(IR==0) //如果是低电平就等待
; //低电平计时
TR0=0; //关闭定时器T0
LowTime=TH0*256+TL0; //保存低电平宽度
TH0=0; //定时器清0
TL0=0; //定时器清0
TR0=1; //开启定时器T0
while(IR==1) //如果是高电平就等待
;
TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0; //保存高电平宽度
if((LowTime<370)||(LowTime>640))
return 0; //如果低电平长度不在合理范围,则认为出错,停止解码
if((HighTime>420)&&(HighTime<620)) //如果高电平时间在560微秒左右,即计数560/1.085=516次
temp=temp&0x7f; //(520-100=420, 520+100=620),则该位是0
if((HighTime>1300)&&(HighTime<1800)) //如果高电平时间在1680微秒左右,即计数1680/1.085=1548次
temp=temp|0x80; //(1550-250=1300,1550+250=1800),则该位是1
}
a[i]=temp; //将解码出的字节值储存在a[i]
}
if(a[2]=~a[3]) //验证键数据码和其反码是否相等,一般情况下不必验证用户码
return 1; //解码正确,返回1
}

/*------------------二进制码转换为压缩型BCD码,并显示---------------*/

void two_2_bcd(unsigned char date)
{

unsigned char temp;
temp=date;
date&=0xf0;
date>>=4; //右移四位得到高四位码
date&=0x0f; //与0x0f想与确保高四位为0
if(date<=0x09)
{
WriteData(0x30+date); //lcd显示键值高四位
}
else
{
date=date-0x09;
WriteData(0x40+date);
}
date=temp;
date&=0x0f;
if(date<=0x09)
{
WriteData(0x30+date); //lcd显示低四位值
}
else
{
date=date-0x09;
WriteData(0x40+date);
}
WriteData(0x48); //显示字符'H'
}
/************************************************************
函数功能:1602LCD显示
*************************************************************/
void Disp(void)
{
WriteAddress(0x40); // 设置显示位置为第一行的第1个字
two_2_bcd(a[0]);
WriteData(0x20);
two_2_bcd(a[1]);
WriteData(0x20);
two_2_bcd(a[2]);
WriteData(0x20);
two_2_bcd(a[3]);

}
/************************************************************
函数功能:主函数
*************************************************************/
void main()
{
unsigned char i;
LcdInitiate(); //调用LCD初始化函数
delay(10);
WriteInstruction(0x01);//清显示:清屏幕指令
WriteAddress(0x00); // 设置显示位置为第一行的第1个字
i = 0;
while(string[i] != '\0') //'\0'是数组结束标志
{ // 显示字符 www.RICHMCU.COM
WriteData(string[i]);
i++;
}
EA=1; //开启总中断
EX0=1; //开外中断0
ET0=1; //定时器T0中断允许
IT0=1; //外中断的下降沿触发
TMOD=0x01; //使用定时器T0的模式1
TR0=0; //定时器T0关闭
while(1); //等待红外信号产生的中断

}
/************************************************************
函数功能:红外线触发的外中断处理函数
*************************************************************/
void Int0(void) interrupt 0
{
EX0=0; //关闭外中断0,不再接收二次红外信号的中断,只解码当前红外信号
TH0=0; //定时器T0的高8位清0
TL0=0; //定时器T0的低8位清0
TR0=1; //开启定时器T0
while(IR==0); //如果是低电平就等待,给引导码低电平计时
TR0=0; //关闭定时器T0
LowTime=TH0*256+TL0; //保存低电平时间
TH0=0; //定时器T0的高8位清0
TL0=0; //定时器T0的低8位清0
TR0=1; //开启定时器T0
while(IR==1); //如果是高电平就等待,给引导码高电平计时
TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0; //保存引导码的高电平长度
if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))
{
//如果是引导码,就开始解码,否则放弃,引导码的低电平计时
//次数=9000us/1.085=8294, 判断区间:8300-500=7800,8300+500=8800.
if(DeCode()==1) // 执行遥控解码功能
{

Disp();//调用1602LCD显示函数
beep();//蜂鸣器响一声 提示解码成功
}
}
EX0=1; //开启外中断EX0
}

首先你需要用示波器去测试一下红外遥控器的波形。
你会得到一个38k调制的数据。
分析一下这些数据,你就知道遥控器发射是一个位一个位发出来的。
8个位组成一个字节。
0和1是通过不同长度的载波时间+空闲时间组成的。

你的遥控器也就要在io口上模拟出类似的波形才行。
具体的1和0的长度是根据客户的需要决定的。

0x45 转成2进制是 00100101 就是先发一个1 再发0 再发1 ,0, ,0, ,1 0, 0。

怎么都那么笨腻,在解码成功后,先~后把存放客户码1和客户码2单元的数据,输到单片机的P1口,用8个流水灯显示不就一目了然了回复

你可以去看看HT6221的引脚功能介绍,其中AIN引脚就是低8位地址码的输入端,也就是说这个引脚可以自己设定码值,从而解决自定义用户码的问题,不知道我说的对不对。

去单片机论坛提问吧~~~
或者csdn也可以的~~
高手才不会再百度呢~~~

扩展阅读:免费万能遥控器 ... 无需红外的手机遥控器 ... 手机自带万能遥控器 ... 没有红外线怎么开空调 ... 万能遥控无需红外线 ... 怎样自制功放机遥控器 ... 手机开空调万能遥控器 ... sony电视机遥控器 拆开 ... 不带红外怎么遥控空调 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网