at89s51作红外遥控器.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
at89s51作红外遥控器

用 AT89S51 单片机制作红外电视遥控器 ZHCE 整理 用 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 红外信号时,输出端输出低电平,否则为高电平。所以红外遥控器 发送红外信号时,参考上面遥控串行数据编码波形图,在低电平处发送 38kHz 红外信号,高电平处则不发送红外信号。 单片机红外电视遥控器电路图如下: 第 1 页 共 6 页 用 AT89S51 单片机制作红外电视遥控器 ZHCE 整理 C51 程序代码: #include AT89X51.h static bit OP; //红外发射管的亮灭 static unsigned int count; //延时计数器 static unsigned int endcount; //终止延时计数 static unsigned char flag; //红外发送标志 char iraddr1; //十六位地址的第一个字节 char iraddr2; //十六位地址的第二个字节 void SendIRdata(char p_irdata); void delay(); void main(void) { count = 0; flag = 0; OP = 0; P3_4 = 0; 第 2 页 共 6 页 用 AT89S51 单片机制作红外电视遥控器 ZHCE 整理 EA = 1; //允许 CPU 中断 TMOD = 0x11; //设定时器 0 和 1 为 16 位模式 1 ET0 = 1; //定时器 0 中断允许 TH0 = 0xFF; TL0 = 0xE6; //设定时值 0 为 38K 也就是每隔 26us 中断一次 TR0 = 1;//开始计数 iraddr1=3; iraddr2=252; do { delay(); SendIRdata(12); }while(1); } //定时器 0 中断处理 void timeint(void) interrupt 1 { TH0=0xFF; TL0=0xE6; //设定时值为 38K 也就是每隔 26us 中断一次 count++; if (flag==1) { OP=~OP; } else { OP = 0; } P3_4 = OP; } voi

您可能关注的文档

文档评论(0)

牛X文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档