#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit led4=P1^4;
sbit led5=P1^5;
sbit led6=P1^6;
sbit led7=P1^7;
int t=0,temp=0,temp1=10,temp2=20,temp3=30,temp4=40,temp5=50,temp6=60,temp7=70;
void main()
{
TMOD=0x01;
TH0 = 0xFF;
TL0 = 0x38;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
}
void T0_time() interrupt 1
{
TH0 = 0xFF;
TL0 = 0x38;
t++;
if(t>=80)//pwm周期为20ms
{
t=0;
temp+=1;
temp1+=1;
temp2+=1;
temp3+=1;
temp4+=1;
temp5+=1;
temp6+=1;
temp7+=1;
}
if(temp==80) temp=-10;
if(temp1==80) temp1=-10;
if(temp2==80) temp2=-10;
if(temp3==80) temp3=-10;
if(temp4==80) temp4=-10;
if(temp5==80) temp5=-10;
if(temp6==80) temp6=-10;
if(temp7==80) temp7=-10;
if(t>temp)//pwm比较
led=0;//时间越来越少
else
led=1;
if(t>temp1)//pwm比较
led1=0;//时间越来越少
else
led1=1;
if(t>temp2)//pwm比较
led2=0;//时间越来越少
else
led2=1;
if(t>temp3)//pwm比较
led3=0;//时间越来越少
else
led3=1;
if(t>temp4)//pwm比较
led4=0;//时间越来越少
else
led4=1;
if(t>temp5)//pwm比较
led5=0;//时间越来越少
else
led5=1;
if(t>temp6)//pwm比较
led6=0;//时间越来越少
else
led6=1;
if(t>temp7)//pwm比较
led7=0;//时间越来越少
else
led7=1;
}