STC89C52RC红外遥控解码与数码管显示控制程序
需积分: 9 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毫秒的延迟,这在控制系统响应速度和数码管显示刷新时很有用。
通过这样的程序,用户可以实现一个简单的红外遥控控制系统,不仅能够直观地看到遥控器发送的码值,还可以通过硬件接口直接控制外部设备,同时具有声音反馈功能,提高了系统的交互性和实用性。
1196 浏览量
352 浏览量
383 浏览量
2022-09-21 上传
2022-09-19 上传
2021-05-12 上传
2022-09-24 上传
shenlancwz1
- 粉丝: 1
- 资源: 14
最新资源
- matlab 在环境工程中的应用
- 编程思想E:\编程\C++\参考文档
- Programming Erlang
- GNUMakeManual
- ubuntu安装笔记——part3
- ubuntu安装笔记——part2
- ubuntu安装笔记——part1
- ARM7+基础实验教程.pdf
- EXT 中文手册.doc
- ASP.NET初级入门经典
- C#中调用Windows API时的数据类型对应关系.pdf
- 基于Web的系统测试方法
- pb日历控件源代码.............................................
- ARCGIS/ArcInfo教程基本,地图的配准和屏幕跟踪矢量化
- oracle install guide
- bash programming