文档库 最新最全的文档下载
当前位置:文档库 › 红外遥控接收解码程序

红外遥控接收解码程序

红外遥控接收解码程序
红外遥控接收解码程序

红外遥控接收解码程序

以往在单片机书上、网上所介绍的遥控器接收解码程序都是基于利用单片机的进入外部中断后所进行的程序解码。这此可以讲是个垃圾程序(因为核对技术高手没有外露),可以讲在解码红外线波形的同时,单片机的其他程序要停下来。对于大型工程是不允许的。现特将利用内部时间中断时的时间差所做的红外线接收解码程序公开。本程序的要点是要将内部时钟中断设为125us,每次进中断则对相应的位进行比较低电平时间从而解码……

关键寄存器定义:static uchar codeTime; //码时间,用于以125us时间计时

static uchar HeadCode_Reced; //头码标志位

static uchar Ir_Dealed;

static uchar Irprot_LastState; //端口状态位

static uchar Receive_OK;

static uchar codeCnt; //数据码位

static uchar vData1; //1~4是分别用来放数据的

static uchar vData2;

static uchar vData3;

static uchar vData4;

/*内中断0 用于计时*/

void Timer0(void) interrupt 1 //开定时器0中断,工作于方式0,中断号为1

{

TH0=(65536-125)/256; //125ms出中断一次.

TL0=(65536-125)%256;

//============================================================================= =======

codeTime++;

if(codeTime>=80)

{

codeTime=80;

HeadCode_Reced=0;//80*125us=10ms时间未接收到低电平信号则清头码接收标志位Ir_Dealed=0;

}

//-------------------------------------------------

P3_7=1; //先给该口付1

if(P3_7==1)

{

Irprot_LastState=1;//置接收端口为1状态标志

}

//---------------------------------------------------------------------

else //该口出现了低电平证明有可能是收到红外信号

{

if(Irprot_LastState) //出现低电平后如证实之前出现高电平,证明确实是有红外信号

{

Irprot_LastState=0;// 将接收状态清0

if(HeadCode_Reced)//查询是否已接收过头码。有就进入解码,无就进入头码(4.5ms计时)

{

vData4<<=1;

if(vData3&0x80){vData4|=0x01;}

vData3<<=1;

if(vData2&0x80){vData3|=0x01;}

vData2<<=1;

if(vData1&0x80){vData2|=0x01;}

vData1<<=1;

if(codeTime>15&&codeTime<21)//若头码已接收过,则判断当前接收的是1码或0码//FTM2->8-<16-11(125*11=1.375,示波器读出0为0.8ms\1为1.6ms)

{ //HFJ->15-<21--11(125*15=1.875,示波器读出0为1.2ms\1为2.4ms)

vData1|=0x01; //两个下降沿之间的时间大于125us*11=1.375ms,条件满足则接收的为1码

}

else if(codeTime>6&&codeTime<12) //HFJ->6-<12

//FTN2->3-<8

{

vData1&=0xFE; ; //两个下降沿之间的时间小于125us*12=15ms条件不满足则接收的为0码

}

else

{

vData1=vData2=vData3=vData4=0;

HeadCode_Reced=0;

}

//-------------------------------------------------------------------------

codeCnt++;

if(codeCnt>=32) //一共接收32个信号位

{

codeCnt=0;

if(!Ir_Dealed)

{

Receive_OK=1;

}

}

codeTime=0; //接收完,将时间清0

//vData1=vData2=vData3=vData4=0;

}

else //头码总计时

{

if(codeTime>=80&&codeTime<120) //30 46(FTM2--3.750~5.750计的是低电平+高电平的总时间,即两个下降沿时间.示波器读出是4.9ms)

{ // 80 120(HFJ--10~15ms 计的是低电平+高电平的总时间,即两个下降沿时间.示波器读出是13.6ms)

HeadCode_Reced=1;

}

else

{

HeadCode_Reced=0;

}

codeCnt=0; //如果是第一次进入则将码计时时间codeTime与码位codeCnt清0

codeTime=0;

}

}

}

红外遥控器电路(接收电路)

电子技术基础课程设计任务书2014-2015学年第一学期第18周-19周

目录 1、总体方案的设计与选择........................... 错误!未定义书签。 1.1、选题及要求 (1) 1.2、原理与方案 (1) 1.2.1、红外线与红外接收二极管 (1) 1.2.2、红外接收电路 (1) 1.2.3、电源电路 (3) 1.2.4、红外接收总电路 (3) 1.2.5、元器件的选择 (4) 1.2.3方案确定 (4) 2、总电路图,印刷图及相关说明 (5) 2.1、原理图 (5) 2.2、清单图 (5) 2.3、PCB (6) 2.4、PCB三维图 (6) 2.5、PCB板3D显示图 (7) 3、计算机仿真及相关说明 (9) 3.1、仿真电路图 (9) 3.2、仿真过程 (9) 4、电路制作与调试 (11) 4.1、元件确定 (11) 4.2、元件检测 (11) 4.3、仪表仪器 (11) 4.4、电路板制作 (11) 4.5、电路板调试 (13) 4.6、调试常见故障与处理方法 (15) 5、心得体会 (16) 6、参考文献 (17)

引言 随着时代的发展,人民的生活水平不断提高,各种家用电器设备也随之进入千家万户,一些家用电器开关在使用的时候非常麻烦,为了方便大家使用,现在社会上也设计出了各种各样的控制开关,其中包括红外遥控开关,红外遥控是目前家用电器中用的较多的遥控方式。 红外遥控有以下特点: 1、抗干扰能力强。由于其无法穿透墙壁,故不同房间的家用电器可以使用通用的遥控器而不会产生相互的干扰; 2、电路调试简单,操作简单; 3、成本低,符合大众消费观念。 由于其抗干扰能力强,操作简单等诸多有点,红外遥控已经广泛应用于彩色电视机、DVD、空调、组合音响等各种家用电器上。 基于红外遥控发射与接收原理,我们小组设计了一款简易红外遥控电路,通过这个设计,不仅可以明白红外遥控的工作原理,还能在之后自己DIY红外遥控开关。相信通过这个设计也能让其他人对红外遥控开关的工作原理有进一步的了解。

红外遥控信号的解码

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、V CD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。

图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反) 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据

基于单片机的红外解码.温度及液晶显示

中国矿业大学徐海学院 技能考核培训 姓名:顾嘉诚学号: 22110818 专业:信息11-2班 题目:基于单片机的红外解码.温度及液晶显示专题:红外解码 指导教师:宥鹏老师翟晓东老师 设计地点:电工电子实验室 时间: 2014 年 4 月

通信系统综合设计训练任务书 学生姓名顾嘉诚专业年级信息11-2班学号22110818 设计日期:2014年4 月5日至2014 年4 月10 日 同组成员:姜怀修,刘剑桥,顾嘉诚,彭传锁,何子豪,王业飞 设计题目: 基于单片机的红外无线控制 设计专题题目: 红外解码 设计主要内容和要求: 1.主要内容: 2. 单片机内部结构 红外遥控解码 C语言程序设 Ds18b20的使用 Lcd1602的使用 2. 功能扩展要求 环境温度液晶显示 指导教师签字:

目录 正文 (5) 1.概述 (5) 1.1功能描述 (5) 1.2单片机资源 (5) 2.1管脚图 (5) 3.1. 使用资源 (5) 2.原理篇 (6) 2.1红外发送及接收 (6) 2.1.1红外接收概述 (6) 2.1.2硬件及原理图 (7) 2.1.3红外中断接收部分程序 (8) 2.2温度原理 (9) 2.2.1 DS18B20 的主要特性 (9) 2.2.2原理图与硬件 (10) 2.2.3 DS18B20时序和程序 (10) 2.3 QC1602A (12) 2.3.1 1602外部结构及管脚说明 (12) 2.3.2 写命令/数据时序与部分程序 (13) 3.效果图 (15) 4.软件篇 (15) 4.1程序框图 (15) 4.1.1 Main函数 (15) 4.1.2 中断 (16) 4.1.3 60ms定时中断 (16) 4.2 完整程序 (16) 4.2.1 Project.c文件 (16) 4.2.2 onewire.c 文件 (23) 5.参考文献 (26)

红外线遥控系统原理及软件解码实例

红外线遥控系统原理及软件解码实例 简介:红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功 关键字:红外 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1、红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED 红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 、遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125 ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25 ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)

上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。U PD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108 ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8 位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。 图5 引导码图6连发码 3 、遥控信号接收 接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。 接收器对外只有3个引脚:Out、GND、Vcc与单片机接口非常方便,如图7所示。

单片机红外电视遥控器C51程序代码单片机程序

单片机红外电视遥控器C51程序代码单片机程序 //************************************************************** //名称:单片机红外电视遥控器C51程序代码() /*-------------------------------------------------------------- 描述: 一般红外电视遥控器的输出都是用编码后串行数据对38~40kHz的方波进行 脉冲幅度调制而产生的.当发射器按键按下后,即有遥控码发出,所按的键 不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。上述“0”和“1”组成的32位二进制码经38kHz 的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。 一般电视遥控器的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位 为8位的操作码和8位的操作反码,用于核对数据是否接收准确。 根据红外编码的格式,发送数据前需要先发送9ms的起始码和4.5ms的结果码。接收方一般使用TL0038一体化红外线接收器进行接收解码,当TL0038接收到38kHz红外信号时,输出端输出低电平,否则为高电平。 所以红外遥控器发送红外信号时,参考上面遥控串行数据编码波形图,在低 电平处发送38kHz红外信号,高电平处则不发送红外信号。 ----------------------------------------------------------------*/ //编辑: //日期: //**************************************************************** #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include //包括一个51标准内核的头文件 static bit OP; //红外发射管的亮灭 static unsigned int count; //延时计数器 static unsigned int endcount; //终止延时计数 static unsigned char flag; //红外发送标志 char iraddr1; //十六位地址的第一个字节 char iraddr2; //十六位地址的第二个字节 void SendIRdata(char p_irdata); void delay(); //************************************************************** void main(void) {

红外遥控课程设计

单片机与接口技术课程设计 题目: 基于单片机红外线遥控控制 LED灯显示系统设计与制作班级:电子科学与技术1101 姓名:李婷 学号:110803025 2013年12月11日

目录 第一章设计要求 (3) 第二章硬件系统设计 (3) 2.1基于单片机红外线遥控控制LED灯显示系统框架图 (3) 2.2单片机控制系统及其基本电路 (4) 2. 2.1 单片机最小系统 (4) 2.2.2时钟电路 (5) 2.2.3复位电路 (5) 2.3基于单片机红外遥控控制LED系统的设计原理 (6) 2.3.1单片机红外遥控控制LED显示系统原理 (6) 2.3.2单片机红外遥控控制LED系统码分制原理 (7) 2.4红外遥控发射系统电路设计 (8) 2.4.1指令按键电路 (8) 2.4.2 发射电路 (9) 2.4.3 显示模块 (9) 2.5红外遥控接收系统电路设计 (11) 2.5.1接收电路 (11) 2.5.2 LED灯显示电路 (11) 2.6硬件原理图 (12) 第三章软件系统设计 (12) 3.1 红外线发射电路程序流程图设计 (13) 3.2 红外线接收电路程序流程图设计 (13) 第四章系统测试与分析 (14) 4.1 利用Proteus和keil进行仿真调试 (14) 4.2 仿真图 (16) 第五章总结 (18) 附录1 (18) 附录2 (22) 参考文献 (25)

赣南师范学院 2013 — 2014 学年第_1_学期课程论文行政班级:电子科学与技术1101 学号:110803025 姓名:李婷

图2-1 系统的设计总框图 2.2单片机控制系统及其基本电路 2.2.1单片机最小系统 单片机晶振电路:对于MSC-51一般的晶振频率可以在1.2MHz—12MHz 之间选择,这是电容C可以对应的选择10pF—30pF。当使用89C55时晶振频率可以提高到24MHZ。对于本设计的电容C用30pF,晶振选用11.0592MHz。晶振电路如下图3-1所示,一条引脚接在XTAL1,另一条接在XTAL2。单片机的复位电路:为了防止程序执行过程中失步或运行紊乱,此处采用了上电复位及手动复位电路,电路图如下图2-1所示: 图2-2-1 单片机最小系统图

红外解码程序详解

//此程序为网上下载后修改,要弄懂的话,可以去看看HT6221的时序图。当然也欢迎在这里留言。 ///C51的红外解码程序,可以根据需要自己修改: //11.0592Mhz #include //根据自己的接线来改 sbit IRIN = P3^2; //红外接收器数据线 sbit led = P3^7; //指示灯 //////////////////////////////////////////// //定义数组IRCOM,分别装解码后得到的数据 //IRCOM[0] 低8位地址码 //IRCOM[1] 高8位地址码 //IRCOM[2] 8位数据码 //IRCOM[3] 8位数据码的反码 ///////////////////////////////////////////// #define uchar unsigned char #define uint unsigned int uchar IRCOM[4]=0; bit flag=0; /********************/ void delay014ms(unsigned char x); //x*0.14MS void IR_init(void); void delay014ms(unsigned char x) //x*0.14MS STC10F04延时约0.15MS { unsigned char i; while(x--) { for (i = 0; i<125; i++) //13 {;} } } /////////////// //初始化 //////////// void IR_init(void) { EA=1; EX0=1; //允许总中断中断,使能 INT0 外部中断 IT0=1; //触发方式为脉冲负边沿触发 IRIN=1; //I/O口初始化

最简单详细的红外解码程序

#include //包含头文件名 sbit IRIN=P3^2; //定义红外接收头的外部接口,即外部中断0 sbit BEEP=P1^5; //定义蜂鸣器接口,我的在P1^5 unsigned char IRCOM[7]; //定义数组,用来存储红外接收到的数据 void delay(unsigned char x) { //延时子程序unsigned char i; //延时约x*0.14ms while(x--) //不同遥控器应设置不同的参数

{for(i=0;i<13;i++){}} //参数的选择咱们先不管,先看这个 } void beep() { unsigned char i; //蜂鸣器发声子程序 for(i=0;i<100;i++) { delay(4); //这个得看你的蜂鸣器内部是否有振荡源 BEEP=~BEEP; } //如果没有振荡源就应该输入脉冲信号 BEEP=1; }

void IR_IN() interrupt 0 using 0 //外部中断0程序 { unsigned char j,k,n=0; //先定义变量,记住n=0 EX0=0; //禁止中断,以免再次进入中断 delay(15); //延时0.14ms*15=2.1ms if(IRIN==1) //如果在这期间有高电平说明 { //信号不是来自遥控的,返回主程序 EX0=1; return; } while(!IRIN){delay(1);} //死循环,等待9ms前导低电平信号的结束for(j=0;j<4;j++) //一共有4组数据

红外线遥控器解码程序

资料整理自互联网,版权归原作者! 欢迎访问 https://www.wendangku.net/doc/e210044608.html, 新势力单片机,嵌入式
专业技术论坛:https://www.wendangku.net/doc/e210044608.html,
红外线遥控器解码程序
Wang1jin 收藏. 交流论坛: https://www.wendangku.net/doc/e210044608.html,/ 推荐网站: https://www.wendangku.net/doc/e210044608.html, 个人博客: https://www.wendangku.net/doc/e210044608.html,
红外线遥控是目前使用最广泛的一种通信和遥控手段.由于红外线遥控装置具有体积小,功耗低,功能强,成本低等特点,因 而,继彩电,录像机之后,在录音机,音响设备,空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控.工业设备中, 在高压,辐射,有毒气体,粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰.
1 红外遥控系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图 1 所示.发射部分 包括键盘矩阵,编码调制,LED 红外发送器;接收部分包括光,电转换放大器,解调,解码电路.
2 遥控发射器及其编码
遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明, 现以日本 NEC 的 uPD6121G 组成发射电路为例说明编码原理.当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码 也不同.这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为 0.565ms,间隔 0.56ms,周期为 1.125ms 的组合表示二进制的"0";以脉宽为 0.565ms, 间隔 1.685ms,周期为 2.25ms 的组合表示二进制的"1",其波形如图 2 所示.
个人博客:https://www.wendangku.net/doc/e210044608.html,
电子综合站点:https://www.wendangku.net/doc/e210044608.html,

51单片机红外解码程序

51单片机红外解码程序 1、红外遥控系统 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。 发射部分包括键盘矩阵、编码调制、LED红外发送器; 接收部分包括光、电转换放大器、解调、解码电路。 下面,我们将使用下面两种设备: 另外,使用51单片机进行解码。 2、原理图

从原理图看出,IR的data脚与51的PD2(P3.2)相连。 2、红外发射原理 要对红外遥控器所发的信号进行解码,必须先理解这些信号。 a) 波形 首先来看看,当我们按下遥控器时,红外发射器是发送了一个什么样的信号波形,如下图: 由上图所示,当一个键按下超过22ms,振荡器使芯片激活,将发射一组108ms 的编码脉冲(由位置1所示)。如果键按下超过108ms仍未松开,接下来发射的 代码(连发代码由位置3所示)将仅由起始码(9ms)和结束码(2.5ms)组成。 下面把位置1的波形放大:

由位置1的波形得知,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(用户编码)(9ms~18ms),高8位地址码(用户编码)(9ms~18ms),8位数据码(键值数据码)(9ms~18ms)和这8位数据的反码(键值数据码反码)(9ms~18ms)组成。 b) 编码格式 遥控器发射的信号由一串0和1的二进制代码组成.不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。XS-091遥控板的0和1采用PWM方法编码,即脉冲宽度调制。下图为一个发射波形对应的编码方法: 放大0和1的波形如下图: 这种编码具有以下特征:以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。 3、红外接收原理 a) 波形 红外接收头将38K载波信号过虑,接收到的波形刚好与发射波形相反:

红外遥控器信号接收和显示的设计1

电子电路综合设计总结报告 题目:红外遥控器信号接收和显示的设计 摘要: 随着电子技术的发展,红外遥控器越来越多的使用到电器设备中,但各种型号遥控器的大量使用带来的遥控器大批量多品种的生产,使得检测成为难题,因此智能的红外遥控器检测装置成为一种迫切的需要。在该红外遥控器信号的接收和显示电路以单片机和一体化红外接收器为核心技术,具体由单片机最小系统、单片机和PC机间的通信模块、红外接收模块、数码管显示模块和流水灯模块组成。在本系统的设计中,利用红外接收器接收遥控器发出的控制信号,并通过软件编程将接收信号存储、处理、比较,并将数据处理送至数码管显示模块。总之,通过对电路的设计和实际调试,可以实现红外遥控器信号的接收和显示功能。根据比较接收信号的不同,在数码管显示电路及流水灯电路上显示相应的按键数字或闪烁变化功能,并可实现单片机及PC机之间的通信功能,使得控制信号能在PC机上显示。

关键词:单片机红外接收器HS0038 解码串口调试

设计任务 结合单片机最小电路和红外线接收接口电路共同设计一个基于单片机的红外遥控信号接收和转发系统,用普通电视机遥控器控制该系统,使用数码管显示信号的接收结果。 1、实现单片机最小系统的设计。 2、当遥控器按下数字键时,在数码管上显示其键值。如按下数字键1,则在数码管上显示 号码01。 3、当遥控器按下音量△及音量▽时,用两位数码的周围段实现顺时针或者逆时针旋转的流 水灯功能。(为使得音量的增减清晰显示,试验中在单片机的P1口外接一排流水灯,具体功能的实现见方案的可行性论证) * 运用串口调试助手,在遥控器有按键按下时,将其键值显示在PC机上。 * 当遥控器按下频道△及频道▽时,在数码管上显示加1或减1后的数值。 一、系统方案比较和论证 1、方案比较和选择 为了实现系统整体功能,红外解码部分是核心,红外解码是指将遥控发射器所产生的红外遥控编码脉冲所对应的键值翻译出来的过程。下面将系统方案做一论证,通常有硬件解码和软件解码两种方案。 方案一:此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是按键数值信号或控制音量、频道等信号,当确认是何种信号后,启动子程序,然后进行查询。每次红外接收头接收到红外信号传到解码器中,解码器解码完毕后送到单片机,单片机再通过查表确定这些数值并进行相应功能的控制。设计原理图如图1所示。 图1、方案一设计原理图 方案二:此方案中,采用普通的家用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码,解码完成后查表确定是按键数值信号或控制音量、频道等信号,启动子程序,进行相应的显示数字等功能。然后查询,重复上述流程。设计原理图如图2所示。

红外遥控原理及解码程序

红外遥控系统原理及单片机 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC 的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周

期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。

红外遥控接收程序

#include "remote.h" UINT IrCode; //高8位为系统码,低八位为数据码 /*************************************************************************** *FUNCTION NAME: DelayIr *CREATE DATE: 2012/6/7 *CREATED BY: XS *FUNCTION: IR采样延时:0.14ms *MODIFY DATE: 2012/6/7 *INPUT: 无 * *RETURN: 无 ***************************************************************************/ void DelayIr(UCHAR timer) { UCHAR i; while(timer--) { for (i = 0; i<13; i++); } } /*************************************************************************** *FUNCTION NAME: RemoteDecode *CREATE DATE: 2012/6/7 *CREATED BY: XS *FUNCTION: IR遥控解码 *MODIFY DATE: 2012/6/7 *INPUT: 无 * *RETURN: 无 ***************************************************************************/ void RemoteDecode(void) { UCHAR i,j,n = 0; UCHAR irDat[4] = {0}; EX0 = 0;

单片机实现红外接收解码

单片机实现红外接收解码 摘要:接收到红外遥控器的脉冲波形,并通过解析其波形得到红外遥控器的相应解码,实习对相应设备的控制。本文详细接受红外遥控技术原理并如何通过C51单片机实现红外遥控。关键字:单片机,红外遥控,解码 1.引言 遥控器相信大家不会陌生,日常生活中会使用到各种各样的遥控器,比如电视机、DVD 机、空调、机顶盒甚至音响、热水器等都用到遥控器,其实红外技术已经走进与人们的生活并且与人们的生活息息相关了。 红外遥控器作为设备的输入控制具有操作简便、价格便宜等诸多好处。您可以根据您公司产品需要和遥控器提供商协商定制遥控器,包括遥控器键盘布局、每个按键的键码等。 遥控器键盘上每个按键的键码是一个小于256的一个数值,按键后通过遥控器红外管产生脉冲发送出去,红外接收器接收到脉冲后,对脉冲流进行分析,提取键码值,并按照键码值实现其遥控目的。 2.红外接收原理 红外遥控信号接收: 红外接收电路可以使用集成接收器,接收器包括红外接收管及信号处理IC,接收器对外只有三个引脚,一个接电源的Vcc脚、一个接地的GND脚、一个脉冲信号输出脚,当然脉冲信号输出脚直接接单片机的某个可以使用的IO脚就可以了。

3.脉冲波形分析: 每次按键,红外接收器这边会收到一串脉冲宽度不等的脉冲波形流,其脉冲流由35个脉冲波形构成: 前导码:第1个脉冲波形 用户码1:第2到第9个脉冲波形 用户码2:第10到第17个脉冲波形 键码:第18到第25个脉冲波形 键码反码:第26到第33个脉冲波形 连续按键脉冲:第34和第35个脉冲为结束脉冲(也即连续按键脉冲),在每次按键结束后会有两个结束脉冲,如果一直按键不放的话,会一直发送连续按键脉冲,并可以认为在收到10个连续按键脉冲后是下一个按键。 注意:不同的遥控器产生的用户码值可能不一样,笔者碰到两种不同的用户码:0x00,0xFF及0x04,0x7F。 脉冲流中有四种不同的脉冲波形宽度: 其中前导码脉宽为:40(4ms) < 脉冲宽度< 50(5ms) 连续按键脉宽为:21(2.1ms) < 脉冲宽度< 25(2.5ms) bit "0" 脉宽为:3(0.3ms) < 脉冲宽度< 7(0.7ms) bit "1" 脉宽为:14(1.4ms) < 脉冲宽度< 19(1.9ms) 在收到一串脉冲流后,就要对其进行分析,先要检测第一个脉冲波形是不是前导码,如果不是,则继续检测前导码,如果是则检测如下32个脉冲波形: 用户码1为1字节,由8个脉冲波形组成(其中一个脉冲波形表示字节中1 bit); 用户码2为1字节; 键值为1字节; 键值反码为1字节,键值反码为键值取反值。 先判断所收到用户码是否正确,如果不正确则丢弃此次所收键码,如果正确则利用键值反码取反与键值比较,判断收码是否正确,如果不正确则丢弃所收键码。 如下图所示:

红外遥控一体化接收头原理及应用电路

红外遥控一体化接收头原理及应用电路2 一.一体化红外线接收头的原理 二. 红外遥控一体化接收头型号:SH-0038应用电路集 三. 红外遥控一体化接收头型号:RPM-638应用电路集 四.一体化红外线接收头的管脚排列及检测 红外遥控一体化接收头原理图及应用 一体化红外接收头型号:SFH506-38、RPM-638 红外接收电路通常由红外接收二极管与放大电路组成,放大电路通常又由一个集成块及若干电阻电容等元件组成,并且需要封装在一个金属屏蔽盒里,因而电路比较复杂,体积却很小,还不及一个7805体积大! SFH506-38与RPM-638是一种特殊的红外接收电路,它将红外接收管与放大电路集成在一体,体积小(大小与一只中功率三极管相当),密封性好,灵敏度高,并且价格低廉,市场售价只有几元钱。它仅有三条管脚,分别是电源正极、电源负极以及信号输出端,其工作电压在5V左右.只要给它接上电源即是一个完整的红外接收放大器,使用十分方便。 它的主要功能包括放大,选频,解调几大部分,要求输入信号需是已经被调制的信号。经过它的接收放大和解调会在输出端直接输出原始的信号。从而使电路达到最简化!灵敏度和抗干扰性都非常好,可以说是一个接收红外信号的理想装置。 一体化红外接收头,如图5所示外形及管脚:型号区别: 5所示:型号:SH0038 图5 红外接收头 红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输 出脚。根据发射端调制 一. 红外遥控一体化接收头型号:SH0038 应用电路集 1. 用红外接收头、CD4069 制作的遥控灯原理图 红外遥控的发射和接收电路图 2. 用红外接收头、CD4011制作的遥控灯原理图 红外遥控接收头内部电路 3. 用红外接收头、CD4541制作的单路遥控原理图 4. 一体化红外接收头遥控开关接收电路 5. 用一体化红外接收头制作的遥控开关电路 一体化红外接收头原理: 没有人时,遥控接收头低电平脉冲信号由C1送入Q1,Q1将信号放大,由D1,C2滤波使Q2b极电压升高,Q2导通,Q3断开,继电器不吸合,K2断开,无12V送入报警器,报警器不报警;当有人进如时,将红外线阻断,接收器收不到遥控器发来的信号,Q1b极为高电平,Q1截止,Q2也截止,Q2C极为高电平,此时Q3导通,继电器吸合,K2闭合将12V送入报警或语音电路,发出报警声,同时R5对C4充电,达到Q4的导通电压时,Q4导通,Q3截止,继电器断开,报警结束,同时K1闭合,将C4放电,报警时间可由R5和C4决定。 6. 用一体化红外接收制作的感应式自动洗手器

红外解码程序详解

红外遥控解码程序设计 ——————基于uPD6121红外编码制式 红外传感系统是目前应用最为广泛的遥控系统,一个红外遥控系统可分为发射和接收两部分组成,发射端称之为红外遥控器,一般由矩阵键盘,红外编码调制芯片和红外发射管组成;接收端用一体化红外接收头即可,这个东东内置光电放大器和解调部分,信号接收之后一般很微弱须放大后才可解码,为有效发射出去得先托付在载波上所以需经历调制、解调的过程,其实对于发射部分主要工作在于编码,而对于编码方式只有几种主流方式,而目前国内大部分均为uPD6121编码方式(日本NEC公司搞出来的。。),所以我们只须弄清楚这种编码的时序,即可写出万能的红外解码程序,只要是基于这种编码方式的遥控器(家里的电视、空调、电扇遥控器)都可以用该程序来解码(这点也充分证明了C语言的高移植性啊。。) 这种编码的格式其实很简单,开头是一个引导码,人家芯片在编码时将其设计成9ms的高电平和4.5ms的低电平,也就是说你必须跳过这段引导码之后才会接收到数据,第一个问题来了:为什么要加这段引导码?因为红外传感是非常容易受到干扰的,如果直接传送数据很可能并非发送端的信号,很可能来自其他辐射,后面设计程序时会遇到这个问题。所以我们在写程序时在引导码时可以加入检测代码,如果是引导码则继续接收,否则跳出。第二个问题就是:接收数据时我们用外部中断接收,这是考虑到CPU 的执行效率,如果你在主函数里接收数据,就好比CPU一直在问:你接收到数据没? 你接收到没?..很明显不靠谱,和串口通信一样,接收数据用中断这是经验,有利于单片机的执行效率。第三个要注意的就是红外接收端和编码发送的数据是反向的!这点很重要,我看很多资料没有写明这点,让很多童鞋疑惑不解,也就是说引导码编码时确实是9ms高电平和4.5ms 的低电平,但是到了接收端是9ms的低电平和4.5ms的高电平,所以我们在解码时就得注意引导码高电平出现的顺序。对于编码格式,引导码后接了4个字节的数据,前两个字节为用户码和用户反码,简单点说就是器件地址;后两字节为操作码和操作反码,就是我们真正需要的数据。图为发送端编码格式,注意接收到的已反向!

红外解码数码管显示

基于STC89C54单片机设计的红外解码数码管显示 1.红外解码原理 红外遥控器发送数据时,是将二进制数据调制成一系列的脉冲信号红外发射管发射出去,红外载波为频率38KHz的方波,红外接收端在收到38KHz的载波信号时,会输出低电平,否则输出高电平,从而可以将“时断时续”的红外光信号解调成一定周期的连续方波信号,再经过1838一体化红外接收头解调便可以恢复出原数据信号。如图所示, 我们可以通过单片机的定时器给红外接收管接收的每个点电平计时,并把每个点电平的时间存起来。根据时间的不同来分辨是引导码、“0”还是“1”。下面是我做的实验原理图 上图式数码管显示原理图,下面是红外接收管与单片机的连接原理图。

注:上图的J27是和单片机的P3^2相连的。 程序中用到的定时器1、定时器0和外部中断0. 下面是实验的C语言程序: /*----------------------------------------------- 名称:遥控器红外解码数码管晶显示 论坛:无 编写:yang-baoan 日期:2011.10 修改:无 内容:按配套遥控器按键,液晶显示4组码值,分别是用户码用户码数据码数据反码 显示如下:

1E1E00FF ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit IR=P3^2; //红外接口标志 #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char Tab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char TempWei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; /*------------------------------------------------

红外解码C语言程序

#include #define uchar unsigned char #define uint unsigned int sbit SM0038 = P3^3; sbit LED = P1^0; uchar data IRcode[4]; //定义一个4字节的数组用来存储代码 uchar CodeTemp,charsend,i,j,k; //编码字节缓存变量 /**********************************2us延时******************************/ void delay(uint k) { while(k --); } /**********************************************************/ void delay0_14MS(unsigned char x) //x*0.14MS { unsigned char i; while(x--) { for (i = 0; i<13; i++) {} } } /******************************外部中断1初始化**************************/ void Outside_Init(void) { EX1= 1;//开外部中断1 IT1 = 1;//负边沿触发 EA = 1; //开总中断 } /******************************中断处理**************************************/ void Outside_Int(void) interrupt 2 using 0 { uchar N = 0; EX1 = 0; delay(500);//延时1ms if(SM0038 == 1) { EX1 =1; return; } //确认IR信号出现 while(!SM0038); //跳过9ms低电平

红外遥控的发射和接收

红外遥控的发射和接收Donna 发表于2006-5-12 10:08:00 光谱位于红色光之外,波长为0.76~1.5μm,比红色光的波长还长,这样的光被称为红外线。 红外遥控是利用红外线进行传递信息的一种控制系统,红外遥控具有抗干扰,电路简单,编码 及解码容易,功耗小,成本低的优点,目前几乎所有的视频和音频设备都支持这种控制方式。 一、红外遥控系统结构 红外遥控系统主要分为调制、发射和接收三部分,如图1 所示: 图1 红外遥控系统 1.调制 红外遥控发射数据时采用调制的方式,即把数据和一定频率的载波进行“与”操作,这样可以提高发射效率和降低电源 功耗。 调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/3的方波,如图2所示,这是由发射端所使用的 455kHz晶振决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。 图2 载波波形 1.发射系统 目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片 的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有 足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常 一点误差可以忽略不计。

红外线通过红外发光二极管(LED)发射出去,红外发光二极管内部材料和普通发光二极管不同,在其两端施加一定电压时, 它发出的是红外线而不是可见光。 图3a 简单驱动电路图3b 射击输出驱动电路 如图3a和图3b是LED的驱动电路,图3a是最简单电路,选用元件时要注意三极管的开关速度要快,还要考虑到LED的正向 电流和反向漏电流,一般流过LED的最大正向电流为100mA,电流越大,其发射的波形强度越大。 图3a电路有一点缺陷,当电池电压下降时,流过LED的电流会降低,发射波形强度降低,遥控距离就会变小。图3b所示的 射极输出电路可以解决这个问题,两个二极管把三级管基极电压钳位在1.2V左右,因此三级管发射极电压固定在0.6V左右, 发射极电流IE基本不变,根据IE≈IC,所以流过LED的电流也基本不变,这样保证了当电池电压降低时还可以保证一定的遥 控距离。 1.一体化红外接收头 红外信号收发系统的典型电路如图1所示,红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。 内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号, 然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流 信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出 高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。 一体化红外接收头,如图5所示:

相关文档