久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3718|回復: 1
打印 上一主題 下一主題
收起左側

[討論]請大蝦看看我的紅外解碼程序有什么錯誤啊

[復制鏈接]
跳轉到指定樓層
樓主
ID:37810 發表于 2012-4-13 13:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

我的數碼管位和斷碼都為低電平時才亮(有點兒特殊)

紅外接收的頭接到INT0引腳

#include<reg52.h>

uchar irtime;
uchar startflag;
uchar irdata[33];
uchar bitnum;
uchar irreceok;
uchar ircode[4];
//uchar irprosok;
uchar disp[8];

uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};


void delay_50ms(uint t)
{
 uint j;
 for(;t>0;t--)
  for(j=6245;j>0;j--);
}

void delay_50us(uint t)
{
 uchar j;
 for(;t>0;t--)
  for(j=19;j>0;j--);
 
}

void timer0init(void)
{
 TMOD=0x02;
 TH0=0;
 TL0=0;
 ET0=1;
 EA=1;
 TR0=1;
}

void int0init(void)
{
 IT0=1;
 EX0=1;
 EA=1;
}

void irpros(void)  //解碼
{
 uchar k,i,j,value;
 k=1;
 for(j=0;j<4;j++)
 {
  for(i=0;i<8;i++)
  {
   value=value>>1;    //相當于7次
   if(irdata[k]>6)
   {       //8次
    value=value  | 0x80;
   }
   k++;
  }
  ircode[j]=value;
 }
 //irprosok=1;
}

void irwork(void)
{
 disp[0]=ircode[0]/16;
 disp[1]=ircode[0]%16;
 disp[2]=ircode[1]/16;
 disp[3]=ircode[1]%16;
 disp[4]=ircode[2]/16;
 disp[5]=ircode[2]%16;
 disp[6]=ircode[3]/16;
 disp[7]=ircode[4]%16;
}

void display(void)
{
 uchar i;
 for(i=0;i<8;i++)
 {
   P1=duan[disp];
   P2=wei;
   delay_50us(20);
 }
}

void main()
{
 timer0init();
 int0init();
 while(1)
 {
    if(irreceok)
    {
      irpros();
   irreceok=0;
    }
    //if(irprosok)
    //{
      irwork();
  // irprosok=0;
    //}
  display();

 }
}

void timer0() interrupt 1
{
 irtime++;    // 最大255,等自加到255,又變0
}

void int0() interrupt 0
{
  startflag=0;
 if(startflag)
 {
  if(irtime>32) //檢測引導碼
  {
   bitnum=0; 
  }
  irdata[bitnum++]=irtime;
  irtime=0;

  if(bitnum==33)
  {
   bitnum=0;
   irreceok=1;
  }
 }
 else
 {
  startflag=1;
  irtime=0;
 }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:39750 發表于 2012-5-5 16:19 | 只看該作者

我設計成功的紅外解碼程序,你對照一下吧。

 

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

unsigned char smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char smg_we[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};

uchar irtime;
uchar startflag;
uchar irdata[33];
uchar bitnum;
uchar irreceok;
uchar ircode[4];
uchar irprosok;
uchar disp[8];


void delay_50us(uint t)
{
    uchar j;
 for(;t>0;t--)
   for(j=19;j>0;j--);
}

void delay_50ms(uint t)
{
    uint j;
 for(;t>0;t--)
 for(j=6245;j>0;j--);
}

void timer0init(void)
{
  TMOD=0x02;
  TH0=0x00;
  TL0=0x00;
  ET0=1;
  EA=1;
  TR0=1;
  }

void int0init(void)
{
 IT0=1;
 EX0=1;
 EA=1;
}

void irwork(void)
{
   disp[0]=ircode[0]/16;
   disp[1]=ircode[0]%16;
   disp[2]=ircode[1]/16;
   disp[3]=ircode[1]%16;
   disp[4]=ircode[2]/16;
   disp[5]=ircode[2]%16;
   disp[6]=ircode[3]/16;
   disp[7]=ircode[3]%16;


}

void display(void)
{
    uchar i;
 for(i=0;i<8;i++)
 {
 P1=smg_we;
 P2=smg_du[disp];

 delay_50us(20);
 }
}


void irpros(void)
{
    uchar k,i,j;
 uchar value;
 k=1;
 for(j=0;j<4;j++)
 {
  for(i=0;i<8;i++)
  {
   value=value>>1;
     if(irdata[k]>6)
     {
      value=value|0x80;    
     }
     k++;
     }
     ircode[j]=value;
   }

   irprosok=1;

}

 

void main()
{
    timer0init();
 int0init();
 while(1)
 {
    if(irreceok)
    {
       irpros();
    irreceok=0;
  }
  if(irprosok)
  {
       irwork();
    irprosok=0;
  }
  display();
  
 }
}

void timer0 () interrupt 1
{
  irtime++;
}

void int0 () interrupt 0
{
    if(startflag)
 {
    if(irtime>32) //檢測引導碼
    {
    bitnum=0;

    }
    irdata[bitnum]=irtime;
    irtime=0;
    bitnum++;
    if(bitnum==33)
    {
      bitnum=0;
   irreceok=1;

    }


 }
 else
 {
     startflag=1;
  irtime=0;

 }

}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产人成精品一区二区三 | 精品久久久久久亚洲精品 | 成人在线视频网 | 久久久久国产一级毛片 | 免费视频一区二区 | 欧美精品一区二区三区视频 | www国产成人免费观看视频 | 在线免费观看毛片 | 青青草原综合久久大伊人精品 | 色狠狠一区 | 狠狠色狠狠色综合日日92 | 欧区一欧区二欧区三免费 | 国产一区不卡在线观看 | 涩涩视频在线观看 | 成人精品一区二区三区中文字幕 | 天天操夜夜骑 | 91在线观看 | 亚洲国产精久久久久久久 | 午夜一级做a爰片久久毛片 精品综合 | 麻豆精品国产免费 | 老头搡老女人毛片视频在线看 | 欧美二级 | 黄色av网站在线观看 | 欧美在线观看网站 | 日韩欧美一区二区在线播放 | 日日天天 | 日韩一区二区三区四区五区 | 国产日韩一区二区三区 | 国产欧美精品 | a亚洲精品| 精久久| 麻豆视频在线免费观看 | 久久成人一区二区三区 | 久久久蜜桃 | 欧美在线观看一区二区 | 国产乱码精品一区二区三区五月婷 | 成人精品国产免费网站 | 久久精品欧美一区二区三区不卡 | 国产91亚洲精品 | 天天激情综合 | 亚洲视频中文字幕 |