51单片机红外解码C程序

51单片机红外解码C程序,第1张

单片机采用外部中断P33管脚和红外接收头的信号线相连,中断方式为边沿触发方式。并用定时器0计算中断的间隔时间,来区分前导码、二进制的“1”、“0”码。并将8位 *** 作码提取出来在数码管上显示。

// 解码值在Im[2]中,当IrOK=1时解码有效。 

/ 51单片机红外遥控解码程序 /

//用遥控器对准红外接收头,按下遥控器按键,在数码管前两位上就会显示对应按键的编码

#include <reg52h>

#define uchar unsigned char 

sbit dula=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    //此处为晶振为110592时的取值, 

#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()

{

   dula=0;

   P0=table[show[0]];

   dula=1;

   dula=0;

   wela=0;

   P0=0xfe;

   wela=1;

   wela=0;

   delay(5);

   P0=table[show[1]];

   dula=1;

   dula=0;

   P0=0xfd;

   wela=1;

   wela=0;

   delay(5);

} //外部中断解码程序

void intersvr1(void) interrupt 2 using 1

{

 Tc=TH0256+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();

   }

 }

}

解码程序这个就能实现

void wen() interrupt 4

{

RI=0;

a=SBUF;

j=SBUF;

flag=1;

}

你自己不是已经写了,再加个判断就是了。

电脑上下载的游戏打开要选择程序怎么办

这是因为没有软件可以打开,例如解压文件,或者是有却没有设置关联文件类型。

如果是电脑游戏,找“setup”文件安装游戏,然后能用;如果免安装,直接找“exe”文件运行试试;如果下到的是游戏的镜像,比如“iso”文件,使用虚拟光驱打开;如果是模拟器游戏,比如:FC、PS等等,找相应的模拟器可以打开。

下载游戏后要选择那种程序打开

你下的什么游戏?

如果是电脑游戏,找“setup”文件安装游戏,然后能用。如果免安装,直接找“exe”文件运行试试。如果下到的是游戏的镜像,比如“iso”文件,使用虚拟光驱打开。

如果是模拟器游戏,比如:FC、PS等等,找相应的模拟器可以打开。

打开磁盘要选择程序

您中过毒是肯定的。如果您的现象是双击打开盘符时提示选择程序,请按照以下解决

1开始-运行:regedit,打开注册表,查找“sxsexe”、“autoruninf”、 “rundll32exe”相关键值,找到的全部删除。

2工具-文件夹选项-查看-取消“隐藏受保护的系统文件”钩选、显示所有文件。

3各分区与上述文件名相关的隐藏文件全部删除。

4恢复文件显示为默认。

5把每个分区里都新建一个文件夹,命名:autoruninf,这样在有感染病毒的u盘插入也不会感染了。

6重启电脑。

硬盘打开需要选择程序

中病毒的后遗症,简单的办法用更新最新病毒库的卡巴斯基可以查杀干净;最彻底的办法是全格硬盘,重装系统

我 的电脑打开怎么变成选择程序

中了病毒了用360扫描一恶意软件之类的,其实装一下系统是最直接的

从4399上下载的游戏要用什么程序打开

flash播放器呗

下载地址::onlinedown/soft/6792htm

电脑下的游戏选择用什么程序打开啊、

- -

要是电脑游戏应该直接可以开的。。。。

或者你下载的要模拟器游戏。

看看游戏文件在后缀。

上面写的是什么。

上网找模拟器就好。。。

为什么我下载了东西要选择程序打开

不同的文件需要不同的方式解码,而要解码就需要对应的解码程序,比如后缀为的rm avi视频文件只能由暴风影音等播放器打开,而如果强行用其他程序打开如winrar则会乱码,所以你要重新装上解码程序并选为默认打开方式就行了!看我打那么多字就给加点分吧!

在电脑上怎么打开下载的手机游戏用什么程序

手机顽童

随便搜一下就能找到

就不贴地址了

从网上下载的ZIP文件用WINARA解压之后,说选择程序打开,但选择了MICROSOFT打开的却是乱码,怎么解决?

这是因为你没有安装Adobe Reader阅读工具 说明书是PDF格式的就要用这个软件打开

下载地址见下

Adobe Reader V812 简体中文版

:sky/soft/3076

以上就是关于51单片机红外解码C程序全部的内容,包括:51单片机红外解码C程序、单片机串口通信 接收解码程序怎么写、电脑上下载的游戏打开要选择程序怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9280511.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存