单片机红外发射(原理与设计程序).doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
用AT89S51单片机制作红外电视遥控器 一般红外电视遥控器的输出都是用编码后串行数据对38~40kHz的方波进行脉冲幅度 调制而产生的。 当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控 码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表 示二进制的"0";以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的" 1"。 上述"0"和"1"组成的32位二进制码经38kHz的载频进行二次调制,然后再通过红外发 射二极管产生红外线向空间发射。一般电视遥控器的遥控编码是连续的32位二进制码组 ,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干 扰。后16位为8位的操作码和8位的操作反码,用于核对数据是否接收准确。 根据红外编码的格式,发送数据前需要先发送9ms的起始码和4.5ms的结果码。 遥控串行数据编码波形如下图所示: 接收方一般使用TL0038一体化红外线接收器进行接收解码,当TL0038接收到38kHz红 外信号时,输 在电子技术领域,单片机应用广泛,尤其是在红外遥控系统中。本文档主要讨论如何使用AT89S51单片机制作一个红外电视遥控器。AT89S51是一款常见的8位微控制器,拥有丰富的功能和接口,适合此类应用。 红外遥控的基本原理是通过编码后的串行数据对特定频率的方波进行脉冲幅度调制。在这个案例中,调制频率为38~40kHz。当用户按下遥控器的按键时,会生成对应的遥控码,每种按键对应独特的编码。编码方式通常采用脉宽调制(PWM),通过不同宽度的脉冲来表示二进制的“0”和“1”。具体来说,0的表示为脉宽0.565ms、间隔0.56ms,1的表示为脉宽0.565ms、间隔1.685ms。一个完整的遥控码由32位二进制组成,前16位作为设备识别码,后16位分为8位操作码和8位操作反码,用于数据校验。 在实际发送数据之前,需要发送9ms的起始码和4.5ms的结果码来同步接收端。接收端通常使用如TL0038这样的红外线接收器,当检测到38kHz的红外信号时,其输出端会变为低电平。 在单片机实现红外发射的过程中,C51编程语言被用来编写控制代码。代码中定义了变量用于控制红外发射管的亮灭、延时计数以及发送状态标志。主函数`main()`初始化相关设置,并进入一个无限循环,不断发送预设的12号命令。定时器0被配置为16位模式,并设定中断,每26us中断一次,以生成38kHz的信号。中断服务函数`timeint()`负责更新计数器,以及根据发送标志控制红外发射管的开关。 `SendIRdata()`函数用于发送具体的红外数据,首先发送起始和结果码,然后发送16位地址。地址由两个字节组成,如`iraddr1`和`iraddr2`。在发送数据时,会根据二进制位是“0”还是“1”来决定高电平的持续时间,以符合编码规则。 构建一个红外电视遥控器涉及到单片机的编程、定时器的使用、脉冲调制和解码技术。通过AT89S51单片机和适当的软件设计,可以实现对红外设备的有效控制,满足电视遥控器的需求。理解这一过程对于电子工程师来说是必要的,因为类似的原理可应用于许多其他无线遥控应用中。
剩余11页未读,继续阅读
- 粉丝: 192
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- feHelper前端开发助手系统.zip开发
- 决策树回归LATEX编写-基于乳腺癌数据集实践
- java病毒广播模拟.zip
- Java正在成长但不仅仅是Java Java成长路线,但学到的不仅仅是Java .zip
- amis 是一个低代码前端框架(它使用 JSON 配置来生成页面).zip
- 包括一些学习笔记,案例,后期还会添加java小游戏.zip
- Java实现的包含题库编辑、抽取题组卷、试题分析、在线考试等模块的Web考试系统 .zip
- 北航大一软件工程小学期java小游戏.zip
- 基于Spring MVC MyBatis FreeMarker和Vue.js的在线考试系统前端设计源码
- 初学Java时花费12天做的一款小游戏.zip