P1.1連接發光二極管
#include<reg52.h>
void delay1s(void);
sbit en=P1^1;
int pwm=0;
int count=0;
int value=180;
char flag=1;
void main()
{
TMOD=0X01;
TH0=0XFf;
TL0=0Xe2;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void timer0(void) interrupt 1 using 0
{
TR0=0;
count++;
if(count!=180)
{
if(count<=pwm)
en=0;
else if(count>pwm&&count<value)
en=1;
}
else
{
if(flag==1)
{pwm++;
count=0;}
else if(flag==0)
{pwm--;
count=0;}
if(pwm==180)
flag=0;
else if(pwm==0)
{
delay1s();
flag=1;
}
}
TH0=0XFf;
TL0=0Xe2;
TR0=1;
}
void delay1s(void)
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--)
;
}
|