找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机控制直流电机正反转Proteus仿真图代码

[复制链接]
跳转到指定楼层
楼主
1、运行时,按下相应的按键,电机即可产生正转、反转、停止的效果。同时相应的 LED 指示灯也会点亮。
    当 P1.0 输出低电平时:Q3,Q2 截止,Q7,Q1 导通,电机左端输出高电平;
        P1.1 输出高电平时:Q8,Q4 截止,Q6,Q5 导通,电机右端输出低电平,此时,电机正转。
    反之,当 P1.0 输出高电平时:Q3,Q2 导通,Q7,Q1 截止,电机左端输出低电平;
        P1.1 输出低电平时:Q8,Q4 导通,Q6,Q5 截止,电机右端输出高电平,此时,电机反转。
    当 P1.0 输出低电平时;P1.1 输出同时也输出低电平:电机两端均为高电平,电机停止转动。
2、需要注意的是,本例仅仅只是演示电机的正反转和停止的控制。在实际应用中,这种电路是不能稳定可靠的工作的。
具体实际应用电路,需要参考相关资料。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
按下 正转按键 电机正转


按下 反转按键 电机反转


按下 停止按键 电机停止


代码:
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. // 定义 3 个按键对应的引脚
  4. sbit K1 = P3^0;     // 正转
  5. sbit K2 = P3^1;     // 反转
  6. sbit K3 = P3^2;     //停止

  7. // 定义 3 个 LED 对应的引脚
  8. sbit LED1 = P0^0;
  9. sbit LED2 = P0^1;
  10. sbit LED3 = P0^2;

  11. //定义电机的两个引脚
  12. sbit MA = P1^0;  
  13. sbit MB = P1^1;

  14. void main(void) {
  15.     LED1 = 1;   // 开始 3 个 LED 全部熄灭
  16.     LED2 = 1;
  17.     LED3 = 1;
  18.         
  19.     while (1) {        
  20.         if (K1 == 0) {  // 判断那个按键按下
  21.             while (K1 == 0);   // 直到按键松开才进入下一步处理
  22.             LED1 = 0;
  23.             LED2 = 1;
  24.             LED3 = 1;
  25.             MA = 0;    // 正转
  26.             MB = 1;
  27.         }
  28.         if (K2 == 0) {
  29.             while (K2 == 0);
  30.             LED1 = 1;
  31.             LED2 = 0;
  32.             LED3 = 1;  
  33.             MA = 1;    // 反转
  34.             MB = 0;
  35.         }
  36.         if (K3 == 0) {
  37.             while (K3 == 0);
  38.             LED1 = 1;
  39.             LED2 = 1;
  40.             LED3 = 0;
  41.             MA = 0;    // 停止
  42.             MB = 0;
  43.         }
  44.     }
  45. }
复制代码

压缩包解压后的文件夹结构


Proteus8工程文件 路径


hex文件 路径


Keil4工程文件 路径


源文件 路径


各个文件所在文件夹压缩包51hei下载
电机正反转控制.rar (661.88 KB, 下载次数: 65)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:143767 发表于 2021-1-8 10:56 | 只看该作者
电机驱动电路过于复杂了,反而增加了出现故障的机会
回复

使用道具 举报

板凳
ID:866313 发表于 2021-1-8 13:17 | 只看该作者
dj3365191 发表于 2021-1-8 10:56
电机驱动电路过于复杂了,反而增加了出现故障的机会

我是在网上找到的,稍微整理了下
回复

使用道具 举报

地板
ID:866313 发表于 2021-1-8 13:17 | 只看该作者
dj3365191 发表于 2021-1-8 10:56
电机驱动电路过于复杂了,反而增加了出现故障的机会

原文
http://home.eeworld点com点cn/my/space-uid-139222-blogid-29212.html
回复

使用道具 举报

5#
ID:670675 发表于 2021-2-26 19:16 来自手机 | 只看该作者
是呀!这好复杂
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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