找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機+L298N驅(qū)動直流電機并進行調(diào)速程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:454905 發(fā)表于 2018-12-25 21:35 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機 L298N驅(qū)動直流電機并進行調(diào)速

電路原理圖如下:


單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned  int
  4. uchar pwm,num;
  5. sbit EN=P1^0;
  6. sbit IN1=P1^1;
  7. sbit IN2=P1^2;
  8. sbit key_zhengzhuan=P3^0;
  9. sbit key_fanzhuan=P3^1;
  10. sbit key_jiasu=P3^2;
  11. sbit key_jiansu=P3^3;
  12. sbit led_jiashu=P1^3;
  13. sbit led_jianshu=P1^4;
  14. void delay(uint z)
  15. {
  16.      uint x,y;
  17.          for(x=z;x>0;x--)
  18.              for(y=110;y>0;y--);
  19. }
  20. void init()
  21. {
  22.     TMOD=0x02;   
  23.         TH0=210;   
  24.         TL0=210;     
  25.         TR0=1;      
  26.         ET0=1;      
  27.         EA=1;        
  28. }
  29. void key_control()
  30. {
  31.      if(key_zhengzhuan==0)
  32.          {
  33.              delay(5);
  34.                  if(key_zhengzhuan==0)
  35.                  {                  
  36. //                      EN=0;
  37.                           IN1=1;
  38.                           IN2=0;
  39.                  }
  40.          }
  41.          if(key_fanzhuan==0)
  42.          {
  43.              delay(5);
  44.                  if(key_fanzhuan==0)
  45.                  {                  
  46. //                      EN=1;
  47.                           IN1=0;
  48.                           IN2=1;
  49.                  }
  50.          }
  51.          if(key_jiasu==0)
  52.          {
  53.              delay(5);
  54.           if(key_jiasu==0)
  55.           {
  56.                  if(pwm<250)
  57.                  {                  
  58.                      pwm++;
  59.                  }
  60.           }
  61.          }
  62.          if(key_jiansu==0)
  63.          {
  64.              delay(5);
  65.            if(key_jiansu==0)
  66.            {
  67.                  if(pwm>0)
  68.                  {                  
  69.                      pwm--;
  70.                  }
  71.            }
  72.          }
  73. }
  74. void main()
  75. {
  76.      init();
  77.          pwm=30;
  78.      while(1)
  79.          {
  80.              key_control();
  81.          }
  82. }
  83. void T0_time() interrupt 1
  84. {
  85.          num++;
  86.          if(num==250)
  87.          num=0;
  88.          if(num<pwm)
  89.                EN=1;
  90.          else  
  91.                EN=0;
  92. }
復(fù)制代碼

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

使用道具 舉報

沙發(fā)
ID:416262 發(fā)表于 2018-12-25 21:48 | 只看該作者
我也試試
回復(fù)

使用道具 舉報

板凳
ID:883427 發(fā)表于 2021-2-7 19:04 | 只看該作者
測試成功了,感謝博主分享
回復(fù)

使用道具 舉報

地板
ID:1044659 發(fā)表于 2022-10-19 20:36 | 只看該作者
為什么我的IN1和IN2一起接,電機不動,只接IN1或IN2才能動
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表