找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8987|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机+L298N驱动直流电机并进行调速程序

  [复制链接]
跳转到指定楼层
楼主
51单片机 L298N驱动直流电机并进行调速

电路原理图如下:


单片机源程序如下:
  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. }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:416262 发表于 2018-12-25 21:48 | 只看该作者
我也试试
回复

使用道具 举报

板凳
ID:883427 发表于 2021-2-7 19:04 | 只看该作者
测试成功了,感谢博主分享
回复

使用道具 举报

地板
ID:1044659 发表于 2022-10-19 20:36 | 只看该作者
为什么我的IN1和IN2一起接,电机不动,只接IN1或IN2才能动
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表