导航:首页 > 操作系统 > 51单片机红外解码

51单片机红外解码

发布时间:2024-10-26 23:03:20

‘壹’ 51单片机 红外控制程序中 if (IRCOM[2]!=~IRCOM[3]) { EX0=1; return; }是什么意思

应该是接到的数据,正反码吧,因为红外线可能受干扰,需要校验 一般会采取发两个字节,这两个字节的值是反码关系,接受如果发现不是就认为数据出错。。。。。EX0的作用就不知道了,也许是某个IO,猜测而已,你如果把源码发出来可能分析一下,凭空写个这东西很难知道干啥的。。。

‘贰’ 51单片机怎么用红外线

--你是指红外遥控解码吧,给你一点提示,在单片机定义一个I/O口为红外遥控的输入端口,(红外遥控解码不一定要用到定时器和中断方式.具体方法有很多的,看场合选取)当然输入这个端口的信号是经过遥控接收电路处理过的一串数据,如TTL或者CMOS电平。再然后就是对这个输入信号进行处理,也就是解调出遥控码值出来,要解这个码,首先又要知道其波形如何,即是逻辑电平和时序等问题...

建议你还是先熟知一下各种IR的遥控协议,有挺多的,典型的有NEC,飞利浦等。说说NEC的也有两种,简单的一种就是有32位数据,前16bit为地址码,后16bit为遥控码值的正码与反码,地址码用于区分相同协议下不同的遥控所带来的干扰等,正码和反码用于解调后进行校验数据。不多说了,主要是找点相关资料研究研究就明白了。图片是一个32bitNEC的遥控波形,这个波形的地址码是807F,正码是0x12,如果看懂了,用MCU解遥控码就很容易了..

‘叁’ 最简单51单片机红外编码获取问题

这有个帖子,你看了就明白,看看是怎样实现输入晶振频率自适应解码。
#define CPU_Fosc 12000000L //输入主频,自适应解码(单位:Hz,范围:6MHz ~ 40MHz)

红外线解码程序+遥控器程序+仿真文件(可定义任意I/O作接收脚,支持长/短按,适应6MHz~40MHz)
http://www.ourdev.cn/thread-5155483-1-1.html

‘肆’ 51单片机红外线发射时,数据是高位在前还是低位在前

高位在前,先是前导,后面是数据

‘伍’ 谁有51单片机红外遥控亮灭LED代码就只要一个键控制点亮,另一个键控制灭就行

答:编程思路兄穗 红外遥控羡如卜解橡逗码。

上面是 "0" / "1" 的表示方法

用中断 测出 低脉冲的持续就可以知道 0 1 了, 最后通过键数据码 来定义 单片机要干什么事

‘陆’ 51单片机红外遥控和按键怎么连接

1、首先通过4个按键,可以直接按下触发红外线编码。
2、其次发射出的红外线与红外线遥控器相同。
3、最后接通电源,系统进入工作状态,等待接收命令即可。

‘柒’ 51单片机红外解码C程序

单片机采用外部中断P3.3管脚和红外接收头的信号线相连,中断方式为边沿触发方式。并用定时器0计算中断的间隔时间,来区分前导码、二进制的“1”、“0”码。并将8位操作码提取出来在数码管上显示。
// 解码值在Im[2]中,当IrOK=1时解码有效。 
/* 51单片机红外遥控解码程序 */
//用遥控器对准红外接收头,按下遥控器按键,在数码管前两位上就会显示对应按键的编码
#include <reg52.h>
#define uchar unsigned char 
sbit la=P2^6;
sbit wela=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar f;
#define Imax 14000    //此处为晶振为11.0592时的取值, 
#define Imin 8000    //如用其它频率的晶振时,
#define Inum1 1450    //要改变相应的取值。
#define Inum2 700 
#define Inum3 3000
unsigned char Im[4]={0x00,0x00,0x00,0x00};
uchar show[2]={0,0};
unsigned long m,Tc;
unsigned char IrOK;
void delay(uchar i)
{
  uchar j,k; 
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}
void display()
{
   la=0;
   P0=table[show[0]];
   la=1;
   la=0;
   wela=0;
   P0=0xfe;
   wela=1;
   wela=0;
   delay(5);
   P0=table[show[1]];
   la=1;
   la=0;
   P0=0xfd;
   wela=1;
   wela=0;
   delay(5);
} //外部中断解码程序
void intersvr1(void) interrupt 2 using 1
{
 Tc=TH0*256+TL0;                                               //提取中断时间间隔时长
 TH0=0; 
    TL0=0;              //定时中断重新置零
 if((Tc>Imin)&&(Tc<Imax))
      { 
  m=0;
        f=1;
  return;
      }       //找到启始码
   if(f==1)
      {
        if(Tc>Inum1&&Tc<Inum3) 
    {
   Im[m/8]=Im[m/8]>>1|0x80; m++; 
       }
      if(Tc>Inum2&&Tc<Inum1) 
        {
         Im[m/8]=Im[m/8]>>1; m++; //取码
  }
  if(m==32) 
   {
         m=0;  
         f=0;
         if(Im[2]==~Im[3]) 
      {
           IrOK=1; 
   }
        else IrOK=0;   //取码完成后判断读码是否正确
     }
               //准备读下一码
   }
}
/*演示主程序*/
void main(void)
{
    unsigned int  a;
 m=0;
    f=0;
 EA=1;
 IT1=1;EX1=1;
 TMOD=0x11;  
 TH0=0;TL0=0;
 TR0=1;//ET0=1;
 while(1)
 {
       if(IrOK==1) 
  {
      show[1]=Im[2] & 0x0F;     //取键码的低四位
           show[0]=Im[2] >> 4;  
           IrOK=0;
  }
           for(a=100;a>0;a--)
          {
    display();
   }
 }
}
解码程序这个就能实现

阅读全文

与51单片机红外解码相关的资料

热点内容
在哪里能制作手机app 浏览:163
python搭建web网站 浏览:679
空乘程序员 浏览:345
玩加密币犯法吗 浏览:241
html加载pdf 浏览:1000
git源码如何本地编译命令 浏览:868
单片机研究报告 浏览:265
天正建筑命令栏 浏览:598
加密货币应税事件 浏览:459
宋pro的app哪里下载 浏览:207
单片机原理与接口技术第三版课后答案 浏览:890
程序员小明教学 浏览:613
linuxbin解压缩 浏览:382
四川电信服务器租用云空间 浏览:31
我的世界服务器内存大怎么办 浏览:388
互联网与服务器链接不成功怎么办 浏览:645
python拆分数组 浏览:83
虚机服务器怎么增加D盘的空间 浏览:502
程序员搬运 浏览:65
手机app的视频存在哪里了 浏览:280