本方案解码对象是姑苏华芯微电子的HS9148产生芯片的遥控信号;该芯片能够有单发码,连发码,等组合办法。详细功用能够参阅其PDF文件。现在对其间6组连发码K1-K6进行解码。本程序选用PIC16F505进行软件延时办法,通过查询红外接纳口的电平改变规则,来进行按键解码。
先看一下连发码的传输规则,如下图所示
这个是发射器上面的码型,通过红外接纳模块后,信号与发射类型是反相的。如下图:
其间a的值能够左右核算a=(1/fosc)*192,当选用455E的晶振时分a=0.422ms.。
在看看“0”和“1”的界说,对单片机接纳端而言,下面图示是0和1的界说
由图能够看出来,高电平往后,低电平持续时刻为3a界说为逻辑1,高电平往后低电平持续时刻为a界说为逻辑0。(理解了这个规则对解码能否成功有着十分严重的含义)。
为了验证PDF上的凹凸电平时刻界说的正确性,用示波器检测了其间某几个按键的红外接纳端的波型。如下所示:
对其时刻测验发现和%&&&&&%上的材料根本契合。
本程序灵敏度和抗干扰才能还有待进步。本文意图在于寻觅红外解码的办法,怎么做到简略有用。RB2为遥控接纳脚,RC0,RC1,RC2,RC3链接LED指示灯,程序代码如下(下载地址:http://www.51hei.com/f/pichon.rar):
#include
__CONFIG(0X034);
#define uchar unsigned char
#define uint unsigned int
Unsigned char head_ok;//头码标志
unsigned char code_ok;//解码成功标志
unsigned char code1;//体系码
unsigned char code2;//按键码
unsigned char i,//体系码解码次数
unsigned char n,//按键码解码次数
void delay2(uint b)//us等级延时
{
unsigned int j;
for(j=0;j
{
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
asm(“nop”);
}
}