红外遥控原理及解码程序

合集下载

红外遥控原理及解码程序

红外遥控原理及解码程序

红外遥控系统原理及单片机红外线遥控是目前使用最广泛的一种通信和遥控手段。

由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。

工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

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种不同组 合的编码。

红外 遥控 原理

红外 遥控 原理

红外遥控原理
红外遥控原理是通过发射红外线信号来遥控设备的一种技术。

红外线是一种电磁波,其频率高于可见光,人眼无法直接看到。

通过使用红外发射器将电信号转换为红外光信号,然后使用红外接收器将红外光信号转换回电信号,实现设备的控制。

在红外遥控中,发射器通常由红外发光二极管组成。

当发射器接收到电信号时,它会驱动红外发光二极管产生红外光信号。

这些红外光信号具有特定的编码,可以指示不同的操作。

接收器通常由红外接收二极管和解码器组成。

红外接收二极管可以接收到发射器发出的红外光信号,并将其转换为电信号。

解码器会对接收到的电信号进行解码,将其转换为对应的操作指令。

解码器根据设定的协议,解析红外信号中的编码,以确定应该执行的操作。

在红外遥控中,发射器和接收器之间需要进行频道匹配,确保发射的红外信号能够被接收器正确解码。

此外,遥控设备通常具有不同的按键,每个按键对应着一种操作。

当用户按下按键时,发射器会发送相应的红外信号,接收器接收到信号后将其解码,并执行相应的操作。

红外遥控技术广泛应用于电视、空调、音响、家电等各种设备,为用户提供了方便的操作方式。

红外遥控原理简单而有效,因此被广泛采用。

红外遥控器软件解码及其应用

红外遥控器软件解码及其应用

红外遥控器软件解码及其应用随着现代科技的不断发展,红外遥控器已经成为人们日常生活中的必备工具之一。

不过,很多人并不了解红外遥控器的工作原理以及它是如何通过软件解码来实现遥控效果的。

本文将详细介绍红外遥控器软件解码的相关知识,以及其在实际应用中的作用。

一、红外遥控器的工作原理首先,我们需要了解红外遥控器的工作原理。

简单来说,红外遥控器是一种利用红外线光谱来传输指令的设备,通过在发射端发送编码的红外信号,再在接收端解码后执行相应的指令。

通常,红外遥控器由发射部分与接收部分两个部分组成。

发射部分由红外LED发射器构成,它会通过红外发射现象来发送编码的红外信号。

在接收端,红外接收器则会接收到这些信号,并将其转换成电信号进行解码。

之后,解码器会解析出信号的编码含义,然后执行相应的指令。

这就是红外遥控器的基本工作原理。

二、红外遥控器软件解码的实现在红外遥控器的工作中,软件解码起到了重要的作用。

所谓软件解码,就是在终端设备中运行的一种程序,能够将遥控器发射的红外编码转换成可读的指令。

而这些指令就可以用于控制各种家电、设备等。

软件解码的实现主要有两种方式。

第一种是使用硬件解码器,这需要在终端设备上安装一个专门的硬件解码器,用于解析红外信号,并输出相应的指令。

第二种方法则是使用软件解码器,这需要在终端设备上安装一个软件程序,用于解析红外信号并输出指令。

在软件解码的实现中,最常见的是使用赛贝尔红外编解码库。

这个库已经成为了广泛使用的一种红外编解码方案。

它可以用于各种嵌入式设备、物联网设备、手机、电视机顶盒等多种应用场景中。

三、红外遥控器软件解码的应用目前,红外遥控器软件解码已广泛应用于各种智能家居、物联网设备、工控设备等领域。

下面列举一些具体的应用案例:1、智能家居:通过使用红外遥控器软件解码,可以实现对家中的各种电器、设备的遥控控制。

如电视、空调、照明设备等。

2、物联网设备:红外遥控器软件解码还可以用于物联网设备中,如智能家居中的智能门锁、智能家电等。

红外遥控器程序及原理、程序

红外遥控器程序及原理、程序
Data=1;//收到数据 1 } else if(Tim>=10 && Tim<50) {
Data=0;//收到数据 0 }
if(Ok==1) {
hw_jsm<<=1; hw_jsm+=Data;
if(Num>=32)
{ hw_jsbz=1; break }
EXTI_ClearITPendingBit(EXTI_Line15); }
printf_init(); //printf 初始化
while(1)
{
if(hw_jsbz==1) //如果红外接收到
{
hw_jsbz=0;
//清零
printf("红外接收码 %0.8X\r\n",hw_jsm); //打印
hw_jsm=0;
//接收码清零
}
}
}
1.1 红外遥控简介简介 红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低, 成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用 到计算机系统中。 由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以,在 设计红外线遥控器时,不必要像无线电遥控器那样,每套(发射器和接收器)要有不同的遥控 频率或编码(否则,就会隔墙控制或干扰邻居的家用电器),所以同类产品的红外线遥控器, 可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。这对于大批量生产以 及在家用电器上普及红外线遥控提供了极大的方面。由于红外线为不可见光,因此对环境影 响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电 器,也不会影响临近的无线电设备。 红外遥控的编码目前广泛使用的是: NEC Protocol 的 PWM(脉冲宽度调制)和 Philips RC-5 Protocol 的 PPM(脉冲位置调制)。 普中科技 STM32 开发板配套的遥控器使用的是 NEC 协议,其特征如下: 1、 8 位地址和 8 位指令长度; 2、地址和命令 2 次传输(确保可靠性) 3、 PWM 脉冲位置调制,以发射红外载波的占空比代表“ 0”和“ 1”; 4、载波频率为 38Khz; 5、位时间为 1.125ms 或 2.25ms; NEC 码的位定义:一个脉冲对应 560us 的连续载波,一个逻辑 1 传输需要 2.25ms ( 560us 脉冲+1680us 低电平),一个逻辑 0 的传输需要 1.125ms( 560us 脉冲+560us 低 电平) 。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样, 我们在接收头端收到的信号为:逻辑 1 应该是 560us 低+1680us 高,逻辑 0 应该是 560us 低+560us 高。 NEC 遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步 码由一个 9ms 的低电平和一个 4.5ms 的高电平组成,地址码、地址反码、控制码、控制 反 码均是 8 位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的 可靠性(可 用于校验)。 2.数据码格式 数据格式包括了引导码、用户码、数据码和数据码反码,编码总占 32 位。数据反码是数据 码反相后的编码,编码时可用于对数据的纠错。注意:第二段的用户码也可以在遥控应用电 路中被设置成第一段用户码的反码。

红外遥控器原理

红外遥控器原理

红外遥控器原理
红外遥控器是一种使用红外线来传输信号从而实现远距离控制设备的电子设备。

它主要由发射器和接收器两部分组成。

发射器部分包含一个红外发射二极管和控制电路。

当用户按下红外遥控器上的按钮时,控制电路会将对应的信号编码成红外信号。

红外发射二极管会随后将这一编码后的红外信号通过快速的光脉冲传播出去。

接收器部分一般由一个红外接收二极管、解码电路和执行电路构成。

红外接收二极管可以接收发射器发出的红外信号,并将其转换为电信号。

经过解码电路的处理后,电信号被解码成对应的控制信号,然后传送给执行电路。

执行电路可以根据接收到的控制信号来操作被控设备。

可以通过控制信号来打开或关闭电源,调节音量,切换频道等等。

红外遥控器的原理基于红外线的特性。

红外线是一种波长较长的电磁辐射,不可见于人眼。

正因为红外线的波长长,能量较低,因此其穿透能力相对较弱,只能在短距离内传输。

这使得红外遥控器成为一种理想的设备远程控制方法。

总结来说,红外遥控器利用红外线的特性,通过发射器部分将用户的操作编码成红外信号,并通过接收器部分将红外信号转换为电信号并解码成对应的控制信号,最终通过执行电路来实现远程控制设备的功能。

红外遥控工作原理

红外遥控工作原理

红外遥控工作原理
红外遥控,是一种利用红外线传输信号来实现设备遥控的技术。

它的工作原理主要包括编码、传输和解码三个步骤。

首先,在红外遥控器上操作时,按钮上的按键会触发相应的电路,根据按键的不同,会产生不同的信号编码。

这个编码通常使用红外编码格式,如NEC、RC-5等,来表示不同的按键。

接下来,在电路中,编码后的信号会通过红外发射器发射出去。

红外发射器能够将电信号转换为红外光信号,并通过空气传输。

红外线通常位于可见光和微波之间的光谱范围,人眼无法看到,但红外接收器能够接收到这些红外信号。

最后,在接收设备一侧,有一个红外接收器。

当红外信号射向红外接收器时,它会将红外光转换为电信号,并传送到解码电路中。

解码电路会根据预设的编码格式,解析出信号所代表的功能。

例如,如果是音量加号,解码电路会将该信号传递给被遥控设备的电路,以调大音量。

综上所述,红外遥控的工作原理即通过红外线的编码和解码来实现信号的传输和功能控制。

用户通过遥控器上的按键触发编码电路,将其转换为红外信号,再经过红外发射器发射出去。

设备接收红外信号后,通过解码电路将其转换为功能信号,最终实现设备的遥控控制。

红外调制与解调原理

4 功能模块设计4.1 红外的发射和接收红外线波长在750nm至1um之间的电磁波,它的频率低于可见光,是一种人的眼睛看不到的光线。

红外遥控具有抗干扰能力强,信息传输可靠,功耗低,成本低,易于实现等显著优点。

红外遥控由发送和接收两部分组成,发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲信号,通过红外发射管发射红外信号。

红外接收采用性能可靠的一体化红外接收头接收红外信号,它同时对信号进行放大,检波,整形,得到TTL电平的编码信号,再送给单片机,经单片机解码并进行相关操作。

发送与接收示意图如下所示:图4 发送与接收示意图由上所述可知,遥控系统分为编码,调制,解调和解码如图5所示四大部分:图5 遥控与接收系统4.1.1 编码如图4,二进制信号中的‘1’的高低电平均等于0.26ms,相当于10个26us的宽度;二进制信号中的‘0’的低电平宽0.52ms,高电平宽0.26ms。

图6 编码示意图4.1.2 调制红外信号的调制有脉冲宽度调制(PWM),脉冲位置调制(PPM)等方法,本设计采用脉宽调制。

二进制的调制由单片机来完成,它把编码后的二进制信号调制成频率为38khz 的间断脉冲串,此脉冲串即是用于红外发射二极管发送的信号。

如图7,A是二进制信号的编码波形,B是频率为38khz(周期约为26us)的连续脉冲串,C是经调制后的间断脉冲串,即是用于发送的信号。

图7中,待发的二进制数据为101。

图7 信号调制示意图4.1.3 解调二进制信号的解调由一体化红外接收头来完成,它把接收到的信号(图8中的波形D 也是图7中的波形C)经内部处理并解调复原,输出图8中的波形E(正好是图7中A的取反)。

接收头的解调可理解为:在输入脉冲串时输出低电平,否则输出高电平。

二进制的解码由单片机来完成,它把红外接收头送来的二进制编码波形通过解码,还原成发送端发送的数据。

如图8,把波形E解码还原成数据信息101。

图8 信号解调示意图4.1.4 解码在发送字节的开始先通过单片机发送20个脉冲宽度(每个脉冲周期26us)的高电平作为传输的开始(同步帧),接着发送8位二进制数据(高位在前,低位在后),最后发送10个脉冲宽度的低电平作为传输的结束,如图9所示:图9 字节传输当接收到同步帧后,进入解码部分。

红外遥控工作原理

红外遥控工作原理
红外遥控的工作原理主要是基于红外线的辐射和接收来实现的。

具体步骤如下:
1. 基站端:遥控设备通过按键等操作产生指令信号。

这些指令信号经过编码电路进行数字编码处理,得到对应的红外信号编码。

2. 红外发射器:红外发射器通过电信号控制,将编码后的红外信号转换成相应的红外辐射,并将其以红外脉冲的形式发送出去。

3. 环境传播:红外信号在环境中传播,其中包括空气、障碍物等。

红外信号在传播过程中会遇到一定的衰减。

4. 红外接收器:红外接收器通常由红外光敏器件、前置放大器和解码器组成。

红外光敏器件接收到经过传播的红外信号后,将其转换为对应的电信号,并经过前置放大器加以放大。

然后,解码器对放大后的信号进行解码处理,将其转换成对应的指令信号。

5. 电机驱动:接收到解码后的指令信号后,会通过电路控制电机或其他装置的运行,从而实现对目标设备或对象的遥控操作。

总结起来,红外遥控工作原理包括编码、发射、传播、接收和解码等步骤,通过红外辐射和接收器的协作实现遥控设备的控制。

红外遥控器软件解码原理和程序


void rs232(void) interrupt 4{ static unsigned char sbuf1,sbuf2,rsbuf1,rsbuf2; //sbuf1,sbuf2 用来接收 发送临时用,rsbuf1,rsbuf2 用来分别用来存放接收发送的半字节 EA=0; //禁止中断 if(RI){ RI=0; //清除接收中断标志位 sbuf1=SBUF; //将接收缓冲的字符复制到 sbuf1 if(sbuf1==HEAD){ //判断是否帧开头 state1=10; //是则把 state 赋值为 10 buf1=RECEIVE; //初始化接收地 址 } else{
void tf_2(void); void read_ir(void); void ir_jiema(void); void ir_init(void); void ir_exit(void); void store_ir(void); void read_key(void); void reset_iic(void); unsigned char read_byte_ack_iic(void); unsigned char read_byte_nack_iic(void); bit write_byte_iic(unsigned char a); void send_ack_iic(void); void send_nack_ic(void); bit receive_ack_iic(void); void start_iic(void); void stop_iic(void); void write_key_data(unsigned char a); unsigned int read_key_data(unsigned char a); void ie0(void) interrupt 0{ie_0();} void tf0(void) interrupt 1{tf_0();} void ie1(void) interrupt 2{ie_1();} void tf1(void) interrupt 3{tf_1();tf_2();} void tf2(void) interrupt 5{ //采用中断方式跟查询方式相结合的办法解 码 EA=0; //禁止中断 if(TF2){ //判断是否是溢出还是电平变化产生的中断 TF2=0; //如果是溢出产生的中断则清除溢出位,重 新开放中断退出 EA=1; goto end; } EXF2=0; //清除电平变化产生的中断位 *ir=RCAP2H; //把捕捉的数保存起来 ir++; *ir=RCAP2L; *ir++; F0=1; TR0=1; //开启计数器 0 loop: TL0=0; //将计数器 0 重新置为零 TH0=0; while(!EXF2){ //查询等待 EXF2 变为 1 if(TF0)goto exit; //检查有没超时,如果超时则退出 };

红外线遥控工作原理

红外线遥控工作原理红外线遥控技术广泛应用于遥控器、家用电器以及无人机等领域。

它通过发射和接收红外线信号实现物体的远程控制。

本文将介绍红外线遥控的工作原理以及应用。

一、红外线遥控的原理红外线是位于可见光和微波之间的一种电磁波,它的波长较长,无法被人眼所察觉。

红外线遥控利用红外线的特性来传输信号并控制目标设备。

1. 发射器红外线发射器由红外二极管和电路组成。

当遥控器上的按键被按下时,电路会向红外二极管提供电流,导致二极管产生红外线信号。

红外线通过透明的遥控器外壳发射出去,并传输到目标设备。

2. 接收器目标设备上的红外接收器可以接收到从遥控器发射出的红外线信号。

红外接收器会将接收到的信号转换成电信号,并传输给设备的控制电路。

3. 解码与执行控制电路接收到红外接收器传来的电信号后,会进行解码。

每个遥控器的按键都有对应的红外码,解码后的信号会与设备内部存储的红外码进行比对。

如果两者一致,控制电路将执行对应的指令,实现遥控操作。

二、红外线遥控的应用1. 家用电器红外线遥控广泛应用于电视、空调、音响等家用电器。

通过遥控器发送指令,用户可以在不离开座位的情况下调整设备的音量、温度或切换频道等功能。

红外线遥控的简单操作和方便性赢得了广大用户的喜爱。

2. 汽车许多汽车配备了红外线遥控系统,用于解锁、遥控启动以及车门窗户的控制。

遥控汽车钥匙通过红外线发射信号,将指令传输到汽车控制系统,实现对汽车的远程控制。

3. 无人机无人机作为飞行器的一种,通过红外线遥控实现操控。

飞行员可以通过控制器来控制无人机的飞行、相机的角度调整等操作,以达到所需的效果。

红外线遥控技术的精确性和高速性,使得无人机能够在各种复杂的环境中实现精确的操控。

4. 安防系统红外线遥控也广泛应用于安防系统中,如门禁系统、报警器等。

用户可以通过遥控器控制门禁的开关、设置报警器的工作模式等,从而增强家庭和企业的安全性。

总结:红外线遥控技术凭借其便利性和广泛应用性,在日常生活中扮演着不可或缺的角色。

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

红外遥控系统原理及单片机
红外线遥控是目前使用最广泛的一种通信和遥控手段。

由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。

工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

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为发射波形图。

图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所示。

图7
①脉冲信号输出接,直接接单片机的IO 口。

②GND接系统的地线(0V);
③Vcc接系统的电源正极(+5V);
4 遥控信号的解码
红外线遥控器的解码程序,它可以把红外遥控器每一个按键的键值读出来,并且通过实验板上P1口的8个LED显示出来,在解码成功的同时并且能发出“嘀嘀嘀”的提示音。

; 红外遥控接收
MAIN:
JNB P2.2,IR ;遥控扫描
LJMP MAIN ;在正常无遥控信号时,一体化红外接收头输出是高电平,程序一直在循环。

; 解码程序
IR:
;以下对遥控信号的9000微秒的初始低电平信号的识别,波形见图5。

MOV R6,#10
IR_SB:
ACALL DELAY882 ;调用882微秒延时子程序
JB P2.2,IR_ERROR ;延时882微秒后判断P2.2脚是否出现高电平如果有就退出解码程序
DJNZ R6,IR_SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
;识别连发码,和跳过4.5ma的高电平。

JNB P2.2, $ ;等待高电平避开9毫秒低电平引导脉冲ACALL DELAY2400
JNB P2.2,IR_Rp ;这里为低电平,认为是连发码信号,见图6。

ACALL DELAY2400 ;延时4.74毫秒避开4.5毫秒的结果码
;以下32数据码的读取,0和1的识别请看图2
MOV R1,#1AH ;设定1AH为起始RAM区
MOV R2,#4
IR_4BYTE:
MOV R3,#8
IR_8BIT:
JNB P2.2,$ ;等待地址码第一位的高电平信号LCALL DELAY882 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
MOV C,P2.2 ;将P2.2引脚此时的电平状态0或1存入C中
JNC IR_8BIT_0 ;如果为0就跳转到IR_8BIT_0
LCALL DELAY1000
IR_8BIT_0:
MOV A,@R1 ;将R1中地址的给A
RRC A ;将C中的值0或1移入A中的最低位
MOV @R1,A ;将A中的数暂时存放在R1中
DJNZ R3,IR_8BIT ;接收地址码的高8位
INC R1 ;对R1中的值加1,换下一个RAM
DJNZ R2,IR_4BYTE ;接收完16位地址码和8位数据码和8位数据,
;存放在1AH/1BH/1CH/1DH的RAM中
;解码成功
JMP IR_GOTO
IR_Rp:
;重复码执行处
;按住遥控按键时,每过108ms就到这里来
JMP IR_GOTO
IR_ERROR:
;错语退出
LJMP MAIN ;退出解码子程序
;遥控执行部份
IR_GOTO:
;这里还要判断1AH和1BH两个系统码或用户码,用于识别不同的遥控器
;MOV A,1AH
;CJNE A,#xxH,IR_ERROR ;用户码1不对则退出
;MOV A,1BH
;CJNE A,#xxH,IR_ERROR ;用户码2不对则退出
;判断两个数据码是否相反
MOV A,1CH
CPL A
CJNE A,1DH,IR_ERROR ;两个数据码不相反则退出
;遥控执行部份
;MOV A,1DH ;判断对应按键
;CJNE A,#xxH,$+6
;LJMP -à跳到对应按键执行处
;CJNE A,#xxH,$+6
;LJMP -à跳到对应按键执行处
MOV P1,1DH ;将按键的键值通过P1口的8个LED 显示出来!
CLR P2.3 ;蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功
LCALL DELAY2400
LCALL DELAY2400
LCALL DELAY2400
SETB P2.3 ;蜂鸣器停止
;清除遥控值使连按失效
MOV 1AH,#00H
MOV 1BH,#00H
MOV 1CH,#00H
MOV 1DH,#00H
LJMP MAIN
延时子程序
882
DELAY882: ;1.085x ((202x4)+5)=882
MOV R7,#202
DELAY882_A:
NOP
NOP
DJNZ R7,DELAY882_A
RET
; 1000
DELAY1000: ;1.085x ((229x4)+5)=999.285
MOV R7,#229
DELAY1000_A:
NOP
NOP
DJNZ R7,DELAY1000_A
RET
; 2400
DELAY2400: ;1.085x ((245x9)+5)=2397.85 MOV R7,#245
DELAY2400_A:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,DELAY2400_A
RET
END。

相关文档
最新文档