通过中断T0和T1实现蜂鸣和LED灯开和关

#include<reg52.h>
#include<intrins.h>
sbit fmq=P3^6;  
sbit P34=P3^4;  
sbit P35=P3^5;
unsigned int t;
 void delay500us()
{
unsigned char j;
for(j=0;j<57;j++)//500us基准延时
{
;
}


}




void beep()//产生1000HZ的频率声音
{
for(t=0;t<1000;t++){
fmq=0;  
delay500us(); 
      fmq=1;  
delay500us();
}
}




   
void delay1ms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<115;j++)//1ms基准延时
{
;
}
}


}




void main()
{
  EA=1;  //开总中断
  ET0=1; //允许定时器T0的中断
  TR0=1;        //启动T0   
  ET1=1; //允许定时器T1的中断
  TR1=1;        //启动T1
  while(1);
}


void Time0(void) interrupt 1//“interrupt”声明函数为中断服务函数 T0
 {
if(P34==0){
  delay1ms(20);
  if(P34==0){
    P0=0x00;
  beep(); //
  }
   
}
 }


 
void Time1(void) interrupt 3//“interrupt”声明函数为中断服务函数  T1
 {
if(P35==0){
  delay1ms(20);
  if(P35==0){
    P0=0xff;
  beep(); //
  }
   
}
 }

你可能感兴趣的:(通过中断T0和T1实现蜂鸣和LED灯开和关)