请教大虾 如何用C语言 利用 单片机AT89S51 来 实现 PWM 调速 (要C语言程式代码)

来源:百度知道 编辑:UC知道 时间:2024/04/28 22:03:58
谁能帮一楼的解释一下 每行程序的代码?

#include<reg51.h>
sbit P1_0=P1^0;
sbit P1_1=P1^1;
unsigned int i,j=0;
unsigned int cont=0;
timer0() interrupt 1
{
if(i--==0) //定时时间到
{j=1; //设置时间到的标志位
i=cont;
}

TMOD=0x01;
TH0=0xd8;
TL0=0xf0;
EA=1;
ET0=1;
TR0=1;
}
delay_1(cont) //输出为零的时间
{ i=cont;
do{}while(j==0); //循环直到定时时间到
j=0; //清标志位
return ;
}
delay_0(cont) //输出为1的时间
{ i=cont;
do{}while(j==0);
j=0;
return;
}
main()
{
TMOD=0x01;
TH0=0xd8;
TL0=0xf0;
EA=1;
ET0=1;
TR0=1;
do{
P1_0=0;
P1_1=0;

delay_0(100);
P1_0=1;
P1_1=1;

delay_1(100);
}while(1) ;

}
delay_0 和delay_1面的参数可以修改占空比用的时候可以去掉一个口