电子发烧友网>控制/MCU> > 正文

基于51单片机的红外线遥控器解码程序设计

2019年10月15日 16:18 次阅读

下面是一个对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
来源;21ic

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

怎么实现基于51单片机的贪吃蛇游戏的设计?

怎么实现基于51单片机的贪吃蛇游戏的设计?...
发表于 2021-10-12 09:16 0次阅读
怎么实现基于51单片机的贪吃蛇游戏的设计?

求大佬分享51单片机用C语言实现交通灯源程序实训QY-KP1

求大佬分享51单片机用C语言实现交通灯源程序实训QY-KP1...
发表于 2021-10-12 07:48 0次阅读
求大佬分享51单片机用C语言实现交通灯源程序实训QY-KP1

如何利用51单片机实现led的闪烁?

如何利用51单片机实现led的闪烁?
发表于 2021-10-12 06:25 0次阅读
如何利用51单片机实现led的闪烁?

你知道电气工程师必学的知识有哪些吗

你知道电气工程师必学的知识有哪些吗?
发表于 2021-10-11 09:39 0次阅读
你知道电气工程师必学的知识有哪些吗

如何花式玩转51单片机?

如何花式玩转51单片机?
发表于 2021-10-11 08:43 0次阅读
如何花式玩转51单片机?

请问下51单片机开发板有哪些功能

请问下51单片机开发板有哪些功能?
发表于 2021-10-11 08:02 0次阅读
请问下51单片机开发板有哪些功能

怎么实现基于51单片机的数字时钟设计?

怎么实现基于51单片机的数字时钟设计?
发表于 2021-10-11 08:00 0次阅读
怎么实现基于51单片机的数字时钟设计?

求大神分享51单片机红外通信解码的教程

求大神分享51单片机红外通信解码的教程
发表于 2021-10-11 07:44 0次阅读
求大神分享51单片机红外通信解码的教程

为什么要学习51单片机?

为什么要学习51单片机? 如何学习单片机? ...
发表于 2021-10-11 07:36 0次阅读
为什么要学习51单片机?

怎么实现基于51单片机的出租车计价器设计?

怎么实现基于51单片机的出租车计价器设计?...
发表于 2021-10-11 06:29 0次阅读
怎么实现基于51单片机的出租车计价器设计?

51、STM32和Linux点灯有什么区别

从入门到放弃是一个煎熬的过程,一旦入门,这个煎熬过程就会慢慢得到缓解,那么,怎样才算入门了呢? 嵌入....
发表于 2021-09-30 10:19 349次阅读
51、STM32和Linux点灯有什么区别

51单片机的启动代码究竟里面写了什么

在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示:   keil创建新项目时,....
发表于 2021-09-22 10:15 271次阅读
51单片机的启动代码究竟里面写了什么

51单片机存在哪些缺点呢

像EEPROM、AD等功能都需要拓展,同时增加了软件与硬件的负担。
发表于 2021-09-20 14:49 194次阅读
51单片机存在哪些缺点呢

51单片机的启动文件作用是什么

在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示: 一般情况下,需要选择“是”....
发表于 2021-09-15 09:12 390次阅读
51单片机的启动文件作用是什么

STM32与51单片机的区别与取舍之处

分享本文,简单分析STM32与51单片机的区别与取舍之处。 单片微型计算机简称单片机,简单来说就是集....
发表于 2021-09-02 15:17 1605次阅读
STM32与51单片机的区别与取舍之处

stm32单片机和51单片机区别是什么

单片机也就是单片微型计算机,和集CPU、RAM、ROM、输入输出设备、中断系统在同一个芯片上的器件。....
发表于 2021-08-19 18:21 1315次阅读
stm32单片机和51单片机区别是什么

STM32真的要比51单片机好用吗

STM32和51单片机虽然都是属于单片机,但它俩完全不是同一个档次上的,两者几乎没有什么共同点。
发表于 2021-07-30 17:27 1026次阅读
STM32真的要比51单片机好用吗