- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实现遥控编码器PT2262的软件解码.doc
单片机实现遥控编码器PT2262的软件解码 ? ??? PT2262是红外遥控编码器,PT2272是其接收解码器,两者常常配对使用,现已广泛用于汽车门控、遥控门锁、门禁管理等领域,也可用于传送数字信息。PT2262具有19位二进制编码功能;PT2272的解码只有4-6位,这就限制了数据传输的应用。在此从PT2262接收的信号特征入手,利用8051F330单片机直接对接收到的信号进行解码,解释出PT2262发出的全部19位数据,从而使其应用于数字通信、智能化控制等领域。
?2.硬件电路??? 图1是发射装置的原理图,PT2262作为编码器,当按下按键时,设定的地址码和数据码从17引脚串行输出,经红外发射元件IRED发出信号。通过电阻Rosc调节发射频率,适当提高PT2262工作电压(2.6V-15V),以增大发射距离。其中A0-A12可设置为高电平、低电平、悬空三种状态,因此可以发送531441种编码组合。完全满足设计需求。??? 接收装置采用集红外线接收、放大、整形与一体的集成电路TL0038,无需任何外接元件,就能完成从红外线接收带输出与TTL电平信号兼容的所有工作,故适用于各种红外线遥控和红外线数据传输。译码采用8051F330D单片机,11.0592MHz晶体振荡器,接收信号送至I/O断口P1.0进行软件解码。接收和译码电路如图2所示。
?3.解码原理??? 编码器PT2262发送的编码信号是由:地址码、数据码、同步码组成的一个完整码字,最多可以有12位(A0-A11)三态地址端引脚(悬空、高电平、低电平),任意组合可提供531441个地址码。将编码器PT2262的A8位拉高,D3拉高,D0拉高,D1拉低,其余悬空。截取一段接收信号输出波形如图3所示,PT2262每发射一次,至少发送4组相同编码字码。每组字码间隔(低电平)约14ms。??? 将其截获波形每组字码放大,如图4所示,一组字码有12位A/D码,每个A/D位是由2个脉冲表示:2个窄脉冲则表示“0”;2个宽脉冲表示“1”;1个窄脉冲和一个宽脉冲表示“F”,即地址码“悬空”;除此之外,每组字码之间还有一个同步码隔开,所以每组字码共计有25个宽度不同的脉冲。窄脉冲宽为200μs;宽脉冲宽为1200μs;两个窄脉冲之间宽1200μs;两个宽脉冲间宽200μs;宽窄脉冲间宽为200μs;在4组字码中,每组的字码间隔为4000μs。因此,采用单片机软件解码时,只要判断出起始码,并且识别起后面的字码脉冲宽度即可。
?4.抗干扰措施??? 常用抗干扰措施,是在硬件电路中采用电源滤波、电源稳压、数字地与模拟地隔离。在设计中,除采用上诉方法外,还根据干扰信号与有效信号波形特征异同点,采用软件识别干扰信号和有效信号,从而实现“抗干扰”目的。??? 当遥控器不发射时,由于空气中各杂波干扰,接收模块的信号输出端仍然会有干扰信号,截获波形如图5所示。??? 观察其特征,低电平最长为3000μs,最短数十微秒;高电平最长500μs,最短数微秒。与发射时接收到的规则波形(即非有效信号)相比较,低电平为1400μs的信号,是有效信号,而不是干扰信号。并将A0-A34个地址焊接到高电平上作为发射编码信号的帧前码,可解决误码率和干扰问题。
?5.软件解码??? 步骤1:单片机循环记录接收模块信号电平脉冲的长度,高低电平都记录。??? 步骤2:从记录高低电平组成的波形中,找出连续8个1200μs时长的脉冲信号为特征波形段,即帧前码。??? 步骤3:确认帧前码之间是否存在一个时长为14000μs的低电平,如果有(则说明不是干扰码),将解码并储存结果,然后根据指令码执行相应控制功能。如没有,则放弃记录的数据,重复步骤1,直到满足条件为止。? 以下给出了相关软件解码的程序代码:? #includec8051f330。h? unsigned int k,k1,k2,i=0,j;? idata unsigned int bite[50]? //存高电平,至少接收2组? idata unsigned int bote1[40];//存低电平? idata unsigned char jieguo[4];//解码结果? long int result;? sbit P01=P0? 1;//无限信号接收端? sbit P07=P0? 7;//驱动LED? void IOdingyi()//单片机配置? { XBRO=0X01; XBR1= 0X40 ;? P0MDIN=0XF3; P0MDOUT= 0X00;? P0SKIP=0X0C; P1MDIN=0XFF;? P1MDOUT=0X00;P1SKIP=0X00;? }? void osci
文档评论(0)