- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
红外线发射与接收C51 单片机解决案
——包含C 语言源程序以及仿真电路图
作者:sunny Email:sunaun_man@163.com 日期:2011-10-5
目前红外线遥控器控制技术已应用非常广泛,其技术日趋成熟,利用单片机,用简单的几句
C 语言命令便能实现对目标设备精准控制。
虽然此技术已经很成熟,但对于初学单片机技术的学员来看还是有一定难度的,我呢在网上
也查找了有关红外线遥控相关的资料,让我很失望,资料很多都是有头没尾,或者就是程序写的
晦涩难懂,而且很多都是用汇编语言编写,对只学习了C 语言而又不喜欢汇编的同学来说容易晕
头转向不知道从哪里下手,这里我呢正好有一个很好的红外线遥控的列子,拿来和大家分享一下,
若有不足之处,还请大家多多指教,文章前面有我的邮箱地址,大家若是有问题或是更好的方案,
不防拿出来大家一起分享。
首先,我先把我的思路和大家说说,红外线遥控包括发射和接受两个部分,这两个部分我都
是用Keil uVision2 和Proteus 7 Professional 仿真软件来实现的,也就是所有的过程都是在电脑上
实现的,不需要任何硬件或是外接设备,主要的是用C 语言写出发射和接受的程序来,并在理想
的仿真环境下实现其功能,当然若要在硬件上实现还需要调整一些程序上的函数值来实现了。
废话少说,现在就开始我的第一步,设计原理图:
先上一张发射部分的仿真的原理图 图1:
图 1
注意:单片机的时钟频率为12.289MHz
如上图所示,发射部分的电路其实很简单,单片机我选的是AT89C2051 ,相信大家都很熟悉
还有就是四个按键A,B,C,D ,AT89C2051 的P1^6 端口是发射信号的输出端,就等同于红外接受头
的输出脚(一般是第3 个脚,大家可以查资料)。
上面的电路是起什么作用呢,我解释一下,作用就是仿真红外线发射部分向接受部分发出的
信号,具体的就是,如果我按下了A 键,那么电路就会发出一个固定的编码,按下不同的键其编
码是不同的。下面有个表格,四个按键的编码就一目了然了:
表 一
键 项目 用户码 用户反码 数据码 数据反码
A 0x00 0xFF 0x0F 0xF0
B 0x00 0xFF 0x39 0xC6
C 0x00 0xFF 0x75 0x8A
D 0x00 0xFF 0xF9 0x06
现在大家已经知道了每个键的编码,在写程序之前,先要说一下有关红外线发射的知识,我
想大家对这些知识应该是很了解的了,在这里补充说一下是为了在下一步写程序是大家能明白我
的思路是对还是错?
再不考虑发射芯片的型号,就用大家常用的编码方式:
首先先来说说引导区,如下图:
图 二
每个按键在被按下之后首先会有像上图所的信号发出,称为引导区,实际生活中,用遥控器
发出的信号与上面的信号是相反的,经过红外线接收头解码以后就和上图一样了,值得大家注意
的是发射模块的芯片不同,引导区的时间和数据都有所不同,但解决的方法都是一样的。
在写程序是就按照上面的图来写:
P1^6=0 ;
Delay(); //延时9mS
P1^6=1 ;
Delay(); //延时4.5mS
下面就是数据“0 ”和“1”的信号波形了,如下图:
图 三
写程序“0 ”的代码:
P1^6=0 ;
Delay(); //延时0.56mS
P1^6=1 ;
Delay(); //延时0.56mS
写程序“1”的代码:
P1^6=0 ;
Delay(); //延时0
文档评论(0)