使用AT89S51单片机制作红外遥控器原理与代码
5星 · 超过95%的资源 需积分: 10 130 浏览量
更新于2024-11-17
收藏 127KB DOC 举报
"这篇资源主要介绍了如何使用AT89S51单片机制作红外电视遥控器,包括硬件原理图和C语言程序代码。"
在红外遥控系统中,AT89S51单片机被用作核心处理器,用于生成符合特定编码规则的红外信号。遥控器的红外发射部分采用脉冲幅度调制(PAM),即将编码后的串行数据通过38kHz的载频进行调制。这个过程涉及到两个关键点:脉宽调制(PWM)和38kHz的方波生成。
脉宽调制是表示二进制数据的主要方式。对于二进制的"0",其脉冲宽度为0.565ms,间隔0.56ms,周期1.125ms;而对于二进制的"1",脉冲宽度不变,但间隔增加到1.685ms,周期变为2.25ms。这些特定的脉宽组合形成了32位的二进制码,其中前16位是设备识别码,后16位是操作码和反码,用于确保数据传输的准确性。
在实际的红外发射过程中,发射器首先发送一个9ms的起始码,然后是4.5ms的停止码,紧接着是具体的32位遥控编码。这个编码序列会通过红外发射二极管以38kHz的频率进行调制,产生红外光束。
在提供的C语言程序中,可以看到以下几个关键部分:
1. 定义了几个局部变量,如`OP`用于控制红外发射管的开关,`count`和`endcount`作为延时计数器,`flag`作为发送标志。
2. `SendIRdata`函数可能是用于发送红外数据的核心函数,它接收一个字符型参数`p_irdata`,可能是包含编码信息的数据。
3. `delay`函数应该是实现微秒级延迟的函数,这对于精确控制脉冲宽度和间隔至关重要。
4. `main`函数初始化了相关寄存器,设置了中断允许,并设定了时器0和1为16位模式1,这通常用于生成定时脉冲。
整个系统的工作流程可能如下:用户按下遥控器的按键,对应的键值被编码并存储在`iraddr1`和`iraddr2`中。然后,`SendIRdata`函数会被调用,将这些编码数据转换成上述脉冲序列,通过控制`OP`状态来开启或关闭红外发射二极管,从而发送38kHz的红外信号。
接收端通常使用像TL0038这样的红外接收器,当检测到38kHz的信号时,其输出端会变为低电平,从而可以进一步解码并执行相应的操作。
这个资源提供了基于AT89S51单片机的红外发射器设计基础,包括硬件电路原理和C语言编程实例,对于理解和构建红外遥控系统非常有帮助。
点击了解资源详情
211 浏览量
点击了解资源详情
2022-09-24 上传
2021-10-08 上传
295 浏览量
2022-09-04 上传
237 浏览量
a609399394
- 粉丝: 0
- 资源: 1
最新资源
- react-window-ui:React组件用于快速演示窗口UI
- Business-Buddy:Business Buddy是CRM(客户关系管理)软件,可帮助公司的销售团队与潜在客户取得联系
- 行业分类-设备装置-一种接口性能数据实时监制方法和装置.zip
- homebridge-tcc:霍尼韦尔对Homebridge的Total Connect Comfort的支持
- Persepolis-WebExtension:用于Persepolis下载管理器的WebExtension集成
- 带adb插件的notepad++
- 行业分类-设备装置-一种接收天线阵列受损阵元的在线检测方法.zip
- 北航计组实验代码、电路(一).rar
- openrmf-docs:有关OpenRMF应用程序的文档,包括用于运行整个堆栈的脚本以及仅基础结构以及有关使用该工具的文档
- IEEE 30 总线系统标准:Simulink 中的 30 总线系统设计-matlab开发
- 行业分类-设备装置-一种接枝改性壳聚糖微球及其制备方法和应用.zip
- OM-128:ATmega1284开发板
- rohitprogate
- 进销存软件 小管家进销存软件 v5.5.11
- anroid8.1编译使用OpenJDK.tar.zip
- oSportServer