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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

倆路pwm調(diào)速循跡小車 單片機源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:437370 發(fā)表于 2019-5-31 09:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
倆路pwm調(diào)速循跡小車

單片機源程序如下:
  1. /**********  循跡程序  ************************/
  2. //    P0.0和P0.1-----右電機
  3. //    P0.2和P0.3-----左電機
  4. //    P1.0-----------右1光電管
  5. //    P1.1-----------左1光電管
  6. /*****************************************************/
  7. #include<reg52.h>//包含必要頭文件
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. void Init_Timer0(void);//定時器初始化
  11. sbit P10=P1^0;                                        //定義單片機控制左邊電機的引腳
  12. sbit P11=P1^1;                                        //定義單片機控制左邊電機的引腳
  13. sbit P12=P1^2;                                        //定義單片機控制右邊電機的引腳
  14. sbit P13=P1^3;                                        //定義單片機控制右邊電機的引腳
  15. sbit ENA=P3^0;
  16. sbit ENB=P3^1;
  17. #define Right_moto_pwm P3^0 //接驅(qū)動模塊ENA使能端輸入PWM信號調(diào)節(jié)速度
  18. #define Left_moto_pwm P3^1 //接驅(qū)動模塊ENB使能端輸入PWM信號調(diào)節(jié)速度

  19. #define Left_moto_back         {P10=0,P11=1;} //左電機后退
  20. #define Left_moto_go                 {P10=1,P11=0;} //左電機前進
  21. #define Left_moto_stop         {P10=1,P11=1;} //左電機停轉(zhuǎn)
  22. #define Right_moto_back {P12=0,P13=1;} //右電機后退
  23. #define Right_moto_go         {P12=1,P13=0;} //右電機前轉(zhuǎn)
  24. #define Right_moto_stop {P12=1,P13=1;} //右電機停轉(zhuǎn)

  25. sbit y1=P2^0;                                        //定義單片機連接循跡板右邊第一個光電管的引腳
  26. sbit z1=P2^1;                                        //定義單片機連接循跡板左邊第一個光電管的引腳

  27. int pwm_val_left =0;
  28. int push_val_left =0; //左電機占空比N/10
  29. int pwm_val_right =0;
  30. int push_val_right=0; //右電機占空比N/10
  31. bit Right_moto_stp=1;
  32. bit Left_moto_stp =1;

  33. void delay(int z)                                //pwm中使用的延時函數(shù)
  34. {
  35.         int i,j;
  36.         for(i=2;i>0;i--)
  37.         for(j=z;j>0;j--);       
  38. }
  39. void qian()                                                //左右輪協(xié)同前進子函數(shù)
  40. {
  41.         push_val_left  =7.5; //PWM 調(diào)節(jié)參數(shù)1-20 1為最慢20是最快 改這個值可以改變其速度
  42.         push_val_right =7; //PWM 調(diào)節(jié)參數(shù)1-20 1為最慢20是最快 改這個值可以改變其速度

  43.         Left_moto_go ;     //左電機前進
  44.         Right_moto_go ;          //右電機前進
  45. }

  46. void you()                                                //左右輪協(xié)同  右轉(zhuǎn)子函數(shù)
  47. {
  48.         push_val_left  =7; //PWM 調(diào)節(jié)參數(shù)1-20 1為最慢20是最快 改這個值可以改變其速度
  49.         push_val_right =7; //PWM 調(diào)節(jié)參數(shù)1-20 1為最慢20是最快 改這個值可以改變其速度

  50.         Left_moto_go ;     //左電機前進
  51.         Right_moto_back ;          //右電機前進
  52. }

  53. void zuo()                                                //左右輪協(xié)同  左轉(zhuǎn)子函數(shù)
  54. {
  55.         push_val_left  =7; //PWM 調(diào)節(jié)參數(shù)1-20 1為最慢20是最快 改這個值可以改變其速度
  56.         push_val_right =7; //PWM 調(diào)節(jié)參數(shù)1-20 1為最慢20是最快 改這個值可以改變其速度

  57.         Left_moto_back ;     //左電機前進
  58.         Right_moto_go ;          //右電機前進
  59. }
  60. void ting()                                         //左右輪都停止轉(zhuǎn)動
  61. {
  62.         Right_moto_stop;          //右電機停走
  63.         Left_moto_stop;          //左電機停走
  64. }

  65. void pwm_out_left_moto(void) //左電機調(diào)速,調(diào)節(jié)push_val_left的值改變電機轉(zhuǎn)速,占空比
  66. {
  67.         if(Left_moto_stp)
  68.         {
  69.                 {
  70.                         if(pwm_val_left<=push_val_left)
  71.                         {
  72.                                 ENB=1;
  73.                         }
  74.                         else
  75.                         {
  76.                                 ENB=0;
  77.                         }
  78.                 }       

  79.                 {
  80.                         if(pwm_val_left>=20)
  81.                         {
  82.                                 pwm_val_left=0;
  83.                         }       
  84.                 }
  85.         }
  86.         else
  87.                 {
  88.                         ENB=0;
  89.                 }
  90. }


  91. void pwm_out_right_moto(void) //右電機調(diào)速,調(diào)節(jié)push_val_left的值改變電機轉(zhuǎn)速,占空比
  92. {
  93.         if(Right_moto_stp)
  94.          {
  95.                 if(pwm_val_right<=push_val_right)
  96.                 {
  97.                         ENA=1;
  98.                 }
  99.                 else
  100.                 {
  101.                         ENA=0;
  102.                 }
  103.                 if(pwm_val_right>=20)
  104.                 {
  105.                         pwm_val_right=0;
  106.                 }
  107.          }
  108.         else
  109.          {
  110.                 ENA=0;
  111.          }       
  112. }


  113. void main()                                                //主函數(shù)
  114. {
  115.                 TMOD |=0X01;
  116.                 TH0= 0XFC; //2ms定時
  117.                 TL0= 0X30;
  118.                 TR0= 1;
  119.                 ET0= 1;
  120.                 EA = 1;
  121.           z1=1;
  122.           y1=1;

  123.                 while(1)                                                        //單片機不間斷監(jiān)測 (是個死循環(huán))
  124.                 {                                                                             
  125.                                 qian();                                                //調(diào)用前進函數(shù),使小車光電管不滿足以下幾個條件時都處于前進狀態(tài)               
  126.                                 while(y1==1&z1==0)                                           
  127.                                 {       
  128.                                         you();                                                //
  129.                                         //zuo();
  130.                                 }
  131.                                 while(y1==0&z1==1)                                                                                                                                                                                                                                                   
  132.                                 {
  133.                                          zuo();                                        //       
  134.                                         //you();
  135.                                 }
  136.                                 while(y1==1&z1==1)                                                                                             
  137.                                 {                       
  138.                                         ting();                                          // 停止                               
  139.                                 }                                       
  140.                                 while(y1==0&z1==0)                                                        //判斷當(dāng)左邊和右光電管都遇到黑線時
  141.                                 {                                                       
  142.                                         qian();                                        //調(diào)用前進函數(shù)
  143.                                 }                       
  144.                  }
  145. }

  146. void Init_Timer0()interrupt 1 using 2

  147. {


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

  149. TL0=0X30;

  150.                
  151. pwm_val_left++;

  152. pwm_val_right++;

  153. pwm_out_left_moto();

  154. pwm_out_right_moto();

  155. }
復(fù)制代碼

所有資料51hei提供下載:
pwm調(diào)速正常慢速1.zip (23.5 KB, 下載次數(shù): 15)



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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频一区二区三区四区 | 影音先锋欧美资源 | 欧美黄色免费网站 | 欧美成人一区二区三区 | 国产视频福利一区 | 国产成人精品久久二区二区91 | 天堂av在线影院 | 在线免费观看黄网 | 毛片a级毛片免费播放100 | 日日夜夜精品视频 | 天天天天天天操 | 超碰在线人人 | 在线免费观看视频黄 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 国产激情在线 | 国产日韩免费观看 | 欧美最猛黑人xxxx黑人 | 九九av| 亚洲不卡av在线 | 亚洲精品国产成人 | 91久色| 成人精品毛片国产亚洲av十九禁 | 日韩a级片| 亚洲色图插插插 | 久久国产精品免费一区二区三区 | 91精品久久久 | 精品国产乱码久久久久久牛牛 | 中文在线一区二区 | 午夜精品一区二区三区三上悠亚 | 久久一区精品 | 亚洲一区二区三区免费观看 | 亚洲一区二区在线 | 婷婷五月色综合 | 中文字幕在线免费视频 | 亚洲第一网站 | 久久精品国产99国产精品 | 国内精品视频在线观看 | 精品91久久| 成人国产精品入口免费视频 | 中文字幕在线免费视频 | 欧美日一区二区 |