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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機控制L298N驅動兩臺直流電機的智能小車程序

  [復制鏈接]
跳轉到指定樓層
樓主
51單片機芯片控制的L298N驅動兩臺直流電機的智能小車程序

包含
1-左輪前進(接線調試)
2-右輪前進(接線調試)
3-前進后退
4-PWM調速前進后退

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


部分源碼預覽:
  1. /***************************************************************************
  2. 標題:前進后退測試
  3. 平臺:LY5A-L2B開發板
  4. 作者:        林洋電子工作室-單片機
  5. 說明:使用定時器來輸出PWM信號,通過調節占空比實現調速
  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. //以上為電機驅動板輸入引腳定義,
  15. //IN1和IN2控制左輪電機,輸出對應的OU1和OUT2接左輪電機,
  16. //IN3和IN4控制右輪電機,輸出對應的OU3和OUT4接右輪電機

  17. sbit L_PWM=P1^4;           //左輪調速,接驅動模塊ENA使能端,在這里輸入PWM信號
  18. sbit R_PWM=P1^5;           //右輪調速,接驅動模塊ENB使能端,在這里輸入PWM信號


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

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

  33. //數據定義
  34. unsigned char l_tt=0;        //定時器計數用

  35. unsigned char l_Lpwm=0;        //左輪PWM占空比值,我們設計10個格,0-9,0為停止,9為全速
  36. unsigned char l_Rpwm=0;        //右輪PWM占空比值,我們設計10個格,0-9,0為停止,9為全速


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

  58. //延時
  59. void Delay(unsigned int t)
  60. {
  61.         unsigned int c;
  62.         while(t--){
  63.                 c=10000;
  64.                 while(c--);
  65.         }
  66. }
  67. //入口函數
  68. void main(void)
  69. {
  70.         unsigned char i;
  71.         EA=1;                                                //首先開啟總中斷
  72.         TMOD|=0X11;                        //定時器方式1,16位計數器,用來計數時間
  73.         TH0= 0XFC;                  //1ms定時
  74.         TL0= 0X14;
  75.         TR0= 1;
  76.         ET0= 1;
  77.        
  78.         while(1){
  79.                 l_Lpwm=0;
  80.                 car_go;                        //前進
  81.                 for(i=0;i<10;i++){//慢慢提速
  82.                         l_Lpwm++;       
  83.                         l_Rpwm++;
  84.                         Delay(2);
  85.                 }               
  86.                 Delay(5);                                        //保持速度前進一會
  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. }
復制代碼

  1. /***************************************************************************
  2. 標題:前進后退測試
  3. 平臺:LY5A-L2B開發板
  4. 作者:        林洋電子工作室-單片機
  5. 客服QQ:52927029
  6. 郵箱:        52927029@qq.com
  7. 說明:當1和2兩個接線調試程序測試通過后,就可以用此程序進行前進后退實驗
  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. //以上為電機驅動板輸入引腳定義,
  17. //IN1和IN2控制左輪電機,輸出對應的OU1和OUT2接左輪電機,
  18. //IN3和IN4控制右輪電機,輸出對應的OU3和OUT4接右輪電機

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

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


  33. //延時
  34. void Delay(unsigned int t)
  35. {
  36.         unsigned int c;
  37.         while(t--){
  38.                 c=10000;
  39.                 while(c--);
  40.         }
  41. }
  42. //入口函數
  43. void main(void)
  44. {
  45.         while(1){
  46.                 car_go;                        //前進
  47.                 Delay(10);
  48.                
  49.                 car_back;                //后退
  50.                 Delay(10);
  51.         }
  52. }
復制代碼
  1. /***************************************************************************
  2. 標題:右輪前進
  3. 平臺:LY5A-L2B開發板
  4. 作者:        林洋電子工作室-單片機
  5. 客服QQ:52927029
  6. 郵箱:        52927029@qq.com
  7. 說明:        本程序主要是用來做接線調試使用,右輪前進,即前進方向的右邊輪子,
  8.                         如果實際寫入程序測試電機向后轉(后退),將電機兩線調換一下即可。
  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. //以上為電機驅動板輸入引腳定義,
  18. //IN1和IN2控制左輪電機,輸出對應的OU1和OUT2接左輪電機,
  19. //IN3和IN4控制右輪電機,輸出對應的OU3和OUT4接右輪電機

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


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


  1. /***************************************************************************
  2. 標題:左輪前進
  3. 平臺:LY5A-L2B開發板
  4. 作者:        林洋電子工作室-單片機
  5. 客服QQ:52927029
  6. 郵箱:        52927029@qq.com
  7. 說明:        本程序主要是用來做接線調試使用,左輪前進,即前進方向的左邊輪子,
  8.                         如果實際寫入程序測試電機向后轉(后退),將電機兩線調換一下即可。
  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. //以上為電機驅動板輸入引腳定義,
  18. //IN1和IN2控制左輪電機,輸出對應的OU1和OUT2接左輪電機,
  19. //IN3和IN4控制右輪電機,輸出對應的OU3和OUT4接右輪電機

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


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


評分

參與人數 5黑幣 +93 收起 理由
Ca1m + 5 共享資料的黑幣獎勵!
1261280117 + 5 很給力!
kikiikllll + 3 很給力!
map0391 + 30 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:121114 發表于 2016-5-16 16:20 | 只看該作者
看來只好湊錢開啟終身裝逼模式了
回復

使用道具 舉報

板凳
ID:205862 發表于 2017-6-5 17:42 | 只看該作者
有沒有仿真
回復

使用道具 舉報

地板
ID:233330 發表于 2017-9-28 21:33 | 只看該作者
好貼,不錯,正適用。
回復

使用道具 舉報

5#
ID:297298 發表于 2018-3-26 15:27 | 只看該作者
有點厲害啊,非常有幫助
回復

使用道具 舉報

6#
ID:297298 發表于 2018-3-26 15:32 | 只看該作者
非常有幫助的有,厲害厲害!
回復

使用道具 舉報

7#
ID:297298 發表于 2018-3-26 15:33 | 只看該作者
共享資料的黑幣獎勵!
回復

使用道具 舉報

8#
ID:301443 發表于 2018-4-15 22:37 | 只看該作者
謝謝!
回復

使用道具 舉報

9#
ID:61280 發表于 2018-4-19 15:38 | 只看該作者
資料是好,錢不夠。囧
回復

使用道具 舉報

10#
ID:220472 發表于 2018-4-28 13:03 | 只看該作者
學習了
回復

使用道具 舉報

11#
ID:374904 發表于 2018-7-21 09:35 | 只看該作者
真的很贊
回復

使用道具 舉報

12#
ID:372154 發表于 2019-5-28 02:27 | 只看該作者
好啊,是真的挺好的
回復

使用道具 舉報

13#
ID:549212 發表于 2019-5-28 13:12 | 只看該作者
謝謝分享!!!
回復

使用道具 舉報

14#
ID:570839 發表于 2019-6-28 03:18 | 只看該作者
謝謝下載學習下
回復

使用道具 舉報

15#
ID:572744 發表于 2019-7-1 15:11 | 只看該作者
加個按鍵鍵控制的該多好
回復

使用道具 舉報

16#
ID:582784 發表于 2019-7-12 10:16 | 只看該作者
學習學習
回復

使用道具 舉報

17#
ID:580104 發表于 2019-7-17 15:25 | 只看該作者
備注的很詳細,資料不錯,學習一下 ...
回復

使用道具 舉報

18#
ID:630776 發表于 2019-10-27 23:05 來自手機 | 只看該作者
可以發一下相關的仿真電路圖嗎?
回復

使用道具 舉報

19#
ID:630776 發表于 2019-10-27 23:05 來自手機 | 只看該作者
可以發一下相關的仿真電路圖嗎?
回復

使用道具 舉報

20#
ID:626667 發表于 2019-11-12 17:00 | 只看該作者
給力非常棒
回復

使用道具 舉報

21#
ID:437948 發表于 2019-12-9 16:18 | 只看該作者
你好,樓主,我用你的程序,但是我的電機不轉是為什么
回復

使用道具 舉報

22#
ID:927901 發表于 2021-6-9 23:12 | 只看該作者
終于找到了PWM調速程序呀,愛了愛了
回復

使用道具 舉報

23#
ID:1149384 發表于 2025-4-30 20:33 | 只看該作者
還是好人多啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 51ⅴ精品国产91久久久久久 | 欧美在线看片 | 亚洲h色| 亚洲一区二区免费电影 | 成年人在线观看视频 | 午夜视频一区二区 | 免费 视频 1级 | 国产伦精品一区二区三区视频金莲 | 91资源在线 | 97色综合 | 久久999| 懂色av色香蕉一区二区蜜桃 | 精品九九 | 蜜桃毛片 | 国产精品区一区二区三 | 亚洲一区有码 | 日韩视频在线播放 | 黑色丝袜三级在线播放 | 亚洲乱码一区二区三区在线观看 | 亚洲精品乱码久久久久久按摩 | 一区二区三区四区国产 | 欧美一区二区三区在线 | 国产在视频一区二区三区吞精 | 久久夜色精品国产 | 一级无毛片| 91久久久www播放日本观看 | 亚洲视频在线观看 | 日韩在线视频精品 | 久久久久国产视频 | 成人小视频在线观看 | 中文字幕乱码视频32 | 日本网站免费在线观看 | av网站免费看 | 国产精品免费一区二区 | 97精品一区二区 | 激情五月婷婷在线 | 欧美日韩在线一区二区三区 | 1级黄色大片| 中文字幕爱爱视频 | 亚洲性人人天天夜夜摸 | 免费 视频 1级 |