STC89C52单片机控制直流电动机的c程序

如题所述

第1个回答  2010-06-09
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar motor=P1^0;
sbit keystart=P2^0;
sbit keystop=P2^1;
void delay(uint x)
{
uchar j;
while(x--)
{
for(j=0;j<125;j++)
{;}
}
}
void main(void)
{
motor=0;
while(1)
{
if(keystart==1)
{
delay(10);
if(keystart==1)
motor=1;
else
motor=0;
while(keystart==1);
}
if(keystop==1)
{
delay(10);
if(keystop==1)
{
motor=0;
else
motor=1;
while(keystop==1);
}
}
}
}
第2个回答  2020-07-24
这些不只是程序问题,而是方案的问题,方案有了,程序就简单到没了,首先说直流电机的测速有用霍尔电流互感器做转速范围控制,有用编码器做精确控制等等,在说直流电机的正反转控制,若选用桥式控制,无论用模块还是继电器,简单到仅用几条输出语句使i/o口输出高/低电平就控制了,几乎没什么程序可写