/*
1,10,50,100,200,400,800,1k(hz)
12MHz
*/
/*********************************************************/
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
uchar t1;
uint T,t2;
void main()
{
T=50000;
beep=0;
TMOD=0x11;
TH0=(65536-T)/256;
TL0=(65536-T)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR1=1;
TR0=1;
while(1);
}
void timer0() interrupt 1
{
TR0=0;
TH0=(65536-T)/256;
TL0=(65536-T)%256;
t1++;
if(t2<40)
if(t1==10)//1hz
{
t1=0;
T=50000;
beep=~beep;
}
if(t2>=40&&t2<80)//10hz
{
t1=0;
T=50000;
beep=~beep;
}
if(t2>=80&&t2<120)//50hz
{
t1=0;
T=10000;
beep=~beep;
}
if(t2>=120&&t2<160)//100hz
{
t1=0;
T=5000;
beep=~beep;
}
if(t2>=160&&t2<200)
{
t1=0;
T=2500;
beep=~beep;
}
if(t2>=200&&t2<240)
{
t1=0;
T=1250;
beep=~beep;
}
if(t2>=240&&t2<280)
{
t1=0;
T=625;
beep=~beep;
}
if(t2>=280&&t2<320)
{
t1=0;
T=312;
beep=~beep;
}
if(t2>=320&&t2<360)
{
t1=0;
T=156;
beep=~beep;
}
TR0=1;
}
void timer1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
t2++;
if(t2==360)
{
t2=0;
T=50000;
}
}
还有为什么进中断要关TR0,TR0关了那这个中断还怎么起作用
T没æåå§åï¼æä¹è§¦åä¸æï¼ï¼