|
#include<stc15.h>
#include<intrins.h>
unsigned char PWM_COUNT;
unsigned int HUXI_COUNT;
unsigned char PWM_VALUE;
bit direc_flag;
sbit LED=P2^0;
void timer0()
{
TMOD=0X02;
TH0=0X47;
TL0=0X47;
TR0=1;
ET0=1;
EA=1;
PWM_COUNT=0;
}
void time0() interrupt 1
{
PWM_COUNT++;
HUXI_COUNT++;
if(PWM_COUNT==PWM_VALUE)
LED=0;
if(PWM_COUNT==20)
{
LED=1;
PWM_COUNT=0;
}
if((HUXI_COUNT==600)&&(direc_flag==0))
{
HUXI_COUNT=0;
PWM_VALUE++;
if(PWM_VALUE==19)
direc_flag=1;
}
if((HUXI_COUNT==600)&&(direc_flag==1))
{
HUXI_COUNT=0;
PWM_VALUE--;
if(PWM_VALUE==1)
direc_flag=0;
}
}
void main()
{
PWM_COUNT=0;
HUXI_COUNT=0;
PWM_VALUE=10;
direc_flag=0;
LED=1;
timer0();
while(1);
}
|
|