ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:356.44KB ,
资源ID:3303560      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3303560.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(红外接收程序讲解.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

红外接收程序讲解.docx

1、红外接收程序讲解红外接收程序讲解1、红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用编 /解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、 LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。讨编码调制卜-遥控发射器|此/电放大1ci namsa rv 8);TR1=1;while(!TF1);TF1=0;TR1=0;* 延时 9ms*/void Delay_9000us(void)TL1 = 153.6;TH1 = 223.6;TR1 = 1;while(!TF1);TF1 = 0;TR1 = 0;* 延时 4.5ms*/ void De

2、lay_4500us(void)55. 56.TH1= 239.8;57.TL1 =2O4.8;58.TR1= 1;59.while(!TF1);6O.TF1O;61.TR1= O;62. 63.64./*65.* 系统初始化66.*/67. void SystemInit(void)68.69.IRIN = 1;70.ITO = 1; /INTO负跳变触发71.TMOD = 0x10; /定时器 1 工作在方式 172.EA = 1;73.EXO = 1;74.75.75./*76.* 读码77.*/78.unsigned char GetCode()79.80.unsigned char

3、n;82.83.static temp = O;84.85. for( n = O; n 1); / 1while(IRIN); / 等待跳变成低电平 else temp=(0x00|(temp1); / 0return temp;/* 数码管显示*/void LedDisp()unsigned char i; for(i=0;i4)&0x0f)127.disbuf1=KeyValue&0x0f;128.disbuf2=(MaValue&0xf0)4)&0x0f);129.disbuf3=MaValue&0x0f;130.LedDisp();131.132.133.134.135.void i

4、nterr_ir( void) interrupt 0136.137./*138.* 用户码和机器码139.*/140.unsigned char addrl,addrh,num1,num2;141.142.EA = 0; /先关闭外部中断 0143.144.Delay_9000us(); / 检测 9ms 开始码145.146.if (IRIN) / 检测是否为干扰信号147.EA = 1; /重新开启外部中断 0148.149.150.151.152.153.154.155.156.157.158.159.160.161.162.163.164.165.166.167.168.169.17

5、0.171.172.173.174.175.176.177.return ; / 退出解码while(!IRIN); / 等待跳为高电平Delay_4500us(); / 检测 4.5ms 结果码if (IRIN) / 检测是否为干扰信号EA = 1; /重新开启外部中断 0 return ; / 退出解码/ 读码addrl=GetCode(); / 用户编码高位 addrh=GetCode(); / 用户编码低位 num1=GetCode(); / 机器码 num2=GetCode(); / 机器码反码/校验是否为错码if(num1!=num2)KeyValue=14;EA=1;return

6、 ;KeyValue=num2;MaValue=addrh;EA=1;178. 代码分析(只分析关键部位):1.系统初始化Systemlnit()系统初始化时,我们设置IRIN为高电平,同时把ITO设置成1,即下降沿(负跳变)触 发中断。这是用于接收波形的引导码是从低电平开始的(如上面接收波形所示)。这 样,当按下按键时,红外接收到信号, IRIN则发生从预先设置的高电平跳为低电平,从而产生中断。2.解码-中断程序 interr_ir(void)首先,第一步把EXO关中断,这步至关重要,因为一个接收波形许多的下降沿,这样 会产生干扰中断。接下来,使用定期时0延时9ms,跳过开始码。注意,延时后

7、,需要检测一下干扰信 号。下一步,while(!IRIN);等待4.5ms高电平的到来,再延时 4.5ms,跳过结果。引导码过后, 开始读码,执行 GetCode():32位数据码,分4次读取,所以执行4次GetCode(),读取一个字节数据过程如下:C+ view pla in copy1.un sig ned char GetCode()2.3.un sig ned char n;4.4.static temp = 0;6.5.for ( n = 0; n 1); / 116.while(IRIN); / 等待跳变成低电平17.18. else 19.temp=(0x00|(temp1); / 020.21.22.23. return temp;24. 1.从上述位定义看,位 0和位1都是0.56ms的低电平过后,高电平开始延时。所以, 读码的第一步 while(!IRIN);是等待这个0.56ms的低电平之后的高电平。2.从高定平到后开始延时 0.84ms3.判断0.84ms的波形高电平还是低电平。若仍然是高电平证明,该位为 “1,”否则为“ 0。”到这里读码结束。3.校验由于 32 位数据码中,后两个字节是键数据码和健数据反码。可以通过这两个字节数来 实行校验。即,把前一个字节去反判读是否等于后一字节。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1