www.pudn.com > fayinlianxi.zip > shiyan2.c, change:2012-11-19,size:1378b


#include <define.h> 
#include <CS51.h> 
//void poweroninit(void); 
void delayx10ms(Word count); 
void beep(Word m,Word n);	 //前一个参数表示重复的次数,即时长;后一个表示低电平持续不同的时间,即不同的频率 
 
 
/**************/ 
void main(void) 
{ 
  //poweroninit(); 
  while(1) 
  { 
    beep(12,1200); 
    delayx10ms(100); 
 
	beep(15,1400); 
    delayx10ms(100); 
 
	beep(20,1500); 
    delayx10ms(100); 
 
	beep(25,2000); 
    delayx10ms(100); 
 
	beep(30,2400); 
    delayx10ms(100); 
  } 
} 
 
/* 
   void poweroninit(void) 
   {IE=0;         //关闭所有的中断 
    PSW=0;        //程序状态字置0 
    IP=0x0b;     //置高优先极组:int0,timer0,timer1 
 
    TMOD=0x11;   //设置定时器0,定时器1的模式 
    TR0=0;       //关定时器0 
    TR1=0;      //关定时器1 
 
    IT0=1;      //设置int0中断:下降沿触发 
    EX0=0;     //关int0中断 
    EX1=0;     //关定时器0中断 
    ET0=0;     //关定时器1中断 
 
    EA=1;      //开CPU中断 
    }  */ 
     
void delayx10ms(Word count) 
    { 
      Word i,j,k; 
      for(i=0;i<count;i++) 
        for(j=0;j<10;j++) 
         for(k=0;k<120;k++) 
           ; 
     } 
      
void beep(Word m,Word n) 
   { 
     Word j; 
	 Word k; 
     for(j=0;j<m;j++) 
        { 
            P3_1 = 0; 
            for(k=0;k<1200;k++); 
                  
            P3_1 = 1; 
            for(k=0;k<n;k++); 
                  
        } 
    }