|
#include<reg52.h>
int tt=0,num=0,j=0,k=1;
int code a[]={10,50,100,200,400,800,1000};
sbit buzzer=P2^3;
void main()
{
TMOD=0x11;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET1=1;
ET0=1;
TR1=1;
TR0=1;
while(1)
{
if(tt==20) // tt加到20的時候,程序會在下面的中斷函數1再運行一次然后tt變為21。。。。這是為什么。。。
{
tt=0;
buzzer=~buzzer;
}
}
}
void abc() interrupt 1
{
TH0=(65536-k)/256;
TL0=(65536-k)%256;
tt++;
}
void abd() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
if(j==7)
j=0;
k=a[j];
j++;
}
} |
|