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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1635|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)紅外遙控模擬程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:887750 發(fā)表于 2021-3-2 17:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <AT89X51.h>

static bit OP;        //紅外發(fā)射管的亮滅
static unsigned int count;       //延時(shí)計(jì)數(shù)器
static unsigned int endcount; //終止延時(shí)計(jì)數(shù)
static unsigned char Flag;      //紅外發(fā)送標(biāo)志
char iraddr1;  //十六位地址的第一個(gè)字節(jié)
char iraddr2;  //十六位地址的第二個(gè)字節(jié)

void SendIRdata(char p_irdata);
void delay();
char getkey()
{
          P1=0xfe;P3_6=P3_7=1;P3_3=1;
          if(!P1_4)return 1;   //ON
          if(!P1_5)return 2;   //7
          if(!P1_6)return 3;   //8
          if(!P1_7)return 4;   //9
          if(!P3_6)return 5;   //X
          if(!P3_7)return 6;   //÷
          P1=0xfd;
          if(!P1_4)return 11; //+-
          if(!P1_5)return 12; //4
          if(!P1_6)return 13; //5
          if(!P1_7)return 14; //6
          if(!P3_6)return 15; //-
          if(!P3_7)return 16; //MRC
          P1=0xfb;
          if(!P1_4)return 21; //%
          if(!P1_5)return 22; //1
          if(!P1_6)return 23; //2
          if(!P1_7)return 24; //3
          if(!P3_6)return 25; //+
          if(!P3_7)return 26; //M-
          P1=0xf7;
          if(!P1_4)return 31; //□
          if(!P1_5)return 32; //0
          if(!P1_6)return 33; //.
          if(!P1_7)return 34; //=
          if(!P3_6)return 35; //+
          if(!P3_7)return 36; //M+

          P1=0xfF;P3_3=0;
          if(!P1_4)return 41; //
          if(!P1_5)return 42; //
          if(!P1_6)return 43; //
          if(!P1_7)return 44; //
          if(!P3_6)return 45; //
          if(!P3_7)return 46; //
          return 0;
}

void main(void)
{
  char key;
  count = 0;
  Flag = 0;
  OP = 0;
  P3_4 = 1;
  EA = 1; //允許CPU中斷
  TMOD = 0x11; //設(shè)定時(shí)器0和1為16位模式1
  ET0 = 1; //定時(shí)器0中斷允許

  P1=0xff;
  TH0 = 0xFF;
  TL0 = 0xE6; //設(shè)定時(shí)值0為38K 也就是每隔26us中斷一次  
  TR0 = 1;//開始計(jì)數(shù)

  iraddr1=0xff;
  iraddr2=0xff;


  do{
          key=getkey();
      if(key==1)SendIRdata(0x12);//set
      if(key==11)SendIRdata(0x0b);//exit
      if(key==25||key==35)SendIRdata(0x1a);//+
      if(key==15)SendIRdata(0x1e);//-
      if(key==6)SendIRdata(0x0e);//↑ ÷
      if(key==16)SendIRdata(0x1d);//↓ MRC

      if(key==26)SendIRdata(0x1f);//← M-
      if(key==36)SendIRdata(0x1b);//→ M+
      if(key==32)SendIRdata(0x00);//0
      if(key==22)SendIRdata(0x01);//1
      if(key==23)SendIRdata(0x02);//2

      if(key==24)SendIRdata(0x03);//3
      if(key==12)SendIRdata(0x04);//4
      if(key==13)SendIRdata(0x05);//5
      if(key==14)SendIRdata(0x06);//6
      if(key==2)SendIRdata(0x07);//7
      if(key==3)SendIRdata(0x08);//8

      if(key==4)SendIRdata(0x09);//9
      if(key==21)SendIRdata(0x2A);//%
      if(key==5)SendIRdata(0x2B);//X
      if(key==33)SendIRdata(0x2C);//.
      if(key==34)SendIRdata(0x2D);//=
      if(key==31)SendIRdata(0x2E);//□

      if(key==41)SendIRdata(0x2F);//
      if(key==42)SendIRdata(0x30);//
      if(key==43)SendIRdata(0x31);//
      if(key==44)SendIRdata(0x32);//
      if(key==45)SendIRdata(0x33);//
      if(key==46)SendIRdata(0x34);//
  }while(1);
}
//定時(shí)器0中斷處理
void timeint(void) interrupt 1
{
  TH0=0xFF;
  TL0=0xE6; //設(shè)定時(shí)值為38K 也就是每隔26us中斷一次
  count++;

}


void SendIRdata(char p_irdata)
{
  int i;
  char irdata=p_irdata;

  //發(fā)送9ms的起始碼
  endcount=223;
  Flag=1;
  count=0;
  P3_4=0;
  do{}while(count<endcount);

  //發(fā)送4.5ms的結(jié)果碼
  endcount=117;
  Flag=0;
  count=0;
  P3_4=1;
  do{}while(count<endcount);

  //發(fā)送十六位地址的前八位
  irdata=iraddr1;
  for(i=0;i<8;i++)
  {

     //先發(fā)送0.56ms的38KHZ紅外波(即編碼中0.56ms的低電平)
     endcount=10;
     Flag=1;
     count=0;
         P3_4=0;
     do{}while(count<endcount);

    //停止發(fā)送紅外信號(hào)(即編碼中的高電平)
     if(irdata-(irdata/2)*2)  //判斷二進(jìn)制數(shù)個(gè)位為1還是0
     {
       endcount=15;  //1為寬的高電平
     }
    else
     {
     endcount=41;   //0為窄的高電平
     }
    Flag=0;
    count=0;
        P3_4=1;
    do{}while(count<endcount);

    irdata=irdata>>1;
  }

  //發(fā)送十六位地址的后八位
  irdata=iraddr2;
  for(i=0;i<8;i++)
  {
     endcount=10;
     Flag=1;
     count=0;
         P3_4=0;
     do{}while(count<endcount);

     if(irdata-(irdata/2)*2)
     {
        endcount=15;
     }
     else
     {
       endcount=41;
     }
     Flag=0;
     count=0;
         P3_4=1;
     do{}while(count<endcount);

     irdata=irdata>>1;
  }

  //發(fā)送八位數(shù)據(jù)
  irdata=~p_irdata;
  for(i=0;i<8;i++)
  {
     endcount=10;
     Flag=1;
     count=0;
         P3_4=0;
     do{}while(count<endcount);

     if(irdata-(irdata/2)*2)
     {
         endcount=15;
     }
     else
     {
       endcount=41;
     }
     Flag=0;
     count=0;
         P3_4=1;
     do{}while(count<endcount);

     irdata=irdata>>1;
  }

  //發(fā)送八位數(shù)據(jù)的反碼
  irdata=p_irdata;
  for(i=0;i<8;i++)
  {
     endcount=10;
     Flag=1;
     count=0;
         P3_4=0;
     do{}while(count<endcount);

     if(irdata-(irdata/2)*2)
     {
         endcount=15;
     }
     else
     {
       endcount=41;
     }
     Flag=0;
     count=0;
         P3_4=1;
     do{}while(count<endcount);

     irdata=irdata>>1;
  }

  endcount=10;
  Flag=1;
  count=0;
  P3_4=0;
do{}while(count<endcount);
  P3_4=1;
  Flag=0;
}

void delay()
{
  int i,j;
  for(i=0;i<400;i++)
  {
    for(j=0;j<100;j++)
    {
    }
  }
}



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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久免费高清 | 黄色大片在线免费观看 | 影音先锋中文字幕在线观看 | 中文字幕亚洲欧美 | 国产婷婷精品 | 91成人免费| 久久国产美女视频 | 日韩在线播放第一页 | 天堂久久久久久久 | 色婷婷综合在线观看 | 国产精品日韩欧美一区二区三区 | 九九精品在线 | 日本精品在线观看 | 99久久精品一区二区毛片吞精 | 天堂网中文字幕在线观看 | 国产中文原创 | 99色在线 | 欧美国产日韩一区 | 免费激情av | 国产一区二区在线免费观看 | 亚洲国产成人av | 国产精品久久 | 久久精品亚洲精品国产欧美 | 久久久精品久久久 | 亚洲看片| 欧美日韩a | 69亚洲精品 | 日韩精品成人 | 欧美一级黄色片在线观看 | 国产激情视频在线观看 | 天天干天天爱天天 | 成人一级视频在线观看 | h视频免费在线观看 | 午夜精品一区二区三区在线视频 | 日本黄色不卡视频 | 国产电影一区二区三区爱妃记 | www.国产.com| 请别相信他免费喜剧电影在线观看 | 国产1区2区3区 | 国产伦一区二区三区 | dy天堂|