STC89C52RC红外遥控解码与数码管显示控制程序

需积分: 9 1 下载量 62 浏览量 更新于2024-09-13 1 收藏 36KB DOC 举报
"该资源是一个基于STC89C52RC微控制器的红外遥控解码程序,能够接收并解码红外遥控器发出的信号,然后在数码管上显示解码后的码值,并通过继电器控制和蜂鸣器反馈。程序支持12M和11.0592M两种晶振,具备外部中断INT0响应遥控器信号,定时器0刷新数码管显示,定时器1进行高电平或低电平持续时间的计数等功能。" 红外遥控解码是利用微控制器(如STC89C52RC)解析红外遥控器发送的编码信号的过程。这个程序设计用于数码管显示接收到的遥控器码值,并且通过蜂鸣器鸣叫以确认接收。遥控器的1-8个按键可以分别控制8个继电器,实现对8路电路的开闭,而电源键则可以控制所有电路的开启或关闭。 程序的关键技术点包括: 1. **外部中断INT0**:当检测到红外遥控器的信号时,通过外部中断INT0触发响应,开始解码过程。 2. **定时器0**:利用定时器0中断,定期更新数码管的显示,确保码值的实时显示。 3. **定时器1**:作为计数器,记录高电平和低电平的持续时间,这是红外遥控编码中的关键信息,通过这些时间差可以重构原始的遥控器编码。 4. **晶振调整**:由于不同的晶振频率会影响定时器的精度,因此程序中考虑了12M和11.0592M两种晶振的兼容性,通过适当的参数调整来适应不同的时钟源。 数码管显示部分,定义了LED显示字符的字形数组`Led_Tab`,以及可能用到的段选控制字数组`Led_Sel`,以控制数码管的各个段亮灭,从而显示数字或字符。 继电器控制部分,使用了P2口的7个位(JDQ0到JDQ7)来控制8个继电器,根据接收到的遥控器码值决定哪个继电器闭合或断开。 此外,程序还包含了一个名为`delay_50ms`的延时函数,用于在必要的时候提供50毫秒的延迟,这在控制系统响应速度和数码管显示刷新时很有用。 通过这样的程序,用户可以实现一个简单的红外遥控控制系统,不仅能够直观地看到遥控器发送的码值,还可以通过硬件接口直接控制外部设备,同时具有声音反馈功能,提高了系统的交互性和实用性。