代码如下:
#include <REG52.H>
typedef unsigned char u8;
typedef unsigned int u16;
sbit PWM=P2^1;
u16 time,val;
u8 dat,a;
void Timer0Init()//定时器初始化
{
TMOD=0X01
TH0=0xff;
TL0=0xce
TR0=1;
ET0=1;
EA=1;
}
void main()
{
Timer0Init();//定时器初始化
while(1)
{
if(time>100)//定时5ms
{
time=0;
if(a==1)
val++;
if(a==0)
val--;
}
if(val==1000)
a=0;
if(val==0)
a=1;
if(dat>1000)
dat=0;
if(val>dat)
PWM=1;
else
PWM=0;
}
}
void Timer0() interrupt 1
{
TH0=0xff;
TL0=0xce
time++;
dat++;
}
|