#include <reg51.h>
sbit out = P0^0;
void Init_Timer0()
{
TMOD=0x10;
TH0=256-1;
TL0=256-1;
EA=1;
ET0=1;
TR0=1;
}
void T0_ISR() interrupt 1
{
static unsigned int i;
i++;
if (i==1)
{
out = ~out;
}
if (i == 2)
{
out = ~out;
}
if (i == 7)
{
i=0;
out = ~out;
}
}
void main()
{
Init_Timer0();
while(1);
}

利用51产生随意的波形
原文:http://blog.csdn.net/u011046042/article/details/46627933