欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    51单片机红外接收解码程序(详细解析)(共8页).doc

    • 资源ID:16269976       资源大小:19KB        全文页数:8页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    51单片机红外接收解码程序(详细解析)(共8页).doc

    精选优质文档-倾情为你奉上51单片机红外接收解码程序接收以S52单片机作为接收系统。以S52的P3.3口作为接收端口,该端口是外部中断1。这个接受程序是以XC866作为红外发送控制系统,接收程序如下:#include<reg52.h>      /头文件#include<intrins.h>#define uchar unsigned char    /宏定义#define uint  unsigned intsbit HWRx=P33;      /位声明code uchar Table=   /共阴数码管 0-9 a-f - 表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40;uchar Table_Data8=0,0,0,0,0,0,0,0;/用于显示的数组uchar Table_Rx67;/用于存储判断接收是1或0的参数void Delay();/延时子函数void Display(uchar *lp,uchar lc)/显示 uchar i;          /定义变量        P2=0;     /端口2为输出,关闭        P1=P1&0xF8;    /将P1口的前3位输出0,对应138译门输入脚,全0为第一位数码管        for(i=0;i<lc;i+)  /循环显示,采用动态扫描             P2=Tablelpi; /查表法得到要显示数字的数码段  if(lpi>0x7f)   P2+=0x80;  Delay();   /延时  P2=0;    /清0端口,准备显示下位  if(i=7)   /检测显示完8位否,完成直接退出,不让P1口再加1,                               否则进位影响到第四位数据   break;   P1+;    /点亮下一位数码管        void main()     /主函数          EA=1;      /首先开启总中断          EX1=1;     /开启外部中断 1          IT1=1;     /设置成下降沿触发方式          while(1)   /一直显示,其它由中断处理                      Display(Table_Data,8);           void Delay()        /延时时间大约为31us,晶振12M          uchar i=13;          while(i)    i-;void Delay_ms(uint z) /延时时间约为 1ms*X  晶振为12M          uint x=0,y=0;          for(x=z;x>0;x-)                for(y=54;y>0;y-);void hongwai()   interrupt 2    /外部中断 1 ,INT1(P33)连接红外线接收IC数据脚          uchar i,j,tmp;          EX1=0;   /关闭中断          j=33;   /传送一组数包括引导码1位,4个八位数据,总共33位          i=0;      /从第一维数组开始            Delay_ms(10);          if(HWRx)            /然后再检测红线接收脚是有数据招收,有继续,没有则退出                   EX1=1;                   return;                     while(j-)            /循环接收33位数据,为何我们用到66位数组,我们可以不接收高电平              时间常数,只接低电平常数就             /可以判断1或0了,在这里我们都接收,还有一点要知道,               接收波形是反向,在没有接收时端口为高电平              tmp=0;    Table_Rxi=1;  /时间量从1开始      while(!HWRx) /检测高低电平的变化,这里检测的是高电平               Table_Rxi+;  /没变继续加1            Delay();       /家一个延时防止,计数值一下子就加满了           tmp+;     /加1           if(tmp=250)                    break;          i+;                tmp=0;    Table_Rxi=1;     /时间量从1开始                while(HWRx)     /检测高低电平的变化,这里检测的是低电平                            Table_Rxi+; /没变继续加1                      Delay();       /同上                     tmp+;     /加1,用于判断是1还是0的,低电平来了                     if(tmp=250)            break;                     i+;                   P1=0xf8;        i=200;      /加入循环延时,抗干扰        while(i)   /在有接收数据的时候显示一个H           tmp=255;  while(tmp)             tmp-;           P2=0x76;      i-;                tmp=0;        for(i=3;i<19;i+,i+)   /处理发送的数据                            tmp>>=1;              /右移一位,接收低位在前    if(Table_Rxi>30)    /检测低电平时间超过30就确认为1           tmp+=0x80;              Table_Data0=tmp/16;     /分开2位以16进制显示,用显示发送的数据       Table_Data1=tmp%16;        tmp=0;        for(i=19;i<35;i+,i+)    /同上                             tmp>>=1;    if(Table_Rxi>30)         tmp+=0x80;             Table_Data2=tmp/16;        Table_Data3=tmp%16;         tmp=0;         for(i=35;i<51;i+,i+)               tmp>>=1;    if(Table_Rxi>30)          tmp+=0x80;                 Table_Data4=tmp/16;        Table_Data5=tmp%16;         tmp=0;         for(i=51;i<67;i+,i+)                 tmp>>=1;                 if(Table_Rxi>30)                       tmp+=0x80;                Table_Data6=tmp/16;        Table_Data7=tmp%16;        EX1=1;       /刚进中断时关闭了分控,现在要打开 专心-专注-专业

    注意事项

    本文(51单片机红外接收解码程序(详细解析)(共8页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开