单片机控制电机正反转动的c语言程序

如题所述

首先要看你的电机是直流电机还是步进电机。直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。比如让单片机P1.0 = 0,P1.1 = 1;(单片机I/0口要与电机驱动芯片的输入脚相连)这样的话,电机驱动芯片就会输出一个电压差,可以使直流电机向一个方向转,如果使P1.0 = 1,P1.1 = 0,则电机驱动芯片会输出一个和刚才相反的电压,使电机向相反的方向转动。H桥电路和电机驱动芯片的原理差不多,网上多的是。我这说的只是简单的原理,实际中,L298N的输入端和单片机相连的时候要加光耦隔离,否则单片机会工作不正常。步进电机就稍微复杂点,也得需要电机驱动芯片才行,只不过控制信号是按一定的规律给的,规律变了,电机转动的方向也就变了。楼上给出的貌似是步进电机的驱动程序。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-25
给你个能正反转的!
#include<reg51.h>
#include<intrins.h>

unsigned char code table[]={0x01,0x02,0x04,0x08};
unsigned char code table0[]={0x08,0x04,0x02,0x01};
void delay(unsigned char ms)
{
unsigned char i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}

void main()
{
unsigned char i;
while(1)
{

for(i=0;i<4;i++)
{
P0=table[i];
delay(100);
}
}
}
如果反转的话把table改为table0就行了本回答被提问者采纳