红外接收解码原理和源程序PPT课件

合集下载

任务5.4红外遥控解码.

任务5.4红外遥控解码.

* 函数名称: InfraredInit()
* 功能 :定时器测量脉宽功能初始化 * 入口参数:无
* 出口参数:无
* 说明 : ***************************************************************************/
void InfraredInit()
{
uint PulseWidth=0;
//
uchar OriginalCode=0;
//
脉宽 操作码原码
6
5.4 红外遥控器解码
uchar AntiCode=0;
//
按键码反码
static bit FlagStart=0;
//
捕获结果码标志位
static uchar IntrNum=0;
//
中断次数
IntrNum++;
}
if(IntrNum>=32)
//
{
IntrNum=0;
AntiCode=InfraredDecode&0xff; // OriginalCode=(InfraredDecode>>8)&0xff;//
if(AntiCode+ OriginalCode==0xff) //
{
FlagInfraredGet=1;
5.4.3 任务实施
图 5.4.8 是本程序的工程结构图:
图 5.4.8 工程结构框图
4
5.4 红外遥控器解码
( 1)主函数 main.c:
#include<reg52.h>
#include"Infrered.h"

红外遥控发射接收系统课件

红外遥控发射接收系统课件

发射器的编码与调制方式
编码方式
红外遥控发射器采用多种编码方式,如PWM(脉宽调制)编 码、PPM(脉冲位置调制)编码等,以实现不同按键信号的 编码与发送。
调制方式
红外遥控发射器通常采用FSK(频移键控)或PSK(相移键控 )等调制方式,将低频控制信号调制到高频载波上,以提高 信号的抗干扰能力和传输距离。
04
红外接收管电路设计
接收管选择:选用高灵敏度的红外接收管 。
05
06
信号处理电路设计:设计信号放大、滤波 、比较等电路,提高接收信号的信噪比。
软件程序设计
要点一
初始化
初始化硬件设备,如红外发射管、接收管、单片机等。
要点二
循环检测
不断检测是否有红外信号输入,若有则执行相应操作。
软件程序设计
01
02
发射器的优化与改进
提高发射距离
通过提高发射功率、选用高效率 的红外发光二极管等措施,可以 增加红外遥控发射器的发射距离

降低功耗
采用低功耗设计、选用合适的电源 管理系统等技术手段,可以降低红 外遥控发射器的功耗,延长使用寿 命。
兼容性与互操作性
针对不同品牌和型号的红外遥控接 收器,红外遥控发射器应具备兼容 性和互操作性,以实现广泛的适用 范围。
接收器的优化与改进
抗干扰能力
降低功耗
为了提高红外遥控接收器的抗干扰能 力,可以采用多种抗干扰技术,如扩 频技术、跳频技术、频移键控等。
为了降低红外遥控接收器的功耗,可 以采用低功耗设计,如采用CMOS工 艺、采用休眠模式等。
灵敏度提升
通过优化接收管和信号处理电路的设 计,可以提高红外遥控接收器的灵敏 度,使其能够更好地接收微弱信号。

红外遥控发射接收系统课件

红外遥控发射接收系统课件

发射器的电路设计
电源电路
为发射器提供稳定的直流电源,确保发 射器正常工作。
调制电路
将编码后的控制信号调制到红外载波上 ,形成红外遥控信号。
控制电路
负责编码和控制信号的生成,将按键输 入转化为红外信号。
发射电路
将调制后的红外信号发送出去,实现遥 控功能。
发射器的编码方式
01
脉冲位置编码
通过控制脉冲信号在不同位置 出现与否进行编码。
抗同频干扰
当多个同频的红外遥控信号同时存在时,可能会对接收器造成干扰。为了提高 抗干扰能力,可以采用编码和解码技术,使接收器只对特定编码的红外遥控信 号敏感。
04
红外遥控发射接收系统的 调试与优化
调试步骤与方法
电源检查
检查电源是否稳定,避免因电 源问题导致系统工作异常。
距离与角度测试
测试红外遥控在不同距离和角 度下的信号接收效果,确保正 常工作范围。
高效能
随着技术的进步,红外遥控发射接收 系统的处理速度和传输效率将得到大 幅提升,以满足实时性和可靠性的需 求。
应用领域拓展
智能家居
红外遥控发射接收系统将广泛应 用于智能家居领域,实现家电设
备的远程控制和自动化管理。
智能安防
红外遥控发射接收系统在智能安防 领域具有广泛的应用前景,如监控 、报警等。
红外遥控发射接收系统的应用场景
家用电器控制
用于电视、空调、音响等家用电器的开 关、音量调节等功能。
工业控制
用于控制自动化设备、机器人等,实现 远程操控。
智能家居系统
作为智能家居系统中的一种无线通信方 式,实现家庭内部各种设备的互联互通 。
办公设备
用于投影仪、打印机等办公设备的无线 控制。

红外通信的基本原理课件

红外通信的基本原理课件

红外通信的基本原理
7
红外通信的框架-接收与解调 红外双向通信
HS0038一体化接收头
解调过程
接收的频率是38khz左右,周期为26us,使用HS0038完成对调制后的脉冲 信号进行放大、检波、整形得到TTL电平的解调信息
0xA5=10100101
1 接收 脉冲
0
1
0
0
1
0
1
解调 信息
红外通信的基本原理
红外双向通信
红外通信的基本原理
3
红外通信的框架
红外双向通信
数据 编码 调制 发送电路
接收电路 解调 解码 数据
发送端
接收端
发送端对数据进行编码,然后调 制成一系列的脉冲信号,然后通 过带有红外发射管的发射电路发 送脉冲信号,即红外信号
接收端完成对脉冲信号的接收、 放大、检波、整形,然后解调 出编码信号,对其解码获取到 发送的数据
0xA5=10100101
1
0
1
0
0
1
0
1
编码
信息
载波
1
0
1
0
0
1
0
1
调制
结果
红外通信的基本原理
6
K 10508NPN CD CN VG K 1 NI-OI
红外通信的框架-发送
红外双向通信
发送电路
作用
对脉冲信号的放大 红外管对脉冲信号的发送
注:如果想发送的在远一些,信号更稳定, 建议电路选择成二级放大
调制方式
NEC协议根据脉冲时间长短解码,每个脉冲位560us长的 38Khz载波(约21个载波周期),逻辑“1”脉冲时间为 2250us,逻辑“0”脉冲时间为1120us,推荐的载波周期为 1/3或者1/4。

红外解码程序

红外解码程序

红外解码程序本篇介绍红外解码的原理和程序的写法。

下面来看一下,红外线是如何编码的。

下面来具体说一下,解码的原理,每按一下遥控器的一个按键,遥控器就会发出32个“0”“1”代码(当然是通过高低电平的占空比来判断是0还是1的),具体是0,1是如何编码的上面图片中有介绍,和一个引导码,引导码的作用是告诉处理器,接下来将要开始发送代码,我们在编写程序时,当检测到引导码时,就应该准备接受数据了。

32位代码中的前16位是用户识别码,不同的遥控器不相同,防止互相干扰的,后16是8为数据码,和8位数据反码。

接下来开始介绍如何解码程序的编写。

程序中用到了两个中断,一个是定时器中断,一个是外部中断。

定时器中断用来准确计时,判断接受的代码是0还是1,外部中断用来准确确定定电平到来的时刻,然后开始计时。

/*********************************************************函数功能:红外解码,用八位数码管显示红外线的按键码,便于红外控制测试环境:hot 51学习板编译环境:keil4整理人:张家越QQ:435835181整理时间:2011-04-03************************************************************/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code seg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0 x6f,0x77,0x7c,0x39,0x5E,0x79,0x71 };//0-f的段选码unsigned char code seg_we[]={0,1,2,3,4,5,6,7};uchar irtime,startflag,bitnum,irreceok;uchar irdata[33];uchar irprosok;uchar display[8];uchar ircode[8] ;sbit led1=P0^1;sbit led2=P0^2;/******************************************************************** ****函数功能:延时函数,在数码管显示时使用,不需要很精确********************************************************************* ****/void delay_50us(uint t){uchar j;for(;t>0;t--)for(j=19;j>0;j--);}/******************************************************************** ******函数的功能:定时器0的初始化********************************************************************* *****/void timer0init(){TMOD=0x02; //设置定时器工作在方式2TH0=0x00; //TL0=0x00; //设置定时器的初值ET0=1; //开定时器中断TR0=1; // 打开定时器EA=1; //开总中断}/******************************************************************** ****外部中断1的初始化********************************************************************* **/void int1init(){IT1=1; //设置触发方式为上升沿EX1=1; //开外部中断1EA=1; //开总中断}/******************************************************************** **定时器0的功能函数,每中断一次irtime++,用于计时********************************************************************* **/void timer0() interrupt 1{irtime++; //定时器中断一次irtime++,用于计时}/******************************************************************** ***外部中断0的处理函数,每当有低电平数据过来时,中断一次,(使用次中断的前提是,信号线必需接在外部中断0上面,也就是P3^2口),函数功能是,把信号从高低电平变成时间的代码放入irdata【】中********************************************************************* ***/void int1() interrupt 2{if(startflag){if(irtime>32) //一组代码检测完毕{bitnum=0;}irdata[bitnum]=irtime; //把检测到的时间送到数组irdata【】中去irtime=0;bitnum++;if(bitnum==33) //如果检测到bitnum=33,说明32位用户码已经检测完毕{bitnum=0; //将bitnum清零以便重新计数irreceok=1; //接收完毕标志位置一}}else //(此函数先进入else语句,跳过引导码的检测){startflag=1; //将开始标志位置一irtime=0; //设置时间初值为零irreceok=1; //接收完毕标志位置一}}/******************************************************************** *****函数功能:把irdata【】中的时间代码转换成二进制代码存放在ircode【】中********************************************************************* *****/void irpros(){uchar k=1,value,j,i;for(j=0;j<4;j++){for(i=0;i<8;i++){value=value>>1; //右移7次(第一次是00,相当于没有移位)if(irdata[k]>6) //循环8次{value=value|0x80;}k++;}ircode[j]=value;}irprosok=1;}/******************************************************************** ********函数的功能是:将ircode【】中的二进制代码转换成为16进制代码便于在数码管上显示******************************************************************* ********/void irwork(){display[0]=ircode[0]/16;display[1]=ircode[0]%16;display[2]=ircode[1]/16;display[3]=ircode[1]%16;display[4]=ircode[2]/16;display[5]=ircode[2]%16;display[6]=ircode[3]/16;display[7]=ircode[3]%16;}/******************************************************************** ****函数功能:用数码管显示解码结果********************************************************************* ***/void display1(){uchar i;for(i=0;i<8;i++){P2=seg_we[i];P0=seg_du[display[i]];delay_50us(40);}}void main(){timer0init(); //定时器初始化int1init(); //外部中断初始化while(1){if(irreceok) //判断数据接收完毕(数组中存储的是高低电平的时间){irpros(); //执行处理函数,将高低电平时间转化成16进制的0,1代码,存放在数组中irreceok=0; //标志清零}if(irprosok) //处理函数执行完毕,{irwork(); //将存储的16进制代码分离,便于数码管显示irprosok=0; //标志清零}display1();}}//在最后我再分析一下程序的编写思路,便于大家理解,一旦有按键按下,接受管接收到引导码,进入外部中断,并将高低电平的时间放入irdata【】数组中,接受完毕标志位置一,判断接受标志位,为1,进行处理函数,将高低电平转换成16进制数,处理标志位置一,判断处理标志位,为1,执行分离函数,将16进制数分离,便于数码管显示,分离完毕后显示。

红外接收解码-课件

红外接收解码-课件

1 红外遥控系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集 成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、 编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、 解码电路。
遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,
if(DeCode()==1) // 执行遥控解码功能
THANKS
TR0=1; //开启定时器T0
while(IR==1); //如果是高电平就等待,给引导码高电平计时 TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0;
//保存引导码的高电平长度
if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))
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
红外接收
红外接收头将38K载波信号过虑,得到与发射代码反向接收代码
发射端的“0”和“1”
红外解码的关键就是识别 0和1
1. 解码的关键是如何识别“0”和“1”, 从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始, 不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度 区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低, 说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些, 但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平, 因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。

红外遥控原理及应用课件

红外遥控原理及应用课件
干扰和恶意攻击
恶意用户可以通过发送干扰信号或恶意代码来干扰或控制受控设 备的正常工作。
安全防护措施
设置密码或身份验证
在红外遥控设备上设置密码或身份验证机制,确保只有授权用户 能够进行操作。
加密传输信号
采用加密技术对红外遥控信号进行加密,防止信号被窃取和破解。
定期更新和升级
及时更新和升级红外遥控设备的固件或软件,以修复可能存在的安 全漏洞。
RC-5协议
由Philips公司开发,主要用于电视机的遥控,采 用脉冲宽度调制(PWM)方式,具有高速抗干 扰能力。
Philips RC-6协议
Philips公司开发的另一种红外遥控编码方式,采 用PPM方式,具有高可靠性和快速响应的特点。
抗干扰技术
扩频技术
频域滤波技术
通过扩展信号的频谱来减小干扰的影 响,常用的有直接序列扩频和跳频扩 频两种。
3. 上传代码
将编写好的代码上 传到红外接收器中 。
5. 调试与优化
根据实验结果,对 代码进行调试和优 化。
实验结果与分析
功能实现
通过实验,实现了红外遥控的基本功 能,如开关、音量调节等。
性能评估
对实验结果进行性能评估,如响应速 度、稳定性等。
问题与解决方案
在实验过程中遇到的问题及相应的解 决方案。
车门控制
红外遥控器可以用来远程控制 车门的开关。
灯光控制
红外遥控器可以用来控制车灯 的开关,如前大灯、雾灯等。
其他
如车载音响、导航系统等也可 以通过红外遥控器进行控制。
04
红外遥控发展前景
技术创新与改进
编码方式的优化
随着技术的进步,红外遥控的编码方式也在不断优化,以提高信 号传输的稳定性和抗干扰能力。

红外接收程序讲解

红外接收程序讲解

红外接收程序讲解1、红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示;发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路;下面,我们将使用下面两种设备:另外,使用51单片机进行解码;2、原理图从原理图看出,IR的data脚与51的PD2相连;2、红外发射原理要对红外遥控器所发的信号进行解码,必须先理解这些信号;a 波形首先来看看,当我们按下遥控器时,红外发射器是发送了一个什么样的信号波形,如下图:由上图所示,当一个键按下超过22ms,振荡器使芯片激活,将发射一组108ms的编码脉冲由位置1所示;如果键按下超过108ms仍未松开,接下来发射的代码连发代码由位置3所示将仅由起始码9ms和结束码组成;下面把位置1的波形放大:由位置1的波形得知,这108ms发射代码由一个起始码9ms,一个结果码,低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”;以脉宽为、间隔、周期为的组合表示二进制的“1”;3、红外接收原理a 波形红外接收头将38K载波信号过虑,接收到的波形刚好与发射波形相反:放大,位定义0和位定义1波形如下:4、解码原理及算法注:代码宽度算法:16位地址码的最短宽度:×16=18ms 16位地址码的最长宽度:×16=36ms可以得知8位数据代码及其8位反代码的宽度和不变:+×8=27ms所有32位代码的宽度为18ms+27ms~36ms+27ms对于红外线遥控对于很多电子爱好者来讲,都感觉到非常神奇,看不到,摸不着,但能实现无线遥控,其实控制的关键就是我们要用单片机芯片来识别红外线遥控器发出红外光信号,即我们通常所说的解码;单片机得知发过来的是什么信号,然后再做出相应的判断与控制,如我们按电视机遥控器的频道按钮,则单片机会控制更换电视频道,如按的是遥控器音量键,则单片机会控制增减音量;解码的关键是如何识别“0”和“1”从位的定义我们可以发现“0”、“1”均以的低电平开始,不同的是高电平的宽度不同,“0”为,“1”为,所以必须根据高电平的宽度区别“0”和“1”;如果从低电平过后,开始延时,以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比长些,但又不能超过,否则如果该位为“0”,读到的已是下一位的高电平,因此取+/2=最为可靠,一般取左右均可;根据码的格式,应该等待9ms的起始码和的结果码完成后才能读码;5、实例代码:注意一下几点:1. 从上面“红外接收头与单片机连接原理图”来看,红外接收头的型号脚是与51的int0相连,所以需要使用INT0外部中断0.2. 由于解码过程中涉及到延时,为精确起见,我们选择使用定期时1来计时;实例代码:C++1.include2.include系统初始化SystemInit系统初始化时,我们设置IRIN为高电平,同时把IT0设置成1,即下降沿负跳变触发中断;这是用于接收波形的引导码是从低电平开始的如上面接收波形所示;这样,当按下按键时,红外接收到信号,IRIN则发生从预先设置的高电平跳为低电平,从而产生中断;2. 解码--中断程序interr_irvoid首先,第一步把EX0关中断,这步至关重要,因为一个接收波形许多的下降沿,这样会产生干扰中断;接下来,使用定期时0延时9ms,跳过开始码;注意,延时后,需要检测一下干扰信号;下一步,whileIRIN; 等待高电平的到来,再延时,跳过结果;引导码过后, 开始读码,执行GetCode:32位数据码,分4次读取,所以执行4次GetCode,读取一个字节数据过程如下:C++1.unsigned char GetCode2.{3.unsigned char n;4.static temp=0;5.for n = 0; n < 8; n++6.{while IRIN; 从上述位定义看,位0和位1都是的低电平过后,高电平开始延时;所以,读码的第一步whileIRIN;是等待这个的低电平之后的高电平;2. 从高定平到后开始延时3. 判断的波形高电平还是低电平;若仍然是高电平证明,该位为“1”,否则为“0”;到这里读码结束;3. 校验由于32位数据码中,后两个字节是键数据码和健数据反码;可以通过这两个字节数来实行校验;即,把前一个字节去反判读是否等于后一字节;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次 调制以提高发射效率,达到降低电源功耗的目的。 然后再通过红外发射二极管产生红外线向空间发射,如图。
UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别 不同的电器设备,防止不同机种遥控码互相干扰。芯片厂商把用户识别码固定为十六进制 的一组数;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编 码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码 本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间, 图4为发射波形图。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码 脉冲, 这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms), 高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组 成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms) 和结束码(2.5ms)组成。
锐志开发板上红外接收头连接图
注:P3.2接的是外部中断
红外接收头将38K载波信号过虑,得到与发射代码反向接收代码
发射端的“0”和“1”
红外解码的关键就是识别 0和1
1. 解码的关键是如何识别“0”和“1”, 从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始, 不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度 区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低 说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些, 但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平, 因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。
接收器及解码
一体化红外线接收器是一种集红外线接收和放大 于一体,不需要任何外接元件,就能完成从红外 线接收到输出与TTL电平信号兼容的所有工作, 而体积和普通的塑封三极管大小一样,它适合于 各种红外线遥控和红外线数据传输。
图中3个引脚从左到右 依次是 1 信号输出 2 地线(GND) 3 电源 (+5V)
Please Criticize And Guide The Shortcomings
演讲人:XXXXXX 时 间:XX年XX月XX日
红外线遥控
红外线遥控
红外线遥控是目前使用最广泛的一种通信 和遥控手段。由于红外线遥控装置具有体 积小、功耗低、功能强、成本低等特点, 因而,继彩电、录像机之后,在录音机、 音响设备、空凋机以及玩具等其它小型电 器装置上也纷纷采用红外线遥控。工业设 备中,在高压、辐射、有毒气体、粉尘等 环境下,采用红外线遥控不仅完全可靠而 且能有效地隔离电气干扰。
1 红外遥控系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集 成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、 编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、 解码电路。
遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,
TR0=1; //开启定时器T0
while(IR==1); //如果是高电平就等待,给引导码高电平计时 TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0;
//保存引导码的高电平长度
if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))
2. 根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。
检测9MS的引导码
IT0=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
解码比较容易的一类来加以说明,现以兼容NEC的uPD6121G芯片发射码格式的芯片组 成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不 同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二 进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的 “1”,其波形如图2所示。
if(DeCode()==1) // 执行遥控解码功能
结束语
当你尽了自己的最大努力时,失败也是伟大的, 所以不要放弃,坚持就是正确的。
When You Do Your Best, Failure Is Great, So Don'T Give Up, Stick To The End
感谢聆听
不足之处请大家批评指导
{
//如果是引导码,就开始解码,否则放弃,引导码的低电平计时 //次数=9000us/1.085=8294, 判断区间:8300-500=7800,8300+500=8800. //如果是引导码,就开始解码,否则放弃,引导码的低电平计时
//次数=9000us/1.085=8294, 判断区间:8300-500=7800,8300+500=8800.
相关文档
最新文档