#define uint8  unsigned char
#define uint16 unsigned int
uint8 orc,num;
sbit PWM_out = P1^1;
void pwm_init()
{
TMOD = 0x02;
TH0  = 0x9c;
TL0  = 0x9c;
ET0  = 1;
EA   = 1;
TR0  = 1;
}
void pwm_set(uint8 pwm)
{
orc = pwm;
}
void delay()
{
uint8 i;
for(i=0;i<250;i++);
}
void main()
{
uint8 i;
pwm_init();
while(1)
{
pwm_set(i++);
delay();
}
}
void pwm_int() interrupt 1
{
num++;
if(orc >= num)
PWM_out = 1;
else
PWM_out = 0;
}
#include \"reg51.h\"       //包含头文件
#define uchar unsigned char
#define uint  unsigned int
//**************************************************************************************************
//延时函数
//**************************************************************************************************
delay(uint time)         //int型数据为16位,所以最大值为65535
{
uint  i,j,p;             //定义变量i,j,用于循环语句
for(i=0;i