#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
uchar num1,num2,tt,aa,i;
uchar table[]={20000,2000,400,200,100,50,25,20};
uchar temp[]={0,3,15,30,60,120,240,300};
void main()
{ tt=0;
num1=0; num2=0;
aa=0;
TMOD=0x01; //定时器0,1采用工作方式1中断
TH0=(65536-25000)/256;
TL0=(65536-25000)%256;
TR0=1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
EA=1;
ET0=1;
ET1=1;
TF1=1;
while(1)
{
if(aa==6)
{ if(num1==8)
num1=0;
if(num2==8)
num2=0;
aa=0;
for(i=0;i<temp[num1];i++)
{
beep=0;
if(tt==table[num2])
beep=1;
if(tt==2*table[num2])
beep=0;
}
num1++;
num2++;
}
}
}
void timer0() interrupt 1
{ TH0=(65536-25000)/256;
TL0=(65536-25000)%256;
tt++;
}
void timer1() interrupt 3
{ TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
aa++;
}
|