unsigned int n;
unsigned char m = 0, temp = 254;
sbit SPK = P1^5;
main()
{
TMOD = 0x01;
TH0 = (65536 - 1000) / 256;
TL0 = (65536 - 1000) % 256;
TR0 = 1;
ET0 = 1;
EA = 1;
P2 = temp;
while(1);
}
void T0_INT() interrupt 1
{
TH0 = (65536 - 1000) / 256;
TL0 = (65536 - 1000) % 256;
n++;
if(n >= 1000) {
n = 0;
m++;
if (m == 8) {m = 0; temp = 254;}
else {temp <<= 1; temp += 1;}
}
if(n < 500) {SPK = ~SPK; P2 = temp;}
else P2 = 255;
}
以上程序已經實驗成功。