找回密码
 立即注册

QQ登录

只需一步,快速开始

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

解决51单片机+74hc595+L293D驱动两个电机正反转的方法

[复制链接]
跳转到指定楼层
楼主
ID:437993 发表于 2018-12-4 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      首先感谢上次发贴求助中回复的大侠cjm82,经过反复接线和研究程序,终于解决了L293D+74hc595驱动电机正反转的问题,这里把解决时遇到的问题和方法理一下:1、驱动电机正反转的顺序:  通过单片机89C52 IO口向74hc595发送正反转的数据 正转0x08(0001 1000) 反转0x06(0000 0110)----------74hc595接收数据后输出-----------L293D接收到数据-------驱动电机正反转
2、根据顺序 首选解决单片机是否成功发送数据给74hc595,595是否成功将数据输出,这里搞了一个下午,74hc595一直未成功输出,Q0-Q7全是高电平,经过换了一组单片机的IO口 将原来的P1^0-3换成了P3^4.6.5 72hc595成功输出,我也不知道为什么这样 请大家指点
3、L293D接收到数据后电机还是不转 经过大侠cjm82的指点,将两个PWM2(AB)接入单片机IO口电机不转,都直接接入5v vcc 电机就工作了 正反都能控制,这里只能控制正反转,而且电压还有点低,也不能调速,这个再继续学习,希望大家发点教程。
以下是程序和接线图:   72hc595 及  L293D 电路图见上一个贴
#include <REGX52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
sbit SER=P3^4;
sbit SCK=P3^6;
sbit RCK=P3^5;
sbit PWM2A=P1^3;  //未使用  接上不转
sbit PWM2B=P1^4;  //未使用  接上不转

void HC595SendData(unsigned char SendVal)//发一字节
{  
  unsigned char i;
for(;i<8;i++)
   {
           SER = SendVal>>7;         
       SendVal= SendVal<<1;      

          SCK = 1;         
        _nop_();
        _nop_();

        SCK = 0;   
                 RCK=1;
        _nop_();
  _nop_();
        RCK=0;
   }                   
} void main()
{
        //PWM2A=1;
        //PWM2B=1;
        HC595SendData(0x18);//0001 0100  正转
        //HC595SendData(0x06);//0000 0110  反转
          while(1);
}




评分

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

查看全部评分

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

使用道具 举报

沙发
ID:485708 发表于 2019-3-28 19:03 | 只看该作者
你好,我也是买了这个板子,好几天按照你的接线图与源代码进行实验却成功不了(电机不转),按你的说法你做成功了,能分享一下吗,我是新手。谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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