#include<reg52.h> //pwm波控制灯亮,依照原理直接控制马达电压从而控制转速
#define uint unsigned int
uint a=0,b=100;//设置b占空比
void timer0Init()
{
TR0=1;
ET0=1;
EA=1;
TMOD=0X01;
}
void timer0()interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256; //100微秒基准比较好。
a=a+1;
}
void main()
{
int T=100;//周期
timer0Init();
while(1)
{
if(a>T)//越过周期而重复
{
a=0;
}
if(a<b)//占空比控制的时间进而控制高电压电压时间(最后输出的是平均电压)
{
P1=0xff;
}
if(a>b)
{
P1=0;//低电压的占空比
}
}
}
//刚学会就来分享了,有错请尽指斧正。