
跪求单片机输出pwm波控制电调的程序!!
2个回答
展开全部
#include<at89x51.h>
unsigned char PWM0=0x80,PWM1=0x80,PWM2=0x80;//PWM的百分比
void InitT0(void)
{
TMOD=0x02;//定时器0工作方式2 8位自动重装
TH0=0;//pwm频率为系统时钟/256
TL0=0;
TR0=1;//开始计时
ET0=1;//允许定时器中断
EA=1;//开启总中断
}
void main(void)
{
InitT0();//初始化T0定时器
while(1)
{
//添加处理代码
}
}
void Timer0(void) interrupt 1//用于PWM的定时器
{
static unsigned char counter=0;//记录中断次数
counter++;
if(counter >= PWM0) P1_0 = 0; else P1_0 = 1;
if(counter >= PWM1) P1_1 = 0; else P1_1 = 1;
if(counter >= PWM2) P1_2 = 0; else P1_2 = 1;
}
unsigned char PWM0=0x80,PWM1=0x80,PWM2=0x80;//PWM的百分比
void InitT0(void)
{
TMOD=0x02;//定时器0工作方式2 8位自动重装
TH0=0;//pwm频率为系统时钟/256
TL0=0;
TR0=1;//开始计时
ET0=1;//允许定时器中断
EA=1;//开启总中断
}
void main(void)
{
InitT0();//初始化T0定时器
while(1)
{
//添加处理代码
}
}
void Timer0(void) interrupt 1//用于PWM的定时器
{
static unsigned char counter=0;//记录中断次数
counter++;
if(counter >= PWM0) P1_0 = 0; else P1_0 = 1;
if(counter >= PWM1) P1_1 = 0; else P1_1 = 1;
if(counter >= PWM2) P1_2 = 0; else P1_2 = 1;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询