C51单片机直流电机的pwm 控制程序
时间: 2023-07-24 09:04:13 浏览: 118
以下是基于C语言的C51单片机直流电机PWM控制程序:
```c
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit IN1=P1^0; //定义IN1接单片机的P1.0引脚
sbit IN2=P1^1; //定义IN2接单片机的P1.1引脚
void Delay10ms(uint c) //延迟函数
{
uchar a,b;
for(;c>0;c--)
for(b=199;b>0;b--)
for(a=1;a>0;a--);
}
void main()
{
uint i,j;
while(1)
{
for(i=0;i<=100;i++) //占空比从0%到100%
{
IN1=1; //控制电机正转
IN2=0;
for(j=0;j<i;j++) //占空比的控制
Delay10ms(1);
for(j=0;j<100-i;j++) //占空比的控制
Delay10ms(1);
}
for(i=100;i>=0;i--) //占空比从100%到0%
{
IN1=1; //控制电机正转
IN2=0;
for(j=0;j<i;j++) //占空比的控制
Delay10ms(1);
for(j=0;j<100-i;j++) //占空比的控制
Delay10ms(1);
}
}
}
```
在程序中,使用了P1.0和P1.1两个引脚来控制直流电机,通过占空比的控制来实现PWM波形的输出,从而控制直流电机的转速。占空比越大,电机转速越快,反之则越慢。程序中使用了延时函数来控制占空比,可以根据需要进行相应的调整。
阅读全文