红外遥控器解码程序 - 图文(7)

2019-03-15 14:38

∴ 32位代码的宽度为(18ms+27ms)~(36ms+27ms)

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左右均可。

2. 根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。

【红外遥控解码实验硬件】

一体化红外线接收器是一种集红外线接收和放大整形于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积又很小巧,它适合于各种红外

线遥控和红外线数据传输,广泛用于电视机、卫星接收机、VCD、DVD、音响、空调等家用电器中接收红外信号,图5是一体化接收头的引脚排列图,图6是本站产品配套的采用屏蔽线焊接

的一体化红外接收头,采用屏蔽线焊接,抗干扰能力强,接收更可靠。没有购买实验板配套的一体化红外接收头的网友可以根据图2所示接收头引脚排列图自己焊接一个。

图5:一体化红外接收头

(引脚排列图)

图6:本站产品配套一体化红外接收头(已经用屏蔽线焊接好,抗干扰能力强,插入

实验板即可使用)

下面就是我们将要进行红外遥控解码实验所要用到的硬件设备:S51增强型实验板、ISP编程器、AT89S51实验芯片、豪华型多功能红外线遥控器。

图7:S51增强型单片机实验板及防插反红外遥控接口

图8:豪华型多功能红外遥控器 + 高灵敏度一体化红外接收头(23元)

图9:32键豪华型红外遥控器原理图

图10:ISP编程器烧写实验单片机芯片AT89S51

【红外遥控解码实验】

我们经过对前面的遥控编解码知识的学习,对红外遥控有了基本的了解,下面我们马上进行解码实验。本红外遥控解码实验的的功能是:程序对遥控器发射的遥控码进行解码,解码成功

时蜂鸣器发出\嘀嘀\的解码成功提示音,如果按压的是数字键\~9\就将按键值在实验板上的5位数码管上显示出按键值,同时将按键的十六进制值用P1口的8位发光二极管指示出来;如果

按压的不是数字键\~9\,就直接从P1口输出键值;下面是遥控解码汇编源程序。

实验时将先连接好硬件设备,将配套的一体化红外遥控接收头插入实验板上的\红外遥控\接口内,在Keil单片机集成开发环境中新建工程,通过Keil将源程序编译得到HEX格式目标文

件yk.hex,最后使用ISP编程器将目标文件烧写到AT89S51单片机中,插到S51增强型实验板上运行,拿出配套的红外遥控器进行解码测试,看看实验结果是否和程序相同。。。

>>> 点此下载HEX格式目标文件 yk.hex >>>

>>> 点此下载遥控解码源程序和Keil工程文件 >>>

ORG 0000H

MAIN: MOV SP,#60H

MOV P0,#0FFH

MOV P1,#0FFH

MOV P2,#0FFH

MOV P3,#0FFH

JNB P3.2,$ ;等待遥控信号出现

MOV R6,#10

SB: ACALL YS1 ;调用882微秒延时子程序

JB P3.2,MAIN ;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序

DJNZ R6, SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序

;以上完成对遥控信号的9000微秒的初始低电平信号的识别。

JNB P3.2, $ ;等待高电平避开9毫秒低电平引导脉冲

ACALL YS2 ;延时4.74毫秒避开4.5毫秒的结果码

MOV R1,#1AH ;设定1AH为起始RAM区

MOV R2,#4

PP: MOV R3,#8

JJJJ: JNB P3.2,$ ;等待地址码第一位的高电平信号

LCALL YS1 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态

MOV C,P3.2 ;将P3.2引脚此时的电平状态0或1存入C中

JNC UUU ;如果为0就跳转到UUU

JB P3.2,$ ;如果为1就等待高电平信号结束

UUU: MOV A,@R1 ;将R1中地址的给A

RRC A ;将C中的值0或1移入A中的最低位

MOV @R1,A ;将A中的数暂时存放在R1中

DJNZ R3,JJJJ ;接收地址码的高8位

INC R1 ;对R1中的值加1,换成下一个RAM

DJNZ R2,PP ;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中

;以下对代码是否正确和定义进行识别

MOV A,1AH ;比较高8位地址码

XRL A,#00000000B ;判断1AH的值是否等于00000000,相等的话A为0

JNZ MAIN ;如果不相等说明解码失败退出解码程序

MOV A,1BH ;比较低8位地址

XRL A,#11111111B ;再判断高8位地址是否正确

JNZ MAIN ;如果不相等说明解码失败退出解码程序

MOV A,1CH ;比较数据码和数据反码是否正确?

CPL A

XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确

JNZ MAIN ;如果不相等说明解码失败退出解码程序

LCALL SOUND ;解码成功,声音提示

MOV A,1AH

CPL A

MOV P1,A ;遥控码十六进制值通过P1口LED显示出来


红外遥控器解码程序 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初三政治 4.4-5.2周测

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: