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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機循跡小車源碼(4對紅外管、雙黑線)

[復制鏈接]
跳轉到指定樓層
樓主
ID:313679 發表于 2018-4-22 13:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
循跡小車源程序
單片機源程序如下:
  1. #include <reg52.h>

  2. #define  u16  unsigned int
  3. #define  u8   unsigned char

  4. sbit IN1=P1^0;
  5. sbit IN2=P1^1;
  6. sbit IN3=P1^2;
  7. sbit IN4=P1^3;

  8. sbit L_WXJ=P0^4;
  9. sbit L_NXJ=P0^5;
  10. sbit R_WXJ=P0^6;
  11. sbit R_NXJ=P0^7;

  12. sbit key4 = P3^7;
  13. sbit key3 = P3^6;
  14. sbit key2 = P3^5;
  15. sbit key1 = P3^4;

  16. u8 pp;

  17. char sum;


  18. sbit L_PWM=P1^4;
  19. sbit R_PWM=P1^5;


  20. #define  L_go          IN1=1;IN2=0    //左輪進
  21. #define  L_back        IN1=0;IN2=1    //左輪退
  22. #define  L_stop        IN1=0;IN2=0    //左輪停

  23. #define  R_go          IN3=1;IN4=0     //右輪進
  24. #define  R_back        IN3=0;IN4=1     //右輪退
  25. #define  R_stop        IN3=0;IN4=0     //右輪停止

  26. #define  car_go        L_go;R_go       //車向前進
  27. #define  car_back      L_back;R_back   //車倒退
  28. #define  car_stop      L_stop;R_stop   //車停止
  29. #define  car_lift      R_go;L_stop     //車左轉
  30. #define  car_right     L_go;R_stop     //車右轉


  31. #define  car_lift360   L_back;R_go     //可以理解為左大轉彎
  32. #define  car_right360  R_back;L_go     //可以理解為右大轉彎




  33. void delay(unsigned int t){               
  34.         while(t--);
  35. }

  36. void T0_Init()
  37. {
  38.         TMOD=0X01;
  39.         TH0=0XFC;      //定時器0實現1ms產生一次中斷,若是設置10格調速,則PWM的周期就是10ms
  40.         TL0=0X07;
  41.         ET0=1;
  42.         TR0=1;
  43.         EA=1;
  44.        
  45. }

  46. void time0()interrupt 1
  47. {
  48.         TMOD=0X01;
  49.         TH0=0XFC;
  50.         pp++;
  51.   if(pp>9) pp=0;
  52.         if(sum!=0&&sum!=9)
  53.         {
  54.                 if(pp<=sum)
  55.         {        L_PWM=1;
  56.                 R_PWM=1;
  57.   }
  58.         else
  59.                 {
  60.                         L_PWM=0;
  61.                         R_PWM=0;
  62.     }
  63.         }
  64.         else if(sum==0)
  65.         {
  66.                 L_PWM=0;
  67.                         R_PWM=0;
  68.   }
  69.         else if(sum==9)
  70.         {
  71.                 L_PWM=1;
  72.                 R_PWM=1;
  73.   }       
  74. }

  75. /*void PWM_kandle()
  76. {                    //該函數實現不同等級的PWM頻率,pp是產生中斷的次數,pp<sum表示高電平的時間
  77.         if(pp>9) pp=0;
  78.         if(sum!=0&&sum!=9)
  79.         {
  80.                 if(pp<=sum)
  81.         {        L_PWM=1;
  82.                 R_PWM=1;
  83.   }
  84.         else
  85.                 {
  86.                         L_PWM=0;
  87.                         R_PWM=0;
  88.     }
  89.         }
  90.         else if(sum==0)
  91.         {
  92.                 L_PWM=0;
  93.                         R_PWM=0;
  94.   }
  95.         else if(sum==9)
  96.         {
  97.                 L_PWM=1;
  98.                 R_PWM=1;
  99.   }
  100.                
  101.                
  102. }*/
  103. /*若要實現兩個輪子的轉速不一致實現快速轉小彎可使用一下程序
  104. u8 sum1,sum2;//定義兩個變量  放到程序頂部
  105. void PWM_kandle()
  106. {
  107.         if(pp>9) pp=0;
  108.                 if(pp<=sum1)
  109.         {        L_PWM=1;
  110.                
  111.   }
  112.         else
  113.                 {
  114.                         L_PWM=0;
  115.                        
  116.     }
  117.         }
  118.         if(pp<=sum2)
  119.         {
  120.                         R_PWM=1;}
  121.         else
  122.   {
  123.    R_PWM=0;
  124.          }
  125.                
  126. }


  127. */


  128. void XJkabdle()
  129. {
  130.        
  131.         //while(1)
  132.         if(L_WXJ&&R_WXJ==0)
  133.                 {
  134.    car_lift360;
  135.                         }
  136.         else if(R_WXJ&&L_WXJ==0)
  137.         {car_right360;}
  138.         else if(L_NXJ&&R_NXJ)
  139.         {car_go;}
  140.         else if(L_NXJ)
  141.         {car_lift;}
  142.         else if(R_NXJ)
  143.         {car_right;}
  144.         else {car_stop;}

  145. }
  146. main()
  147. {
  148.         T0_Init();
  149.         sum=9;

  150.         while(1)
  151. {
  152.                         //PWM_kandle();
  153.          XJkabdle();
  154.    /* if(!key1)
  155.     {sum=2;
  156.     //XJkabdle();
  157.     }
  158.    else if(!key2)               
  159.          { sum=5;
  160.     //XJkabdle();
  161.     }
  162.          else if(!key3)
  163.          {sum=7;
  164.     //XJkabdle();
  165.    }
  166.          else if(!key4)
  167.          {sum=9;
  168.     //XJkabdle();
  169.    }
  170.          XJkabdle();
  171.   }
  172.         */
  173. }}
復制代碼

所有資料51hei提供下載:
車尋跡(4對紅外管、雙黑線).zip (41.99 KB, 下載次數: 32)


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

使用道具 舉報

沙發
ID:445186 發表于 2018-12-19 11:43 來自手機 | 只看該作者
謝謝樓主,學習了
回復

使用道具 舉報

板凳
ID:525332 發表于 2019-5-10 18:40 | 只看該作者
請問有原理圖嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a免费观看 | 欧美精品一区二区三区一线天视频 | 免费视频二区 | 日韩成人在线视频 | 羞羞视频在线免费 | 一区二区国产精品 | 日韩在线精品 | 欧美久久久网站 | 一本一道久久a久久精品蜜桃 | 免费能直接在线观看黄的视频 | 91在线影院 | 国产一区二区三区四区三区四 | 国产乱码高清区二区三区在线 | 中文字幕一区二区三区日韩精品 | 久久逼逼 | 欧美日韩精品久久久免费观看 | 不卡一区| 国产一区二区不卡 | 国产成人网 | 日本免费一区二区三区四区 | 精品欧美乱码久久久久久1区2区 | 欧美激情免费在线 | 色偷偷888欧美精品久久久 | 中文字幕日韩一区二区 | 中文字幕在线免费视频 | 欧美视频成人 | 日韩精品一区二区三区中文在线 | 成人一区二区三区在线观看 | 亚洲啪啪| 一区二区三区在线免费观看 | 欧美激情视频一区二区三区在线播放 | 午夜免费在线观看 | 国产精品综合视频 | 亚洲二区在线观看 | 在线欧美视频 | 日本在线视频一区二区 | 成人欧美一区二区三区黑人孕妇 | 在线观看视频一区 | 欧美日韩亚洲一区 | 一区二区三区在线电影 | 日本免费在线观看视频 |