红外遥控系统原理及单片机软件解码实例

发布者:郑大大最新更新时间:2017-01-18 来源: eefocus关键字:红外遥控  单片机  软件解码 手机看文章 扫描二维码
随时随地手机看文章

下面是一个对51实验板配套的红外线遥控器的解码程序,它可以把红外遥控器每一个按键的键值读出来,并且通过实验板上P1口的8个LED显示出来,在解码成功的同时并且能发出“嘀嘀嘀”的提示音。 

;=================================================  

; 红外遥控接收       

;=================================================  

;   ew51仿真编程器    配套实验板学习例程  

;  

;   中山单片机学习网    智佳科技   逸风  

;  

;   http://www.zsMCU.com  

;   E-mail:info@zsmcu.com  

;=================================================  

ORG 0000H   

   

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,{1}6  

    ;LJMP  -à跳到对应按键执行处  

    ;CJNE  A,#xxH,{1}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  



关键字:红外遥控  单片机  软件解码 引用地址:红外遥控系统原理及单片机软件解码实例

上一篇:对单片机存储分配新的认识
下一篇:基于单片机的电子密码锁的实现

推荐阅读最新更新时间:2024-03-16 15:31

51单片机学习笔记5 -- 外部中断
1.外部中断概念 外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。 2.引脚功能复用 51单片机芯片内部有很多外设,这些外设的引脚都是与IO口复用的。也就是说,一个IO口如果可以复用为内置外设的功能引脚,那么当这个IO口作为内部外设使用的时候,就叫做复用(一般来说,当某个引脚作为复用功能使用时,它将不能作为其他复用功能和普通IO来使用,即单个引脚只能作为普通IO或单个复用功能来使用)。 51单片机也有引脚具备复用功能,如下图P3端口的引脚可复用成串口收发或外部中断 3.中
[单片机]
51<font color='red'>单片机</font>学习笔记5 -- 外部中断
基于MSP430F149单片机的电子血压计设计
  1 引言   测量血压的传统仪器是机械式水银血压计,电子血压计近几年才在市场上出现。电子血压计与传统血压计相比,虽然操作简单、使用方便,但准确性、稳定性往往不太理想。本设计力求准确、稳定,以适用于老年人或病人随时监测自己血压情况及临床医学检测。   2 系统的硬件设计   本设计采用Motorola公司的MPX53GC硅压式传感器和TI公司MSP430F149单片机为主要器件, 构成电子血压计,系统构成如图1。系统由MCU、 传感器、LCD液晶显示器、操作面板、充放气控制 电路、气泵和气阀、蜂鸣器、存贮器、电源等部分 构成。      2.1 微处理器的选择   单片机是整个系统的大脑,它不仅要对系统进 行
[单片机]
AVR单片机从左到右LED流水灯C语言程序
AVR单片机第一个实验,从左到右的LED流水灯C语言程序,编程环境是WinAVR,8MHZ晶振。 #include avr/io.h //相关库 #include util/delay.h typedef unsigned int uint; typedef unsigned char uchar; uchar const tab ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main(void)//主函数 { PORTB=0xff;//PB口输出为高电平 DDRB=0xff;//高PB口为输出 uchar a;//定义变量 while(1)//无限
[单片机]
非接触公交IC卡读写器的应用设计
一、IC卡读写器概述   目前经常接触到的IC卡有两种:接触式的和非接触式的IC卡。接触式的IC卡通过机械触点从读写器获取能量和交换数据;非接触式IC卡通过线圈射频感应从读写器获取能量和交换数据,所以又称射频卡。目前在社会上常见的是接触式IC卡。它具有存储量大(以兆为单位),保密功能强(有多重密码设置和认证功能),可实现一卡多用。但是,这类卡的读写操作速度较慢,操作也不方便,每次读写时必须把卡正确地插入到读写器的口槽才能完成数据交换,这样,在公交、考勤等需要频繁读写卡的场合就很不方便,而且读写器的触点和卡片上IC卡的触脚暴露在外,容易损坏和搞脏而造成接触不良。   非接触式IC卡是根据射频电磁感应原理产生的。它的读写操作只需将
[单片机]
非接触公交IC卡读写器的应用设计
AC89C2051在全数字变频控制器中的设计与应用
1.前言 在家电或工业控制中,经常需要根据环境条件的改变而改变供电频率,以便取得最佳的启动力矩、最佳的转速、最佳的风量或制冷/热量。本文介绍一种全数字的变频控制器,它可以根据外界环境的变化(如压力、温度、输入电压和人为地设定等),自适应地改变输出电源频率,达到对电机调速的目的。在控制算法中,采用模糊理论,设定隶属函数,求出控制输入的隶属度,并进行模糊规则判断,得出模糊的控制输出。然后进行模糊量的计算,得出精确的控制输出,达到控制运行频率的目的。经过试运行表明:自适应能力强,控制精度高,特别是解决了一般低压带负荷启动的困难。 2.变频控制器系统结构原理 下面,以1.5kW输出功率的变频控制器为例进行介绍,该系统结构如图1所
[单片机]
AC89C2051在全数字变频控制器中的设计与应用
基于AVR单片机的多路遥控开关编解码实现
  负荷缸是船舶电力核心发电机性能的负荷试验必备的重要工装设备,通过负荷试验,可以检验发电机长期工作的性能稳定的情况(静态特性)和对突加突卸负荷的应变能力(动态特性)。AVR单片机具有高性能低价格的优点,在本文中利用AVR单片机对发电机负荷缸的多路远程遥控开关量进行采集监控并进行数字信号编解码,用2芯的电缆取代原来40芯的粗电缆传输控制信号,有效地解决了工作中遇到的问题。   1 问题的提出   我们通过把由发电机供电的通电极板放到负荷缸水电阻中,用充气升降极板和补给水调节水电阻大小的方法控制试验发电机所带负荷的大小,对发电机的性能进行试验。体积庞大的负荷缸一般放置在码头,在船舶发电机的负荷试验中需要在船舶配电板处控制负荷缸的
[单片机]
基于AVR<font color='red'>单片机</font>的多路遥控开关编<font color='red'>解码</font>实现
智能家居中红外遥控模块的设计方案
  本文通过遥控技术和单片机的相互结合设计在 智能家居 应用的灯光控制系统,该系统是基于单片机的控制系统,用遥控的方式对系统灯光进行控制。本方案主要解决信号的发射和接收,在信号的处理接收之后对不同信号的程序处理,通过软件编程实现对灯泡的开关和亮度调节。   引言   智能家居是指利用先进的计算机技术、网络通信技术、综合布线技术 ,将与家居生活有关的各种子系统有机地结合在一起 ,通过统筹管理 ,让家居生活更加舒适、安全、有效。   随着人们生活水平的提高和电子技术的发展,家居智能化已经开始走进了我们日常的生活。人们已经不满足于按键式的手动开关来控制灯具,从而开发出了智能化水平更高的专业照明控制的遥控系统,其成本低,质量高,应用
[单片机]
智能家居中<font color='red'>红外遥控</font>模块的设计方案
德州仪器浮点微控制器通过编程工具加速应用开发
2011 年 3 月 11 日,北京讯 日前,德州仪器 (TI) 与 Visual Solutions 宣布,VisSim/Embedded Controls Developer v8.0 (VisSim) 可为 TI 最新 TMS320C2000™ Piccolo 浮点微控制器 (MCU) 提供完全模型化的支持,其可简化编程,加速设计进程。该软件支持快速应用开发,并可为算法创建、位真仿真、器件初始化、原型设计以及生产性 C 语言代码生成提供可视化支持。VisSim v8.0 完整版(可免费试用两个月)现已开始提供,可与 TI F28069 controlSTICK 及 F28069 实验板套件配合使用。 Visu
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved