求讲解主程序
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
void delay(unsigned int z);
void delay_us(unsigned int aa);
void main()
{while(1)
{
unsigned int i,cycle=0,T=2048;
IN1=1; // 正转
IN2=0;
for(i=0;i<200;i++)
{delay(10); //pwm占空比为50%,修改延时调整pwm脉冲
ENA=~ENA;
}
IN1=0; //反转
IN2=1;
for(i=0;i<100;i++)
{delay(20); //pwm占空比为50%,修改延时调整pwm脉冲
ENA=~ENA; }
IN1=1; //自动加速正传
IN2=0;
while(cycle!=T)
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
IN1=0; //自动减速反转
IN2=1;
while(cycle!=T)
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
}
}
void delay(unsigned int z) //z秒延时函数
{unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay_us(unsigned int aa) //微秒延时
{while(aa--);
}
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
void delay(unsigned int z);
void delay_us(unsigned int aa);
void main()
{while(1)
{
unsigned int i,cycle=0,T=2048;
IN1=1; // 正转
IN2=0;
for(i=0;i<200;i++)
{delay(10); //pwm占空比为50%,修改延时调整pwm脉冲
ENA=~ENA;
}
IN1=0; //反转
IN2=1;
for(i=0;i<100;i++)
{delay(20); //pwm占空比为50%,修改延时调整pwm脉冲
ENA=~ENA; }
IN1=1; //自动加速正传
IN2=0;
while(cycle!=T)
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
IN1=0; //自动减速反转
IN2=1;
while(cycle!=T)
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
}
}
void delay(unsigned int z) //z秒延时函数
{unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay_us(unsigned int aa) //微秒延时
{while(aa--);
}
只能看出是个PWM模式的可逆控制程序
貌似是PWM调速电机哦~~~~
你在玩两轮平衡车吗?
PWM调速,控制水泵做音乐喷泉,但速度不稳,总是一动一停