红外遥控器软件解码技术与汇编程序解析

版权申诉
0 下载量 168 浏览量 更新于2024-08-07 收藏 12KB DOCX 举报
"该文档是关于红外遥控器的软件解码及其应用的汇编语言程序。文档中包含了一个名为TKEY的子程序,用于解码红外遥控器的信号,并通过4BH和4CH单元进行数据处理。4BH单元用作循环计数器,4CH单元标识键值类型。此外,文档还提到了一些关键参数,如引导脉冲特征宽度(#HW)、信号脉冲特征宽度(#PW)和主工作区高位地址(#ZGZQ)。程序流程包括检测低电平和高电平脉冲宽度,并在超时或不符合预设脉冲特征时结束。解码后的脉冲流数据存储在内存的特定区域,用于后续分析判断引导脉冲的有效性。" 《红外遥控器软件解码及其应用》汇编语言程序详细解读: 在这个程序中,红外遥控器的信号解码主要依赖于汇编语言编程,以实现对遥控器发送的红外信号的精确解析。程序的核心是TKEY子程序,该子程序接收并处理来自遥控器的红外信号。子程序首先保存一些寄存器的状态,然后设置定时器和P2口,以测量红外信号的高低电平脉冲宽度。 程序中定义了三个关键常量: 1. #HW:表示引导脉冲的特征宽度,用于识别遥控信号的开始。如果测量到的低电平宽度与#HW不符,解码将被判定为无效。 2. #PW:表示信号脉冲的特征宽度,用于验证红外信号中的每个脉冲是否符合标准。 3. #ZGZQ:这是主工作区的高位地址,程序将在这里存储处理后的数据。 在TKEY子程序内部,程序使用定时器T0来测量脉冲宽度。当检测到低电平脉冲时,开始计时,如果超时未检测到高电平,或者检测到的高电平脉冲过短,程序会跳转到TKE2,标记此次解码无效。在检测到高电平脉冲后,继续测量并存储高电平的宽度。这个过程会在有效脉冲数量达到预设值(此处为33个)后结束。 脉冲流的分析是通过检查内存中70H开始的一系列单元进行的,每个脉冲的宽度由两个字节表示,分别存储高8位和低8位。通过对这些数据的比较,可以判断引导脉冲是否有效,进而解码出遥控器发出的按键信息。 整个程序逻辑严谨,对硬件定时器和中断的使用非常典型,体现了汇编语言在实时性和效率上的优势。通过对这些汇编代码的理解,可以学习到如何利用微处理器的硬件资源进行精密的信号处理,对于理解嵌入式系统和红外遥控技术有极大的帮助。