电子工程师技术服务社区
- 社区首页
- 下载
- 1相2线直流电机程序.zip
资料描述
51单片机学习6-- 1相2线直流电机
因为51单片机的io输出电流难以到达驱动电机,因此需要加一个驱动ic(uln2003系列)驱动小型电机
需要注意的是protues仿真中uln2003的输出需要加上拉电阻
原理图如下:
下面的例子控制电机的转身用延时函数来实现
程序如下:
#include
#define uint unsigned int
#define uchar unsigned char
void motor1();
void motor2();
void motor3();
void delay_ms(uint);
void delay_50us(uint);
void key();
sbit key1=p3^2; //正转
sbit key2=p3^3; //反转
sbit key3=p3^4; //停止
uchar flag1;
uchar flag2;
uchar flag3;
void main()
{
while(1)
{
key();
if(flag1==1)
motor1();
if(flag2==1)
motor2();
if(flag3==1)
motor3();
}
}
void key() //按键调速子程序
{
if(key1==0) //正转
{
delay_ms(10);
if(key1==0)
{
flag1=1;
flag2=0;
flag3=0;
}
while(!key1);
}
if(key2==0) //反转
{
delay_ms(10);
if(key2==0)
{
flag1=0;
flag2=1;
flag3=0;
}
while(!k