用单片机控制直流电机转动和停止?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(;MS>0;MS--)
for(i = 200;i>0;i--)
{
_nop_();
_nop_();
}
}
可是这样不是没有把直流电机表示出来吗?
“用单片机控制直流电机转动和停止?1盏灯来表示!”,这是你说的。所以楼上楼下都着这么回答你,要控制直流电机需要再加一个三极管,把“1盏灯”换成一个三极管,是这个意思吗?还是既要1盏灯也要电机驱动?
2024-10-29 广告
直流电机有两根线,分别简称为正和负
第一种情况,当正接电源负接地的时候,电机正转
第二种情况,当正接地负接电源的时候,电机反转
第三种情况,当正和负都接电源或者都接地的时候,电机停止
综上,51单片机通过IO口连接电机的正和负
然后给高低电平,就可以控制直流电机正转和反转了。
sbit KEY1 = P2 ^ 0; //设置按键接在P2.0
sbit KEY2 = P2 ^ 1; //设置按键接在P2.1
sbit LED = P2 ^ 1; //设置显示接在P2.2
/*********************************************************************************************/
/*********************************************************************************************/
void main( )
{
LED=1;//单片机端口0有效,先设置为1,停止运转
while(1)
{
if(KEY1 == 0) { LED=0; }//如果按下启动键,则点亮LED,电机运转
if(KEY2 == 0) { LED=1; }//如果按下停止键,则熄灭LED,电机停转
}
}
/*********************************************************************************************/
/*********************************************************************************************/
单片机控制直流电机转动和停止 仿真实例,供参考