适用所有单片机,晶振为11.0592M
#include "reg52.h"
int pwm1=1; 第一路pwm占空比
int pwm2=60; 第二路pwm占空比
sbit led1=P1^0;
sbit led2=P1^3;
sbit md1=P1^0;
void pwm_init()
{
TMOD|=0x01;
TH0=(65536-100)/256; 约1Kmz
TL0=(65536-100)%256;
ET0=1;
EA=1;
TR0=1;
}
void pwm_timer()interrupt 1
{
static int c1=0,c2=0;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(c1<pwm1)
{
led1=0;
}
else{
led1=1;
}
if(c1==100){c1=0;}
c1++;
if(c2<pwm2)
{
led2=1;
}
else{
led2=0;
}
if(c2==100){c2=0;}
c2++;
}
void delay(int n)
{
int z;
while(n--){
z=110;
while(z--);
}
}
void delay1()
{
}
void main()
{
pwm_init();
while(1)
{
delay(100);
pwm1+=10;
pwm2+=1;
if(pwm1>100)pwm1=1;
if(pwm2>100)pwm2=1;
}
}