基于51单片机的直流电机驱动(L298)

发布者:SparklingSoul最新更新时间:2015-10-29 来源: eefocus关键字:51单片机  直流电机驱动  L298 手机看文章 扫描二维码
随时随地手机看文章
L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动,设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达)和开关电源晶体管。内部包含4通道逻辑驱动电路,其额定工作电流为 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 36 V;Vs 电压最大值也是 36 V。L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。
1,L298内部的原理图
[转载]基于51单片机的直流电机驱动(L298)


2,L298 引脚符号及功能
[转载]基于51单片机的直流电机驱动(L298)


3,L298的逻辑功能
[转载]基于51单片机的直流电机驱动(L298)


当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;;IN1与IN2相 同时,电机快速停止。当使能端为低电平时,电动机停止转动。
在对直流电动机电压的控制和驱动中,半导体功率器件(L298)在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式在线性放大驱动方式。
半导体功率器件工作在线性区优点是控制原理简单,输出波动小,线性好,对邻近电路干扰小,缺点为功率器件工作在线性区,功率低和散热问题严重。开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。
[转载]基于51单片机的直流电机驱动(L298)


#include    
#include                        
#define uchar unsigned char
#define uint unsigned int 
 
 
sbit MOTOR_A_1=P3^6;
sbit MOTOR_A_2=P3^7;   
sbit k1=P1^0; //定义k1为p1.0口
sbit k2=P1^1;   //定义k2为p1.1口
sbit k3=P1^2;   //定义k3为p1.2口
sbit k4=P1^3;   //定义k4为p1.3口
uchar T=0;   //定时标记
uchar W=0;   //脉宽值 0~100
uchar A=0;   //方向标记 0,1
uchar k=0;   //按键标记
uchar i=0;     //计数变量


uchar code table1[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};


uchar code table2[]={0xfe,0xfb,0xfd,0xf7};
 
void delayms(uint t);  
 
void disp(void)
{
P2=table2[3];
P0=table1[W]; //显示占空比个位
delayms(1); //延时1ms
P2=0xff; //P0清1


P2=table2[2];
P0=table1[W/100]; //显示占空比百位
delayms(1); //延时1ms
P2=0xff; //P0清1
  
P2=table2[1];
P0=table1[W/10];  //显示占空比十位
delayms(1); //延时1ms
P2=0xff;   //P0清1


P2=table2[0];
P0=table1[A];   //显示方向
delayms(1); //延时1ms
P2=0xff; //P0清1
}


 




void init(void)
{
//启动中断
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
//设置定时时间
TH0=0xff;
TL0=0xf6;
}


void timer0() interrupt 1
{     
//重置定时器时间
TH0=0xff;
TL0=0xf6;
T++; //定时标记加1 
disp(); //数码管显示
if(k==0)
{
if(T>W)
MOTOR_A_1 =0;
else
MOTOR_A_1 =1;
}
else
{
if(T>W)
MOTOR_A_2 =0;
else
MOTOR_A_2 =1;
}
 
if(T==100)
T=0; 
}
 
void delayms(uint t)
{
uchar j;
while(t--)
{
for(j=0;j<250;j++) //循环250次
{
  _nop_();             //系统延时          
      _nop_(); //系统延时
      _nop_(); //系统延时
      _nop_(); //系统延时
}
}
}
 
void key(void)           //按键判断程序
{
if(k1==0) //按键1按下
{
while(k1==0); //按键1抬起
if(W==100) //如果脉宽为100
W=0; //脉宽置0
else
W+=1; //否则加1
}
else if(k2==0) //按键2按下
{  
while(k2==0); //按键2抬起
if(W==0) //如果脉宽为0
W=100; //脉宽设置成100
else
W-=1; //否则减1
}
else if(k3==0) //按键3按下
{   
while(k3==0); //按键3抬起
A=!A; //方向标记取反
k=!k; //按键标记取反

else if(k4==0) //按键4按下
{   
while(k4==0); //按键4抬起
W=0; //脉宽清0
}
}

[page]
void main(void)
{


init(); /////////系统初始化 
while(1)  
{
if(k==0)
   MOTOR_A_2=0;
else
MOTOR_A_1=0;
key(); ////////查询按键
}
}L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动,设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达)和开关电源晶体管。内部包含4通道逻辑驱动电路,其额定工作电流为 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 36 V;Vs 电压最大值也是 36 V。L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。
1,L298内部的原理图
[转载]基于51单片机的直流电机驱动(L298)


2,L298 引脚符号及功能
[转载]基于51单片机的直流电机驱动(L298)


3,L298的逻辑功能
[转载]基于51单片机的直流电机驱动(L298)


当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;;IN1与IN2相 同时,电机快速停止。当使能端为低电平时,电动机停止转动。
在对直流电动机电压的控制和驱动中,半导体功率器件(L298)在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式在线性放大驱动方式。
半导体功率器件工作在线性区优点是控制原理简单,输出波动小,线性好,对邻近电路干扰小,缺点为功率器件工作在线性区,功率低和散热问题严重。开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。
[转载]基于51单片机的直流电机驱动(L298)


#include    
#include                        
#define uchar unsigned char
#define uint unsigned int 
 
 
sbit MOTOR_A_1=P3^6;
sbit MOTOR_A_2=P3^7;   
sbit k1=P1^0; //定义k1为p1.0口
sbit k2=P1^1;   //定义k2为p1.1口
sbit k3=P1^2;   //定义k3为p1.2口
sbit k4=P1^3;   //定义k4为p1.3口
uchar T=0;   //定时标记
uchar W=0;   //脉宽值 0~100
uchar A=0;   //方向标记 0,1
uchar k=0;   //按键标记
uchar i=0;     //计数变量


uchar code table1[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};


uchar code table2[]={0xfe,0xfb,0xfd,0xf7};
 
void delayms(uint t);  
 
void disp(void)
{
P2=table2[3];
P0=table1[W]; //显示占空比个位
delayms(1); //延时1ms
P2=0xff; //P0清1


P2=table2[2];
P0=table1[W/100]; //显示占空比百位
delayms(1); //延时1ms
P2=0xff; //P0清1
  
P2=table2[1];
P0=table1[W/10];  //显示占空比十位
delayms(1); //延时1ms
P2=0xff;   //P0清1


P2=table2[0];
P0=table1[A];   //显示方向
delayms(1); //延时1ms
P2=0xff; //P0清1
}


 




void init(void)
{
//启动中断
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
//设置定时时间
TH0=0xff;
TL0=0xf6;
}


void timer0() interrupt 1
{     
//重置定时器时间
TH0=0xff;
TL0=0xf6;
T++; //定时标记加1 
disp(); //数码管显示
if(k==0)
{
if(T>W)
MOTOR_A_1 =0;
else
MOTOR_A_1 =1;
}
else
{
if(T>W)
MOTOR_A_2 =0;
else
MOTOR_A_2 =1;
}
 
if(T==100)
T=0; 
}
 
void delayms(uint t)
{
uchar j;
while(t--)
{
for(j=0;j<250;j++) //循环250次
{
  _nop_();             //系统延时          
      _nop_(); //系统延时
      _nop_(); //系统延时
      _nop_(); //系统延时
}
}
}
 
void key(void)           //按键判断程序
{
if(k1==0) //按键1按下
{
while(k1==0); //按键1抬起
if(W==100) //如果脉宽为100
W=0; //脉宽置0
else
W+=1; //否则加1
}
else if(k2==0) //按键2按下
{  
while(k2==0); //按键2抬起
if(W==0) //如果脉宽为0
W=100; //脉宽设置成100
else
W-=1; //否则减1
}
else if(k3==0) //按键3按下
{   
while(k3==0); //按键3抬起
A=!A; //方向标记取反
k=!k; //按键标记取反

else if(k4==0) //按键4按下
{   
while(k4==0); //按键4抬起
W=0; //脉宽清0
}
}


void main(void)
{


init(); /////////系统初始化 
while(1)  
{
if(k==0)
   MOTOR_A_2=0;
else
MOTOR_A_1=0;
key(); ////////查询按键
}
}
关键字:51单片机  直流电机驱动  L298 引用地址:基于51单片机的直流电机驱动(L298)

上一篇:关于51单片机中C语言编写的精确延时函数
下一篇:STC89C5X单片机“看门狗”原理详解

推荐阅读最新更新时间:2024-03-16 14:37

AT89C51单片机和SHT15传感器对湿度智能监控系统的设计
1引言 弹药从出厂到部队作战或训练使用以前主要存放在仓库中。在长期的储存过程中,弹药虽然处于宏观静止状态。但其质量不断发生变化。这是因为弹药主要由金属和装药组成.在长期储存过程中,由于温,湿度的影响。金属会锈蚀.从而使金属部件的强度降低。表面机械性能变坏,严重影响弹药的使用.甚至会造成重大事故。温,湿度还会使弹药装药的物理和化学性质发生变化.从而使其失去应有的战技要求。因此,温,湿度是弹药质量发生变化的主要矛盾。根据我军的仓库条件、我国的气候条件和目前仓库的管理水平.通常规定最高温度不超过30℃.最大湿度不超过。70%.即通常所说的“三七”线。 传统弹药仓库的监控系统采用的是干,湿球湿度计、毛发湿度计、湿敏电阻器或由普通的温,
[单片机]
AT89C<font color='red'>51单片机</font>和SHT15传感器对湿度智能监控系统的设计
51单片机中断主要关于计时--定时--计算定时器初值--的简介
看到的关于中断 计时器定时器的介绍,个人看明白了。 目录: 1、单片机中断简介 2、中断允许寄存器IE 3、中断优先级寄存器IP 4、定时器中断 TMOD:定时器/计数器的工作方式寄存器,确定工作方式和功能。 TCON:控制寄存器,控制T0,T1的启动和停止及设置溢出标志。 工作方式 5、如何计算定时器的初值 6、中断服务程序的写法 7、代码示例 单片机中断简介 52单片机一共有6个中断源,它们的符号,名称以及各产生的条件分别如下: INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起 INT1 - 外部中断1,由P3.3端口线引入,低电平或下降沿引起 T0 - 定时器/计数器0中断, 由
[单片机]
<font color='red'>51单片机</font>中断主要关于计时--定时--计算定时器初值--的简介
51单片机实现printf
printf函数在格式化输出时,向下调用了char putchar(char c);这个函数,在“stdio.h”里可以发现有这个函数,所以我们需要自己构造一个这样的函数,即通过串口putchar(),代码如下: char putchar(char c)//重定向 { Uart_SendChar(c); return c; } void Uart_SendChar(unsigned char dat) { SBUF = dat; while(!TI); TI = 0; } 然后串口初始化之后,将 stdio.h 头文件包含,就可以使用printf函数了。 NOTE: 使用stdio库中的pr
[单片机]
采用二维模糊控制器和C8051单片机实现室内自然采光系统的设计
1、 引言 从远古的篝火、油灯到蜡烛、白炽灯,再到今天千家万户的荧光灯,人类已经基本适应了人工光源的室内照明环境。但是由于千万年来的环境影响,自然光仍然是人类最习惯、感觉最舒适的光源,自然采光一直受到建筑师和照明设计师的高度重视。当今社会建筑的节能环保需求更对自然采光照明提出了进一步的要求。《建筑采光设计标准》 中的国家技术经济政策指出: 建筑设计要充分利用天然光,创造良好的光环境。 对室内照明自然采光的研究具有重要的意义: (1) 资料表明,照明用电占整个商业建筑能耗的25 - 40% ,而自然采光在特定的情况下可以节省52% 的照明用电,大大节约了能源。 (2) 相关研究表明,人在自然光条件下工作,可以增加满意度和提高工作
[单片机]
采用二维模糊控制器和C80<font color='red'>51单片机</font>实现室内自然采光系统的设计
基于51单片机最小系统点亮一个灯的程序
51单片机最小系统 今天我们开始进行51单片机编程学习,首先我们要了解一下单片机工作需要的基本条件。前面的内容中我们知道了51单片机的引脚有电源引脚,时钟引脚,控制引脚,以及通用输入输出端口。那要怎样才能让单片机工作呢? 如果将单片机与人类比,那它的电源就像人的心脏;时钟信号就像人的脉搏;控制引脚就如人的五官;通用端口就如人的四肢;芯片内部的控制逻辑就如我们的神经系统。这么说的话我们就很容易确定单片机的最小系统了吧。首先我们需要给单片机供电,再给他提供时钟,然后配置它的控制电路,最后给它的引脚接上一些外部电路,据此我们就可以绘制出下图这个最小系统电路了。 例程实图 以上最小系统电路图中使用的是89C51单片机,因为它的功能
[单片机]
基于<font color='red'>51单片机</font>最小系统点亮一个灯的程序
51单片机超声波测距模块
//晶振=8M //MCU=STC10F04XE //P0.0-P0.6共阳数码管引脚 //Trig = P1^0 //Echo = P3^2 #include reg52.h //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long //*********************************************** sfr CLK_DIV = 0x97; //为STC单片机定义,系统时钟分频
[单片机]
使用AT89S51单片机制作红外遥控器,
本文档的主要内容详细介绍的是使用AT89S51单片机制作红外遥控器的资料和源代码详细说明。 一般红外电视遥控器的输出都是用编码后串行数据对38~40kHz的方波进行脉冲幅度调制而产生的。 当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。一般电视遥控器的遥控编码是连续的
[单片机]
8051单片机是几位机_8051单片机共有几个中断源
  8051单片机   8051是一种8位元的单芯片微控制器,属于MCS-51单芯片的一种,由英特尔公司于1981年制造。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,如Atmel、飞利浦、深联华等公司,相继开发了功能更多、更强大的兼容产品。   8051单芯片是同步式的顺序逻辑系统,整个系统的工作完全是依赖系统内部的时脉信号,用以来产生各种动作周期及同步信号。在8051单片机中已内建时钟产生器,在使用时只需接上石英晶体谐振器(或其它振荡子)及电容,就可以让系统产生正确的时钟信号。   8051单片机的构成   8051单片机主要有以下部分组成:   1、中央处理单元
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved