首页 - 新闻 - 51单片机控制直流电机电路图_51单片机控制24V电机原理图

51单片机控制直流电机电路图_51单片机控制24V电机原理图

2023-09-18 22:10

本文目录一览:

  • 1、用单片机控制直流电机转动和停止?1盏灯来表示!
  • 2、求助51单片机通过uln2003控制继电器驱动直流电机的C语言和电路图,谢谢了
  • 3、求51单片机控制直流电机正转反转的原理图
  • 4、用AT89C51单片机实现直流电机PWM调速原理图
  • 5、51单片机怎么控制大功率的直流电机,麻烦给下电路图,谢啦。主要是驱动那怎么设计

用单片机控制直流电机转动和停止?1盏灯来表示!

特地为你制作的一个按钮改变LED亮/灭(电机启/停)的原理图和程序。

汇编程序:

         ORG0000H;复位后LED灭

MAIN:    JB P3.2,MAIN;等待按钮动作

         ACALL DELAY_50MS;按钮去抖动延时50毫秒

         JB P3.2,MAIN;确认按钮动作                       

         CPL P1.0;LED动作取反

         JNB P3.2,$;等待按钮释放

         SJMP MAIN

DELAY_50MS:MOV R2,#50;延时子程序

LOOP:      MOV R3,#200

LOOP1:     NOP

           NOP

           DJNZ R3,LOOP1

           DJNZ R2,LOOP

           END 

           

C语言程序:

#include REG51.H

#include intrins.h

#define uchar unsigned char

#define LED P1^0//LED引脚定义

#define KEY P3^2//按钮引脚定义

void DELAY(uchar MS);//延时函数声明

void main()

{

 while(1)

  {

   while(KEY);//等待按钮动作

   DELAY_50MS(50);//按钮去抖动延时50毫秒

   if(!KEY)LED = ~LED;//确认按钮动作,LED动作取反

   while(!KEY);//等待按钮释放

  }

}

void DELAY(uchar MS)

{

 uchar i;

 for(;MS0;MS--)

 for(i = 200;i0;i--)

 {

  _nop_();

  _nop_();

 }

}

求助51单片机通过uln2003控制继电器驱动直流电机的C语言和电路图,谢谢了

LN2003也是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平,继电器得电吸合。

#includestc.h

#define it unsigned int

sbit s0=P3^2;//两个按钮

sbit s1=P3^3;//两个按钮

sbit j0=P3^4;//继电器控制口,这3个IO口要和你实际电路去更改。

void ys(it); //声明延时函数

void main()

{

while(1)

{

if(s0==0) //判断S按键是否按下 {

ys(5000); //延时消抖

if(s0==0) //在次判断按键是否真的按下(在次判断很有必要)

{

j0=1; //让继电器关闭

while(s0==0); //判断S按键是否放开,如果没有放开继续等待。放开后执行下面的代码。

}

}

if(s1==0) //判断S按键是否按下 {

ys(5000);

if(s1==0)

{

j0=0; //让继电器打开

while(s1==0);

}

}

}

}

void ys(it a) //延时函数

{

it x;

for(x=0;x5000;x++)

for(x=0;xa;x++);

}

求51单片机控制直流电机正转反转的原理图

如果是直流微电机,典型的控制电路如图:

如果功率稍大的直流电机,晶体管换成继电器,两个继电器就可以,如果是大型动力用电机可以用可控硅等等但我没弄过。

用AT89C51单片机实现直流电机PWM调速原理图

正在做AT89S52的PWM调速,应该是一样的

#includereg52.h

#define uchar unsigned char

sbit zz=P1^0;

sbit fz=P1^1;

sbit K1=P3^2;

sbit K2=P3^3;

uchar PWM,a=0;

void main()

{

TMOD=0X01;

TH0=0XFF;

TL0=0XF6;

TR0=1;

ET0=1;

EA=1;

PWM=40;

zz=1;

fz=1;

while(1)

{

if(!K1)

{

PWM+=10;

}

if(!K2)

{

PWM-=10;

}

if(PWM=100)

PWM=1;

if(PWM=0)

PWM=99;

}

}

void timer0() interrupt 1

{

TH0=0XFF;

TL0=0XF6;

a++;

if(a=100)

a=0;

if(a=PWM)

{

zz=0;

}

else

{

zz=1;

}

}

51单片机怎么控制大功率的直流电机,麻烦给下电路图,谢啦。主要是驱动那怎么设计

看了这么多回答的,还是我给你一个答案吧!

答案见插图。解释如下:

1:你说的大功率直流电机,用三极管肯定驱动不了,必须要大功率的MOSFET或者IGBT去驱动,IGBT或者MOSFET可以买Infineon的。主电路结构最好采用H桥电路,可以双极性正反调速。

2:H桥的上管可以用IR2110来驱动,这个芯片自己提供了一个自举功能,上管MOSFET(或IGBT)的源极电压是浮动的,自举电路可以保证上管的栅源之间的电压在开启电压阈值之上。

3:你想要用51单片机实现调速,只需要用51单片机的P0~P3口产生两组互相反相的PWM波(注意两组之间要有死区),输出到IR2110的HIN和LIN。至于程序,就很简单了,不用我多说,你懂的。呵呵……