#include <reg51.h> unsigned char ms50,xiaoshi,fenzhong,xianmiao,beeptemp; unsigned long miao; sbit beep = P1^0;
  void init(void)    //初始化函数,就是开机首先要做的事情,init是自己起的名字      {      TMOD=0x11;      PT1=1;      TH0=0xB1;      TL0=0xE0;      TH1=0x3C;      TL1=0xB0;      TR1=1;      TR0=1;      IE=0x8A;      }           //这段程序启动了芯片中的两个定时器
  void timer0 (void) interrupt 1 using 1    //定时器中断程序,定时时间到,自动运行此程序      {      TH0=(65536-5000)/256;                //这两行的数值代表每5000us运行一次此程序      TL0=(65536-5000)%256;                //置定时值,每次时间到都要重新置定时值      }
  void timer1 (void) interrupt 3 using 2    //定时器中断程序      {      TH1=(65536-49990)/256;                //这两行的数值代表每5000us运行一次此程序      TL1=(65536-49990)%256;                //置定时值,每次时间到都要重新置定时值      ms50=ms50+1;      if(ms50>=20)        {        miao++;                            //辅助计时变量+1        ms50=0;        }      }
  void alarm(void)     {     beeptemp=1;     if(miao>=10&&miao<=12)       {       beeptemp=0;       }     if(miao>=30&&miao<=35)       {       beeptemp=0;       }     if(miao>=42&&miao<=50)       {       beeptemp=0;       }     if(miao>=80&&miao<=120)       {       beeptemp=0;       }     beep=beeptemp;     }
  void main(void)      {      init();      while(1)        {        xiaoshi=miao/3600;        fenzhong=miao%3600/60;        xianmiao=miao%60;        alarm();        }      } 
 |