找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2638|回复: 5
收起左侧

Arduino的L293D模块怎么用51单片机控制?求连线方式

[复制链接]
ID:703220 发表于 2020-3-10 11:49 | 显示全部楼层 |阅读模式
正面.jpg 直接上图。
提问背景:我是一个刚学51单片机的小白,并且51单片机是我接触的第一款硬件。所以很多学习方法都不会,比如查资料,如何查看芯片的手册方面都无从下手。 在看视频学完基本的PWM原理后,我打算自己尝试用51最小系统来控制电机的转动做一个小车的实验。于是在某宝买了小车平台,51最小系统,以及最让我头疼的上图中的板子。这个板子是专门为Arduino设计的,用来驱动电机的模块,板子上有两个L293D和一个74HC595芯片。但我确定这个板子可以用51来控制(我见到了成品,只是联系不上作者),于是我查阅了好多天的材料,试验了很多次,始终没有将电机驱动起来(哪怕是转一圈,我也不哭了)
我的设计过程以及连线:(以下带圈的数字分别对应图中的数字)
①、⑤:接四个直流电机
⑥:电源与最小系统板上的VCC、GND分别相连,实现最小系统给这块板子供电
11号数字引脚接在最小系统的P10端(我在编程里将P10端输出PWM)

**********************************************************************************
代码部分
#include <reg52.h>

//--定义使用的IO口--//
sbit PWM=P1^0;

//--定义一个全局变量--//
unsigned char timer1;

void Time1Config();

/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void main(void)
{
        Time1Config();
        while(1)
        {
                if(timer1>100)  //PWM周期为100*0.5ms
                {
                        timer1=0;
                }
                if(timer1 < 30)        //改变30这个值可以改变直流电机的速度
                {
                        PWM=1;
                }
                else
                {
                        PWM=0;
                }
        }
        

}

/*******************************************************************************
* 函 数 名       : Time1Config
* 函数功能                 : 设置定时器
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void Time1Config()
{
        TMOD|= 0x10;   //设置定时计数器工作方式1为定时器

        //--定时器赋初始值,12MHZ下定时0.5ms--//  
        TH1 = 0xFE;
        TL1 = 0x0C;

        
        ET1 = 1;          //开启定时器1中断
        EA = 1;
        TR1 = 1;         //开启定时器        
}

/*******************************************************************************
* 函 数 名       : Time1
* 函数功能                 : 定时器1的中断函数
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void Time1(void) interrupt 3    //3 为定时器1的中断号  1 定时器0的中断号 0 外部中断1 2 外部中断2  4 串口中断
{
        TH1 = 0xFE;  //重新赋初值
        TL1 = 0x0C;
        timer1++;   
}




求大神们指点一下关于连线和程序错误的方面,感激不尽!!!!!!!
正.jpg
回复

使用道具 举报

ID:648281 发表于 2020-3-10 13:45 | 显示全部楼层
找一下原理图看看吧,单看实物不好说
回复

使用道具 举报

ID:703220 发表于 2020-3-10 14:01 | 显示全部楼层
不要沉啊
回复

使用道具 举报

ID:703220 发表于 2020-3-10 15:36 | 显示全部楼层
51hei**1140 发表于 2020-3-10 13:45
找一下原理图看看吧,单看实物不好说

原理图看了很多,不理解,但愿有用过的高手看到吧
回复

使用道具 举报

ID:703117 发表于 2020-4-18 17:48 | 显示全部楼层
我仿真会动,实物电机不会动,贴主你搞好了吗?
51hei图片_20200418174238.jpg
回复

使用道具 举报

ID:734491 发表于 2020-4-22 20:44 | 显示全部楼层
请问楼主弄好了吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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