⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 门铃声发生器.c

📁 这是本人花了200元买的51开发板上的所有程序资料
💻 C
字号:
//MCU:AT89S51
//晶振:12M
#include "AT89X51.H"
unsigned char time_500hz;
unsigned char time_700hz;
unsigned int tcount;
 
bit stop;
bit flag;
 
void main(void)
{
  unsigned char i,j;
 
  TMOD=0x02;  //使用定时器0,选择方式2(常数自动重装的8位定时器)
  TH0=0x06;   //保存数值,用于自动重装
  TL0=0x06;  //定时250uS初值
  TR0=1;    //开定时器0
  ET0=1;    //开定时器0溢出中断
  EA=1;     //开总中断
  P2_6=0;
 
  while(1)
    {
      if(P2_0==0)
        {
          for(i=10;i>0;i--)
          for(j=248;j>0;j--);
          if(P2_0==0)
            {
              time_500hz=0;
              time_700hz=0;
              tcount=0;
              flag=0;
			  stop=0;
              TR0=1;
              while(stop==0);
            }
        }
    }
}

/********250uS中断服务程序*************/
void t0(void) interrupt 1 using 0
{
  tcount++;
  if(tcount==2500)
    {
      tcount=0;
      if(flag==0)
        {
          flag=~flag;
        }
        else
          {
            stop=1;
            TR0=0;
          }
    }
  if(flag==0)
    {
      time_700hz++;
      if(time_700hz==3)
        {
          time_700hz=0;
         P2_6=~P2_6;
        }
    }
    else
      {
        time_500hz++;
        if(time_500hz==4)
          {
            time_500hz=0;
            P2_6=~P2_6;
          }
      }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -