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

QQ登錄

只需一步,快速開始

搜索
查看: 5558|回復(fù): 6
收起左側(cè)

遙控器控制51智能小車源碼

[復(fù)制鏈接]
ID:211349 發(fā)表于 2017-7-5 15:09 | 顯示全部樓層 |閱讀模式
為了方便使用,自己改進(jìn)了一下遙控器控制智能小車程序,現(xiàn)在分享給大家。
(不同遙控器可能稍有不同,本程序使用的配套遙控器如下圖,如果你的和我不同,可以向賣家索要遙控器資料)

本程序使用的配套遙控器

本程序使用的配套遙控器
0.png

單片機(jī)源程序如下:
  1. #include<AT89x51.H>

  2. sbit lnfrared_led=P3^2;                //定義紅外線接收端

  3. #define Imax  14000          //此處為晶振為11.0592時(shí)的取值,
  4. #define Imin  8000           //如用其它頻率的晶振時(shí),
  5. #define Inum1 1450          //要改變相應(yīng)的取值。
  6. #define Inum2 700
  7. #define Inum3 3000

  8. /**********************電機(jī)驅(qū)動(dòng)模塊設(shè)置********************/

  9. #define Left_moto_go      {P1_0=1,P1_1=0,P1_2=1,P1_3=0;}    //左邊兩個(gè)電機(jī)向前
  10. #define Right_moto_go     {P1_4=1,P1_5=0,P1_6=1,P1_7=0;}    //右邊兩個(gè)電機(jī)向前

  11. #define Right_moto_back   {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}    //右邊兩個(gè)電機(jī)向后
  12. #define Left_moto_back    {P1_0=0,P1_1=1,P1_2=0,P1_3=1;}    //左邊兩個(gè)電機(jī)向后

  13. #define Right_moto_Stop   {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}    //右邊兩個(gè)電機(jī)停轉(zhuǎn)
  14. #define Left_moto_Stop    {P1_0=0,P1_1=0,P1_2=0,P1_3=0;}    //左邊兩個(gè)電機(jī)停轉(zhuǎn)


  15. unsigned char f=0;
  16. unsigned char Im[4]={0x00,0x00,0x00,0x00};
  17. unsigned char show[2]={0,0};
  18. unsigned long m,Tc;
  19. unsigned char IrOK;

  20. /***************************延時(shí)函數(shù)*********************************************/       
  21.    void delay(unsigned int k)
  22. {   
  23.      unsigned int x,y;
  24.          for(x=0;x<k;x++)
  25.            for(y=0;y<2000;y++);
  26. }
  27. /************************外部中斷解碼程序*****************************************/       
  28. void intersvr0(void) interrupt 1 using 1
  29. {
  30.     Tc=TH0*256+TL0;      //提取中斷時(shí)間間隔時(shí)長
  31.     TH0=0;
  32.     TL0=0;              //定時(shí)中斷重新置零
  33.     if((Tc>Imin)&&(Tc<Imax))
  34.     {
  35.         m=0;
  36.         f=1;
  37.         return;
  38.     }       //找到啟始碼

  39.     if(f==1)
  40.     {
  41.         if(Tc>Inum1&&Tc<Inum3)
  42.         {
  43.             Im[m/8]=Im[m/8]>>1|0x80; m++;
  44.         }
  45.         if(Tc>Inum2&&Tc<Inum1)
  46.         {
  47.          Im[m/8]=Im[m/8]>>1; m++; //取碼
  48.         }
  49.         if(m==32)
  50.         {
  51.          m=0;  
  52.          f=0;
  53.          if(Im[2]==~Im[3])
  54.         {
  55.            IrOK=1;
  56.         }
  57.         else IrOK=0;   //取碼完成后判斷讀碼是否正確
  58.         }
  59.                //準(zhǔn)備讀下一碼
  60.    }

  61. }

  62. /**********************電機(jī)運(yùn)行模式設(shè)置*****************************************/

  63. //前速前進(jìn)
  64.      void  run(void)
  65. {

  66.      Left_moto_go ;   //左電機(jī)往前走
  67.      Right_moto_go ;  //右電機(jī)往前走
  68. }

  69. //前速后退
  70.      void  back(void)
  71. {
  72.    
  73.      Left_moto_back ;   //左電機(jī)往前走
  74.      Right_moto_back ;  //右電機(jī)往前走
  75. }

  76. //左轉(zhuǎn)
  77.      void  leftrun(void)
  78. {

  79.      Left_moto_back ;   //左電機(jī)往前走
  80.      Right_moto_go ;  //右電機(jī)往前走
  81. }

  82. //右轉(zhuǎn)
  83.      void  rightrun(void)
  84. {

  85.      Left_moto_go ;   //左電機(jī)往前走
  86.      Right_moto_back ;  //右電機(jī)往前走
  87. }

  88. //停
  89.   void  Stop(void)
  90. {

  91.      Left_moto_Stop ;   //左電機(jī)往前走
  92.      Right_moto_Stop ;  //右電機(jī)往前走
  93.     }


  94. /***********************主函數(shù)**********************************************/                 
  95. void main(void)
  96. {
  97.          
  98.     m=0;
  99.     f=0;

  100.     IT0=1;
  101.     EX0=1;

  102.     TMOD=0x11;  
  103.     TH0=0;
  104.         TL0=0;
  105.     TR0=1;
  106.         EA=1;



  107.        
  108.         delay(100);          


  109.         while(1)                                                        /*無限循環(huán)*/
  110.         {

  111.             if(IrOK==1)                           //如果處理好后進(jìn)行紅外處理
  112.         {
  113.                    switch(Im[2])
  114.                       {
  115.             case 0x18:  run();                              //前進(jìn)          2
  116. ……………………

  117. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
紅外遙控智能小車.rar (656.55 KB, 下載次數(shù): 71)




評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
onefrog + 5 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2017-7-10 03:32 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:153199 發(fā)表于 2017-7-11 13:25 | 顯示全部樓層
不錯(cuò)的資料,值得收藏
回復(fù)

使用道具 舉報(bào)

ID:584662 發(fā)表于 2019-8-1 20:20 | 顯示全部樓層
你這個(gè)電機(jī)驅(qū)動(dòng)模塊是什么型號(hào),樓主
回復(fù)

使用道具 舉報(bào)

ID:632112 發(fā)表于 2020-5-20 16:51 | 顯示全部樓層
好資料,51黑有你更精彩
回復(fù)

使用道具 舉報(bào)

ID:830969 發(fā)表于 2020-10-20 21:44 | 顯示全部樓層

好資料,51黑有你更精彩
回復(fù)

使用道具 舉報(bào)

ID:834074 發(fā)表于 2020-10-24 21:36 | 顯示全部樓層
perfect
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表