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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

循跡+pwm調速的小車源程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:242950 發表于 2017-10-27 22:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
小車的單片機源程序如下:
  1. #include<reg52.h>
  2. ////////////電機轉動
  3. sbit P30=P2^0;
  4. sbit P31=P2^1;
  5. sbit P32=P2^2;
  6. sbit P33=P2^3;
  7. /////////pwm調試使能端
  8. sbit ENA=P0^0;
  9. sbit ENB=P0^1;
  10. ////////////四路循跡
  11. sbit P10=P1^7;
  12. sbit P11=P1^6;
  13. sbit P12=P1^5;
  14. sbit P13=P1^4;
  15. ////////////////
  16. #define Right_moto_pwm P0^0 //接驅動模塊ENA使能端輸入PWM信號調節速度

  17. void delay(unsigned int t); //函數聲明

  18. #define Left_moto_pwm P0^1 //接驅動模塊ENB使能端輸入PWM信號調節速度

  19. void Init_Timer0(void);//定時器初始化
  20.   
  21. ///////////////定義電機轉動方向                                                                                                         
  22. #define Left_moto_back {P30=1,P31=0;} //左電機后退

  23. #define Left_moto_go {P30=0,P31=1;} //左電機前進

  24. #define Left_moto_stop {P30=1,P31=1;} //左電機停轉

  25. #define Right_moto_back {P32=1,P33=0;} //右電機后退

  26. #define Right_moto_go {P32=0,P33=1;} //右電機前轉

  27. #define Right_moto_stop {P32=1,P33=1;} //右電機停轉

  28. //////////////////////////////

  29. #define uchar unsigned char

  30. #define uint unsigned int

  31. /////////////////////////////
  32. uchar pwm_val_left =0;

  33. uchar push_val_left =0; //左電機占空比N/10

  34. uchar pwm_val_right =0;

  35. uchar push_val_right=0; //右電機占空比N/10

  36. bit Right_moto_stp=1;

  37. bit Left_moto_stp =1;
  38. uint num,i,d,j=0;

  39. /****************************************************************

  40. ********/

  41. void run(void) //前進函數

  42. {

  43. push_val_left =17; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度

  44. push_val_right =17; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度



  45. Left_moto_go ; //左電機前進

  46. Right_moto_go ; //右電機前進


  47. }

  48. void run1(void)//前進函數1

  49. {

  50. push_val_left =4.8; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度



  51. push_val_right =4.8; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度



  52. Left_moto_go ; //左電機前進

  53. Right_moto_go ; //右電機前進


  54. }
  55. void run2(void)//前進函數1

  56. {

  57. push_val_left =21; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度



  58. push_val_right =21; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度



  59. Left_moto_go ; //左電機前進

  60. Right_moto_go ; //右電機前進


  61. }

  62. /****************************************************************

  63. ********/

  64. void left(void) //左轉函數

  65. {

  66. push_val_left =19;

  67. push_val_right =19;

  68. Right_moto_go; //右電機繼續

  69. Left_moto_stop; //左電機停走

  70. }

  71. void left1(void) //左轉函數        1

  72. {

  73. push_val_left =20;

  74. push_val_right =20;

  75. Right_moto_go; //右電機繼續

  76. Left_moto_stop; //左電機停走

  77. }


  78. /***************************************  *********************************/

  79. void right(void) //右轉函數

  80. {

  81. push_val_left =19;
  82.                                  
  83. push_val_right =19;

  84. Right_moto_stop; //右電機停走

  85. Left_moto_go; //左電機繼續

  86. }

  87. void right1(void) //右轉函數1

  88. {

  89. push_val_left =20;

  90. push_val_right =20;

  91. Right_moto_stop; //右電機停走

  92. Left_moto_go; //左電機繼續

  93. }

  94. ///////////////////////////////////////////////////////////////停止

  95. void stop(void)

  96. {

  97. Right_moto_stop; //右電機停走

  98. Left_moto_stop; //左電機停走



  99. //run();
  100. //
  101. //Delayms(100);

  102. }

  103. ///////////////////////////////////////////

  104. void zzhijiao()
  105. {

  106.    push_val_left =19;
  107.    
  108.    push_val_right =19;       
  109.    
  110.    Left_moto_go ; //左電機前進
  111.    
  112.    Right_moto_back ;
  113.                                                  }
  114. ///////////////////////////////////////
  115. void yzhijiao()
  116. {       
  117.   push_val_left =19;

  118.   push_val_right =19;
  119.   
  120.   Left_moto_back ; //左電機前進
  121.       
  122.   Right_moto_go ;}
  123. /*************************PWM調 制 電 機 轉 速

  124. ********************************/

  125. void pwm_out_left_moto(void) //左電機調速,調節push_val_left的值改變電機轉速,占空比



  126. {

  127. if(Left_moto_stp)

  128. {
  129. {if(pwm_val_left<=push_val_left)

  130. { ENB=1;}

  131. else

  132.   {ENB=0;}
  133.   }
  134. {if(pwm_val_left>=20)

  135.   {pwm_val_left=0;}
  136.   }
  137. }

  138. else

  139. {ENB=0;}

  140. }


  141. void pwm_out_right_moto(void) //右電機調速,調節push_val_left的值改變電機轉速,占空比



  142. {

  143. if(Right_moto_stp)

  144. {

  145. if(pwm_val_right<=push_val_right)

  146. {ENA=1;}

  147. else

  148. {ENA=0;}

  149. if(pwm_val_right>=20)

  150. {pwm_val_right=0;}

  151. }

  152. else

  153. {ENA=0;}
  154.        
  155. }

  156. /***************************************************/

  157. void xunji()

  158. {        
  159.            uchar a=0,b=0;
  160.                                                                                                                                                                                                                

  161.       if(   P10==1&&P11==1&&P12==1&&P13==1)
  162.                 {            
  163.                         i++;
  164.                                             }
  165.       if( P10==0&&P11==0&&P12==0&&P13==0)
  166.         {
  167.                  run();
  168.                                  }   
  169.       if( P10==0&&P11==0&&P12==1&&P13==0||P10==0&&P11==0&&P12==0&&P13==1)
  170.         {          
  171.                   right();
  172.                                    }
  173.       if(          P10==0&&P11==1&&P12==0&&P13==0||P10==1&&P11==0&&P12==0&&P13==0)
  174.                  {  
  175.                       left();
  176.                                     }          
  177.           if(   P10==1&&P11==1&&P12==1&&P13==1&&i>=500)   //600
  178.                  {
  179.                         j++;
  180.                                             }

  181.    while(j==2)

  182.     {           
  183.         if( P10==0&&P11==0&&P12==0&&P13==0)
  184.            {
  185.                  run1();
  186.                                  }   
  187.                                                                
  188.             if(        P10==0&&P11==0&&P12==1&&P13==0||P10==0&&P11==0&&P12==0&&P13==1)
  189.                         {       
  190.                           right();
  191.                                     }
  192.             if( P10==1&&P11==1&&P12==0&&P13==0||P10==1&&P11==1&&P12==1&&P13==0)
  193.                          {
  194.                           
  195.                          yzhijiao();
  196.                          a++;
  197.                                       }
  198.                  if( P10==0&&P11==0&&P12==1&&P13==1||P10==0&&P11==1&&P12==1&&P13==1)
  199.                          {
  200.                           zzhijiao();
  201.               d++;
  202.                
  203.                          }
  204.          if(   P10==0&&P11==1&&P12==0&&P13==0||P10==1&&P11==0&&P12==0&&P13==0)
  205.                                          {        left();}
  206.       
  207.       

  208.                    if(a+d>=2400)
  209.             {
  210.                  if( P10==0&&P11==0&&P12==0&&P13==0)
  211.           {
  212.                  run2();
  213.                                  }   
  214.         if( P10==0&&P11==0&&P12==1&&P13==0||P10==0&&P11==0&&P12==0&&P13==1)
  215.           {          
  216.                   right1();
  217.                                    }
  218.         if(          P10==0&&P11==1&&P12==0&&P13==0||P10==1&&P11==0&&P12==0&&P13==0)
  219.                 {  
  220.                       left1();
  221.                                     }          
  222.            if(   P10==1&&P11==1&&P12==1&&P13==1)   //600
  223.                      {
  224.                          stop();
  225.                                             
  226.                                         }
  227.                                                 }
  228.                                          }
  229.          
  230.                           
  231.                                      }
  232.                                           



  233. /***********TIMER0中斷服務子函數產生PWM信號**********/

  234. void Init_Timer0()interrupt 1 using 2

  235. {


  236. TH0=0XFC; //2Ms定時

  237. TL0=0X30;

  238.                
  239. ……………………

  240. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
循跡小車.rar (24.16 KB, 下載次數: 489)


評分

參與人數 4黑幣 +65 收起 理由
為之則易 + 8 淡定
147wzl + 2 共享資料的黑幣獎勵!
kikiikllll + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:244394 發表于 2017-10-30 22:36 | 只看該作者
收藏額   謝謝樓主
回復

使用道具 舉報

板凳
ID:275384 發表于 2018-1-16 22:25 | 只看該作者
完全解決燃眉之急
回復

使用道具 舉報

地板
ID:338048 發表于 2018-5-25 14:28 | 只看該作者
代碼非常清楚,解決了我對于pwm調速的疑問
回復

使用道具 舉報

5#
ID:404723 發表于 2018-11-6 20:07 | 只看該作者
十分感謝 , 寫的非常清楚明了   謝謝謝謝
回復

使用道具 舉報

6#
ID:412832 發表于 2018-12-1 14:48 | 只看該作者
剛好需要 謝謝樓主
回復

使用道具 舉報

7#
ID:412832 發表于 2018-12-1 16:29 | 只看該作者
val是什么意思呢
回復

使用道具 舉報

8#
ID:421579 發表于 2018-12-4 10:44 | 只看該作者
謝謝源代碼,,。
回復

使用道具 舉報

9#
ID:458115 發表于 2018-12-29 15:46 | 只看該作者
厲害了
回復

使用道具 舉報

10#
ID:478732 發表于 2019-2-21 11:22 | 只看該作者
代碼寫的很可以,謝謝大佬相助
回復

使用道具 舉報

11#
ID:509968 發表于 2019-4-11 20:37 | 只看該作者
真好啊
回復

使用道具 舉報

12#
ID:510468 發表于 2019-4-12 14:06 | 只看該作者
非常好
回復

使用道具 舉報

13#
ID:489425 發表于 2019-4-12 15:50 | 只看該作者
請問具體的單片機型號是什么
回復

使用道具 舉報

14#
ID:324545 發表于 2019-4-22 14:43 | 只看該作者
不錯啊啊啊
回復

使用道具 舉報

15#
ID:538577 發表于 2019-5-15 17:18 | 只看該作者
厲害
回復

使用道具 舉報

16#
ID:546593 發表于 2019-5-24 20:34 | 只看該作者
真不錯
回復

使用道具 舉報

17#
ID:550631 發表于 2019-6-1 10:13 | 只看該作者
謝謝樓主,非常有用
回復

使用道具 舉報

18#
ID:487298 發表于 2019-11-3 21:02 | 只看該作者
謝謝,幫到我不少!
回復

使用道具 舉報

19#
ID:242950 發表于 2020-3-1 12:56 | 只看該作者
嫌的無聊,曬曬
回復

使用道具 舉報

20#
ID:28260 發表于 2021-7-24 08:08 | 只看該作者

謝謝樓主,非常有用,學習了!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美一区二区在线观看 | 国产精品自拍视频网站 | 欧产日产国产精品视频 | 亚洲精品视频在线看 | 亚洲精品片 | 男女视频在线观看 | 99久久精品一区二区毛片吞精 | 精品国产乱码久久久久久丨区2区 | 免费一区| 国产精品久久久久999 | 国产精品久久久久久久久免费软件 | 亚洲一区视频在线 | 国产毛片久久久久久久久春天 | 久久青草av | 国产精品久久久久久久久久尿 | 日韩高清一区 | 激情欧美一区二区三区中文字幕 | 久久福利电影 | 五月天婷婷激情 | 天天射夜夜操 | a级片网站 | 自拍视频网站 | 欧美日本免费 | 久久综合久 | 国产探花在线观看视频 | 日韩精品视频网 | 中文字幕一二三区 | 久久精品99久久 | 亚洲视频观看 | 极品国产视频 | 亚洲日本中文字幕在线 | 日韩电影一区二区三区 | 性高湖久久久久久久久 | 日韩中文欧美 | 精品区| 精品一二区 | 亚洲精品欧美 | 精品粉嫩aⅴ一区二区三区四区 | 亚洲成人免费 | 亚洲精视频 | 欧美淫片|