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

標(biāo)題: 51單片機(jī)控制L298N驅(qū)動(dòng)兩臺(tái)直流電機(jī)的智能小車程序 [打印本頁(yè)]

作者: bboy-asda    時(shí)間: 2016-5-13 12:35
標(biāo)題: 51單片機(jī)控制L298N驅(qū)動(dòng)兩臺(tái)直流電機(jī)的智能小車程序
51單片機(jī)芯片控制的L298N驅(qū)動(dòng)兩臺(tái)直流電機(jī)的智能小車程序

包含
1-左輪前進(jìn)(接線調(diào)試)
2-右輪前進(jìn)(接線調(diào)試)
3-前進(jìn)后退
4-PWM調(diào)速前進(jìn)后退

全部小車程序源碼下載: 51小車測(cè)試程序.rar (126.33 KB, 下載次數(shù): 552)


部分源碼預(yù)覽:
  1. /***************************************************************************
  2. 標(biāo)題:前進(jìn)后退測(cè)試
  3. 平臺(tái):LY5A-L2B開(kāi)發(fā)板
  4. 作者:        林洋電子工作室-單片機(jī)
  5. 說(shuō)明:使用定時(shí)器來(lái)輸出PWM信號(hào),通過(guò)調(diào)節(jié)占空比實(shí)現(xiàn)調(diào)速
  6. ******************************************************************************/

  7. //頭文件:
  8. #include <reg52.h>

  9. //IO引腳定義:

  10. sbit IN1=P1^0;               
  11. sbit IN2=P1^1;
  12. sbit IN3=P1^2;
  13. sbit IN4=P1^3;
  14. //以上為電機(jī)驅(qū)動(dòng)板輸入引腳定義,
  15. //IN1和IN2控制左輪電機(jī),輸出對(duì)應(yīng)的OU1和OUT2接左輪電機(jī),
  16. //IN3和IN4控制右輪電機(jī),輸出對(duì)應(yīng)的OU3和OUT4接右輪電機(jī)

  17. sbit L_PWM=P1^4;           //左輪調(diào)速,接驅(qū)動(dòng)模塊ENA使能端,在這里輸入PWM信號(hào)
  18. sbit R_PWM=P1^5;           //右輪調(diào)速,接驅(qū)動(dòng)模塊ENB使能端,在這里輸入PWM信號(hào)


  19. //宏定義
  20. #define L_go      IN1=0;IN2=1 //左輪前進(jìn)
  21. #define L_back    IN1=1;IN2=0 //左輪后退   
  22. #define L_stop    IN1=0;IN2=0        //左輪停止,兩個(gè)輸出1也可以
  23. #define R_go            IN3=0;IN4=1 //右輪前進(jìn)
  24. #define R_back          IN3=1;IN4=0 //右輪后退
  25. #define R_stop          IN3=0;IN4=0 //右輪停止,兩個(gè)輸出1也可以

  26. #define car_go                                L_go;R_go;                //小車前進(jìn)
  27. #define car_back                        L_back;R_back        //小車后退
  28. #define car_left                        R_go;L_stop                //小車左轉(zhuǎn)彎
  29. #define car_right                        L_go;R_stop                //小車右轉(zhuǎn)彎
  30. #define car_stop                        L_stop;R_stop        //小車停車
  31. #define car_left_360        R_go;L_back                //小車向左360度轉(zhuǎn),也可以認(rèn)為是大轉(zhuǎn)彎
  32. #define car_right_360        L_go;R_back                //小車向右360度轉(zhuǎn),也可以認(rèn)為是大轉(zhuǎn)彎

  33. //數(shù)據(jù)定義
  34. unsigned char l_tt=0;        //定時(shí)器計(jì)數(shù)用

  35. unsigned char l_Lpwm=0;        //左輪PWM占空比值,我們?cè)O(shè)計(jì)10個(gè)格,0-9,0為停止,9為全速
  36. unsigned char l_Rpwm=0;        //右輪PWM占空比值,我們?cè)O(shè)計(jì)10個(gè)格,0-9,0為停止,9為全速


  37. //TIMER0中斷服務(wù)子函數(shù)產(chǎn)生PWM信號(hào)
  38. void timer0()interrupt 1   using 2
  39. {
  40.         TH0=0XFC;          //定時(shí)1毫秒,10格調(diào)速,為100HZ頻率,此頻率下效果比較好,過(guò)大有噪聲,過(guò)小振動(dòng)大
  41.         TL0=0X17;
  42.         l_tt++;
  43.         if(l_tt>9)l_tt=0;        //比較用,10格調(diào)速
  44.        
  45.         if(l_tt<=l_Lpwm){//左調(diào)速,占空比數(shù)值越大,輸出高電平時(shí)間越寬,電機(jī)轉(zhuǎn)速越高,我們?cè)O(shè)計(jì)10個(gè)格,0-9,0為停止,9為全速
  46.                  L_PWM=1;
  47.         }
  48.         else{
  49.                 L_PWM=0;
  50.         }
  51.         if(l_tt<=l_Rpwm){//右調(diào)速,同上
  52.                 R_PWM=1;
  53.         }
  54.         else{
  55.                 R_PWM=0;
  56.         }
  57. }       

  58. //延時(shí)
  59. void Delay(unsigned int t)
  60. {
  61.         unsigned int c;
  62.         while(t--){
  63.                 c=10000;
  64.                 while(c--);
  65.         }
  66. }
  67. //入口函數(shù)
  68. void main(void)
  69. {
  70.         unsigned char i;
  71.         EA=1;                                                //首先開(kāi)啟總中斷
  72.         TMOD|=0X11;                        //定時(shí)器方式1,16位計(jì)數(shù)器,用來(lái)計(jì)數(shù)時(shí)間
  73.         TH0= 0XFC;                  //1ms定時(shí)
  74.         TL0= 0X14;
  75.         TR0= 1;
  76.         ET0= 1;
  77.        
  78.         while(1){
  79.                 l_Lpwm=0;
  80.                 car_go;                        //前進(jìn)
  81.                 for(i=0;i<10;i++){//慢慢提速
  82.                         l_Lpwm++;       
  83.                         l_Rpwm++;
  84.                         Delay(2);
  85.                 }               
  86.                 Delay(5);                                        //保持速度前進(jìn)一會(huì)
  87.                 for(i=0;i<10;i++){//慢慢降速
  88.                         l_Lpwm--;       
  89.                         l_Rpwm--;
  90.                         Delay(2);
  91.                 }               
  92.                 Delay(10);
  93.                
  94.                 car_back;                //后退,以下原理同上
  95.                 for(i=0;i<10;i++){
  96.                         l_Lpwm++;       
  97.                         l_Rpwm++;
  98.                         Delay(2);
  99.                 }               
  100.                 Delay(5);
  101.                 for(i=0;i<10;i++){
  102.                         l_Lpwm--;       
  103.                         l_Rpwm--;
  104.                         Delay(2);
  105.                 }               
  106.                 Delay(10);
  107.         }
  108. }
復(fù)制代碼

  1. /***************************************************************************
  2. 標(biāo)題:前進(jìn)后退測(cè)試
  3. 平臺(tái):LY5A-L2B開(kāi)發(fā)板
  4. 作者:        林洋電子工作室-單片機(jī)
  5. 客服QQ:52927029
  6. 郵箱:        52927029@qq.com
  7. 說(shuō)明:當(dāng)1和2兩個(gè)接線調(diào)試程序測(cè)試通過(guò)后,就可以用此程序進(jìn)行前進(jìn)后退實(shí)驗(yàn)
  8. ******************************************************************************/

  9. //頭文件:
  10. #include <reg52.h>

  11. //IO引腳定義:

  12. sbit IN1=P1^0;               
  13. sbit IN2=P1^1;
  14. sbit IN3=P1^2;
  15. sbit IN4=P1^3;
  16. //以上為電機(jī)驅(qū)動(dòng)板輸入引腳定義,
  17. //IN1和IN2控制左輪電機(jī),輸出對(duì)應(yīng)的OU1和OUT2接左輪電機(jī),
  18. //IN3和IN4控制右輪電機(jī),輸出對(duì)應(yīng)的OU3和OUT4接右輪電機(jī)

  19. //宏定義
  20. #define L_go      IN1=0;IN2=1 //左輪前進(jìn)
  21. #define L_back    IN1=1;IN2=0 //左輪后退   
  22. #define L_stop    IN1=0;IN2=0        //左輪停止,兩個(gè)輸出1也可以
  23. #define R_go            IN3=0;IN4=1 //右輪前進(jìn)
  24. #define R_back          IN3=1;IN4=0 //右輪后退
  25. #define R_stop          IN3=0;IN4=0 //右輪停止,兩個(gè)輸出1也可以

  26. #define car_go                                L_go;R_go;                //小車前進(jìn)
  27. #define car_back                        L_back;R_back        //小車后退
  28. #define car_left                        R_go;L_stop                //小車左轉(zhuǎn)彎
  29. #define car_right                        L_go;R_stop                //小車右轉(zhuǎn)彎
  30. #define car_stop                        L_stop;R_stop        //小車停車
  31. #define car_left_360        R_go;L_back                //小車向左360度轉(zhuǎn),也可以認(rèn)為是大轉(zhuǎn)彎
  32. #define car_right_360        L_go;R_back                //小車向右360度轉(zhuǎn),也可以認(rèn)為是大轉(zhuǎn)彎


  33. //延時(shí)
  34. void Delay(unsigned int t)
  35. {
  36.         unsigned int c;
  37.         while(t--){
  38.                 c=10000;
  39.                 while(c--);
  40.         }
  41. }
  42. //入口函數(shù)
  43. void main(void)
  44. {
  45.         while(1){
  46.                 car_go;                        //前進(jìn)
  47.                 Delay(10);
  48.                
  49.                 car_back;                //后退
  50.                 Delay(10);
  51.         }
  52. }
復(fù)制代碼
  1. /***************************************************************************
  2. 標(biāo)題:右輪前進(jìn)
  3. 平臺(tái):LY5A-L2B開(kāi)發(fā)板
  4. 作者:        林洋電子工作室-單片機(jī)
  5. 客服QQ:52927029
  6. 郵箱:        52927029@qq.com
  7. 說(shuō)明:        本程序主要是用來(lái)做接線調(diào)試使用,右輪前進(jìn),即前進(jìn)方向的右邊輪子,
  8.                         如果實(shí)際寫入程序測(cè)試電機(jī)向后轉(zhuǎn)(后退),將電機(jī)兩線調(diào)換一下即可。
  9. ******************************************************************************/

  10. //頭文件:
  11. #include <reg52.h>

  12. //IO引腳定義:

  13. sbit IN1=P1^0;               
  14. sbit IN2=P1^1;
  15. sbit IN3=P1^2;
  16. sbit IN4=P1^3;
  17. //以上為電機(jī)驅(qū)動(dòng)板輸入引腳定義,
  18. //IN1和IN2控制左輪電機(jī),輸出對(duì)應(yīng)的OU1和OUT2接左輪電機(jī),
  19. //IN3和IN4控制右輪電機(jī),輸出對(duì)應(yīng)的OU3和OUT4接右輪電機(jī)

  20. //宏定義
  21. #define L_go      IN1=0;IN2=1 //左輪前進(jìn)
  22. #define L_back    IN1=1;IN2=0 //左輪后退   
  23. #define L_stop    IN1=0;IN2=0        //左輪停止,兩個(gè)輸出1也可以
  24. #define R_go            IN3=0;IN4=1 //右輪前進(jìn)
  25. #define R_back          IN3=1;IN4=0 //右輪后退
  26. #define R_stop          IN3=0;IN4=0 //右輪停止,兩個(gè)輸出1也可以


  27. //入口函數(shù)
  28. void main(void)
  29. {
  30.         R_go;                        //右輪前進(jìn)
  31.         while(1);
  32. }
復(fù)制代碼


  1. /***************************************************************************
  2. 標(biāo)題:左輪前進(jìn)
  3. 平臺(tái):LY5A-L2B開(kāi)發(fā)板
  4. 作者:        林洋電子工作室-單片機(jī)
  5. 客服QQ:52927029
  6. 郵箱:        52927029@qq.com
  7. 說(shuō)明:        本程序主要是用來(lái)做接線調(diào)試使用,左輪前進(jìn),即前進(jìn)方向的左邊輪子,
  8.                         如果實(shí)際寫入程序測(cè)試電機(jī)向后轉(zhuǎn)(后退),將電機(jī)兩線調(diào)換一下即可。
  9. ******************************************************************************/

  10. //頭文件:
  11. #include <reg52.h>

  12. //IO引腳定義:

  13. sbit IN1=P1^0;               
  14. sbit IN2=P1^1;
  15. sbit IN3=P1^2;
  16. sbit IN4=P1^3;
  17. //以上為電機(jī)驅(qū)動(dòng)板輸入引腳定義,
  18. //IN1和IN2控制左輪電機(jī),輸出對(duì)應(yīng)的OU1和OUT2接左輪電機(jī),
  19. //IN3和IN4控制右輪電機(jī),輸出對(duì)應(yīng)的OU3和OUT4接右輪電機(jī)

  20. //宏定義
  21. #define L_go      IN1=0;IN2=1 //左輪前進(jìn)
  22. #define L_back    IN1=1;IN2=0 //左輪后退   
  23. #define L_stop    IN1=0;IN2=0        //左輪停止,兩個(gè)輸出1也可以
  24. #define R_go            IN3=0;IN4=1 //右輪前進(jìn)
  25. #define R_back          IN3=1;IN4=0 //右輪后退
  26. #define R_stop          IN3=0;IN4=0 //右輪停止,兩個(gè)輸出1也可以


  27. //入口函數(shù)
  28. void main(void)
  29. {
  30.         L_go;                        //左輪前進(jìn)
  31.         while(1);
  32. }
復(fù)制代碼



作者: 亙黑鹿    時(shí)間: 2016-5-16 16:20
看來(lái)只好湊錢開(kāi)啟終身裝逼模式了
作者: HYJ0414    時(shí)間: 2017-6-5 17:42
有沒(méi)有仿真
作者: lidahu    時(shí)間: 2017-9-28 21:33
好貼,不錯(cuò),正適用。
作者: Fan7    時(shí)間: 2018-3-26 15:27
有點(diǎn)厲害啊,非常有幫助
作者: Fan7    時(shí)間: 2018-3-26 15:32
非常有幫助的有,厲害厲害!
作者: Fan7    時(shí)間: 2018-3-26 15:33
共享資料的黑幣獎(jiǎng)勵(lì)!
作者: 釘宮音的夏娜    時(shí)間: 2018-4-15 22:37
謝謝!
作者: ycy755343547    時(shí)間: 2018-4-19 15:38
資料是好,錢不夠。囧
作者: 植樹人    時(shí)間: 2018-4-28 13:03
學(xué)習(xí)了

作者: edclaseryue    時(shí)間: 2018-7-21 09:35
真的很贊
作者: 江渚鷺鷥    時(shí)間: 2019-5-28 02:27
好啊,是真的挺好的
作者: MartinWu    時(shí)間: 2019-5-28 13:12
謝謝分享!!!
作者: 輸縮贏盈沖    時(shí)間: 2019-6-28 03:18
謝謝下載學(xué)習(xí)下
作者: cyc111    時(shí)間: 2019-7-1 15:11
加個(gè)按鍵鍵控制的該多好
作者: 1122zdc    時(shí)間: 2019-7-12 10:16
學(xué)習(xí)學(xué)習(xí)
作者: 嘟嘟胖子    時(shí)間: 2019-7-17 15:25
備注的很詳細(xì),資料不錯(cuò),學(xué)習(xí)一下 ...
作者: beryl6565    時(shí)間: 2019-10-27 23:05
可以發(fā)一下相關(guān)的仿真電路圖嗎?
作者: beryl6565    時(shí)間: 2019-10-27 23:05
可以發(fā)一下相關(guān)的仿真電路圖嗎?
作者: dkkjj    時(shí)間: 2019-11-12 17:00
給力非常棒
作者: bigtong    時(shí)間: 2019-12-9 16:18
你好,樓主,我用你的程序,但是我的電機(jī)不轉(zhuǎn)是為什么

作者: Lesliec    時(shí)間: 2021-6-9 23:12
終于找到了PWM調(diào)速程序呀,愛(ài)了愛(ài)了
作者: 191641913413704    時(shí)間: 2025-4-30 20:33
還是好人多啊




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩电影一区二区三区 | 先锋资源吧| 日韩图区 | 久久久男人的天堂 | 亚洲欧美视频 | 五月天婷婷丁香 | 在线观看黄视频 | 黄视频网址 | 亚洲综合区 | 免费在线视频一区二区 | 成人国产精品久久久 | 精品国产视频 | 久久国产精品一区二区三区 | 久久久久国产一区二区三区四区 | 精品av | 久久国产婷婷国产香蕉 | 特级生活片 | 香蕉91| 国产精品一区二区三级 | 91麻豆精品国产91久久久久久久久 | 亚洲欧美在线观看 | 国产不卡一区在线观看 | 成年无码av片在线 | av黄色免费在线观看 | 狠狠操狠狠操 | 欧美二三区 | 欧美大片在线观看 | 久久久久久久久久久福利观看 | 波多野结衣电影一区 | 午夜精品久久久久久久久久久久 | 九一视频在线播放 | 欧美精品一区在线发布 | 九九久久国产 | 九九久久久久久 | 国产一区二区精品 | 日本成人一区二区 | 日本黄色大片免费 | 美女天堂| 一区二区在线观看免费视频 | www.一区二区三区 | 成人二区 |