当前位置:首页 > 单片机 > 单片机
[导读]下面是一个对51实验板配套的红外线遥控器的解码程序,它可以把红外遥控器每一个按键的键值读出来,并且通过实验板上P1口的8个LED显示出来,在解码成功的同时并且能发出“嘀嘀嘀”的提示音。;=======================

下面是一个对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



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

在嵌入式系统开发中,程序烧录是连接软件设计与硬件实现的关键环节。当前主流的单片机烧录技术已形成ICP(在电路编程)、ISP(在系统编程)、IAP(在应用编程)三大技术体系,分别对应开发调试、量产烧录、远程升级等不同场景。...

关键字: 单片机 ISP ICP IAP 嵌入式系统开发

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

本文中,小编将对单片机予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 单片机 开发板 Keil

随着单片机系统越来越广泛地应用于消费类电子、医疗、工业自动化、智能化仪器仪表、航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁。电磁兼容性(EMC)包含系统的发射和敏感度两方面的问题。

关键字: 单片机 电磁兼容

以下内容中,小编将对单片机的相关内容进行着重介绍和阐述,希望本文能帮您增进对单片机的了解,和小编一起来看看吧。

关键字: 单片机 复位电路

在这篇文章中,小编将为大家带来单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 单片机 异常复位

今天,小编将在这篇文章中为大家带来单片机的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 仿真器

单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 中断 boot

一直以来,单片机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来单片机的相关介绍,详细内容请看下文。

关键字: 单片机 数字信号 模拟信号
关闭