新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机红外解码查询法(HS9148)

单片机红外解码查询法(HS9148)

作者: 时间:2016-11-30 来源:网络 收藏
本方案解码对象是苏州华芯微电子的HS9148发生芯片的遥控信号;该芯片可以有单发码,连发码,等组合方式。具体功能可以参考其PDF文件。现在对其中6组连发码K1-K6进行解码。本程序采用PIC16F505进行软件延时方法,通过查询红外接收口的电平变化规律,来进行按键解码。

先看一下连发码的传输规律,如下图所示

本文引用地址:https://www.eepw.com.cn/article/201611/323972.htm

这个是发射器上面的码型,经过红外接收模块后,信号与发射型号是反相的。如下图:



其中a的值可以左右计算a=(1/fosc)*192,当采用455E的晶振时候a=0.422ms.。

在看看“0”和“1”的定义,对单片机接收端而言,下面图示是0和1的定义


由图可以看出来,高电平过后,低电平持续时间为3a定义为逻辑1,高电平过后低电平持续时间为a定义为逻辑0。(理解了这个规律对解码能否成功有着非常重大的意义)。

为了验证PDF上的高低电平时间定义的正确性,用示波器检测了其中某几个按键的红外接收端的波型。如下所示:





对其时间测试发现和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");

}

}


上一页 1 2 下一页

评论


技术专区

关闭