RC-5协议解析:SAA3010(T)遥控器接收程序详解

4星 · 超过85%的资源 需积分: 50 26 下载量 193 浏览量 更新于2024-07-26 收藏 724KB DOC 举报
"该资源主要讨论了RC-5飞利浦遥控器协议,特别是SAA3010(T)型号的解码程序。通过单片机接收并解析红外遥控器发出的数据,文中提及了接收电路设计、RC-5编码结构以及解码关键参数的确定方法。" 在RC-5飞利浦遥控器协议中,SAA3030T芯片采用了这种编码方式,其特点是具有两位起始位(固定为11),一位控制位(在按键间隔中交替变化),五位系统码(默认为00000)和六位指令码。整体的波形结构包括16位的等待时间,2位扫描时间,随后是起始位、控制位、系统码和指令码。在连续发送信号时,重复码与原始发射的波形保持一致,这对于正确识别连续操作至关重要。 在硬件实现方面,单片机的DataOut引脚连接到P3.2口以接收数据。为了降低误码率,接收头的电源和地线应接入滤波电容。解码程序的关键在于确定SAA3010(T)遥控器的一位时间,这个时间决定了定时器的设置。数据的逻辑状态由高低电平的转换顺序决定,即先低后高表示'1',先高后低表示'0',并且高低电平持续时间相同。 提供的C语言代码片段展示了如何接收和处理这些红外信号。程序定义了一个uchar类型的数组YKDatas来存储接收的14位数据,其中YKDatas[0]存储起始位和控制位,YKDatas[1]存储系统码,YKDatas[2]存储指令码。另外,还使用了变量YKcount跟踪已接收的位数,YKtype标记当前处理的数据段,以及YKend标志接收是否结束。通过delayMs函数实现微秒级别的延迟,以确保正确的信号采样。 这篇资源涵盖了RC-5协议的基础知识,SAA3010(T)遥控器的特性,以及如何使用单片机进行解码的实践细节。这对于理解飞利浦遥控器的工作原理以及开发相关的嵌入式系统应用非常有帮助。