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

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

QQ登錄

只需一步,快速開始

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

紅外遙控程序有點(diǎn)看不懂,有沒(méi)有大哥能夠幫我解釋一下,前面定義的數(shù)值問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:703117 發(fā)表于 2020-5-2 09:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#define Imax 14000    //此處為晶振為11.0592時(shí)的取值,
    #define Imin 8000     //如用其它頻率的晶振時(shí),
    #define Inum1 1450    //要改變相應(yīng)的取值。
    #define Inum2 700
    #define Inum3 3000

        unsigned char f=0;
    unsigned char Im[4]={0x00,0x00,0x00,0x00};
    unsigned char show[2]={0,0};
    unsigned long m,Tc;
    unsigned char IrOK;


/************************************************************************/       
//延時(shí)函數(shù)       
   void delay(unsigned int k)
{   
     unsigned int x,y;
         for(x=0;x<k;x++)
           for(y=0;y<2000;y++);
}
/************************************************************************/       
//外部中斷解碼程序
  void intersvr1(void) interrupt 2 using 1
{
    Tc=TH0*256+TL0;                                               //提取中斷時(shí)間間隔時(shí)長(zhǎng)
    TH0=0;
    TL0=0;              //定時(shí)中斷重新置零
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;   //取碼完成后判斷讀碼是否正確
     }
               //準(zhǔn)備讀下一碼
   }

}
/************************************************************************/
//前速前進(jìn)
     void  run(void)
{
         Left_moto_go ;   //左電機(jī)往前走
         Right_moto_go ;  //右電機(jī)往前走
}

//前速后退
     void  backrun(void)
{
         Left_moto_back ;   //左電機(jī)往前走
         Right_moto_back ;  //右電機(jī)往前走
}

//左轉(zhuǎn)
     void  leftrun(void)
{
         Left_moto_back ;   //左電機(jī)往前走
         Right_moto_go ;  //右電機(jī)往前走
}

//右轉(zhuǎn)
     void  rightrun(void)
{
         Left_moto_go ;   //左電機(jī)往前走
         Right_moto_back ;  //右電機(jī)往前走
}
//STOP
     void  stoprun(void)
{
         Left_moto_Stop ;   //左電機(jī)往前走
         Right_moto_Stop ;  //右電機(jī)往前走
}
/*********************************************************************/                 
/*--主函數(shù)--*/
        void main(void)
{
    m=0;
    f=0;
    IT1=1;
    EX1=1;
    TMOD=0x11;  
    TH0=0;
        TL0=0;
    TR0=1;
        EA=1;

        delay(100);          

        while(1)                                                        /*無(wú)限循環(huán)*/
        {
            if(IrOK==1)
     {
                   switch(Im[2])
                   {
     case 0x0e:  run();                              //前進(jìn)
             break;
     case 0x1a:  backrun();                           //后退
             break;
     case 0x0a:  leftrun();                          //左轉(zhuǎn)
             break;
         case 0x1e:  rightrun();                          //右轉(zhuǎn)
             break;
         case 0x05:  stoprun();                         //停止
             break;
         default:break;
                   }

           IrOK=0;
     }
         
                                         
         }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:703117 發(fā)表于 2020-5-2 09:14 | 只看該作者
那個(gè)14000和8000是代表起始碼低電平9ms和9+4.5=13.5ms的嗎?
然后那個(gè)1450 700 1450是什么意思  還有Im【4】=0x00,show【2】={0,0}是什么意思
#define Imax 14000    //此處為晶振為11.0592時(shí)的取值,
    #define Imin 8000     //如用其它頻率的晶振時(shí),
    #define Inum1 1450    //要改變相應(yīng)的取值。
    #define Inum2 700
    #define Inum3 3000

        unsigned char f=0;
    unsigned char Im[4]={0x00,0x00,0x00,0x00};
    unsigned char show[2]={0,0};
    unsigned long m,Tc;
    unsigned char IrOK;
回復(fù)

使用道具 舉報(bào)

板凳
ID:703117 發(fā)表于 2020-5-2 09:15 | 只看該作者
我網(wǎng)上找的一個(gè)程序,自己改了一下定時(shí)器,紅外遙控控制小車就做出來(lái)了,但是前面定義有點(diǎn)看不懂,答辯的時(shí)候不知道怎么辦
回復(fù)

使用道具 舉報(bào)

地板
ID:283908 發(fā)表于 2020-5-2 15:39 | 只看該作者
看程序解的是NEC協(xié)議的紅外線編碼,

紅外線NEC協(xié)議邏輯1為2.25ms, 邏輯0為1.12ms,邏輯1,0的脈沖時(shí)間都是560us。

Inum1 Inum2  Inum3就是用于區(qū)分接收的時(shí)間是邏輯1還是邏輯0.

NEC協(xié)議的紅外線編碼它首次發(fā)送的是9ms的高電平脈沖,其后是4.5ms的低電平,

接下來(lái)就是8位的地址碼 ,而后是8位的地址碼的反碼 。

然后是8位的命令碼(也 叫健值碼什么的),而后是8位的命令碼的反碼。

Im【4】這個(gè)數(shù)組就是用于儲(chǔ)存地址碼,地址反碼,命令碼,命令反碼。

不知道你答辯“應(yīng)付的”師傅對(duì)紅外線了解程度怎么樣。

最好還是要 “前(全)” 面了解一下NEC協(xié)議的紅外線編碼的結(jié)構(gòu)。一定要做到心中有數(shù),才能巧舌如簧。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品成人免费一区二区在线播放 | 国产xxxx搡xxxxx搡麻豆 | 亚洲性在线 | 国产一区 | 亚洲一区二区在线视频 | 精品香蕉一区二区三区 | 久久国产精品色av免费观看 | 精品美女久久久久久免费 | 亚洲免费毛片 | 久久三区| 97超碰成人 | 视频一区中文字幕 | 国产精品99久久久久久宅男 | 偷偷操视频 | 久久这里只有精品首页 | 日韩精品在线视频免费观看 | 日本色高清 | 欧美精品久久久久久久久久 | 婷婷综合激情 | 2020国产在线 | 欧产日产国产精品视频 | 国产午夜精品一区二区三区嫩草 | 久久久久久久久国产 | 久久久视| 国产婷婷色一区二区三区 | 国产偷录叫床高潮录音 | 成人黄视频在线观看 | 国产激情视频在线 | 婷婷狠狠 | 欧美三级电影在线播放 | 久久久久久国产 | 国产精品成av人在线视午夜片 | 丁香久久| 国产精品久久久久av | 五月婷亚洲 | 国产在线一区二区三区 | 操视频网站 | 三极网站 | 精国产品一区二区三区 | 99久久精品一区二区毛片吞精 | 中文天堂在线观看 |