标题: 用两个定时器控制蜂鸣器发声时 怎么用定时器控制频率以及频率持续的时间? [打印本页]

作者: 热爱生活    时间: 2018-2-8 11:21
标题: 用两个定时器控制蜂鸣器发声时 怎么用定时器控制频率以及频率持续的时间?
如题 ,用两个定时器控制蜂鸣器发声时 怎么用定时器控制频率以及频率持续的时间?我看过网上的一些程序,下载下来后运行确实不错,但程序表示看不懂...以下是中断服务程序......不理解怎么写的....求指点
void time1() interrupt 3
{
  TH1=(65536-50000)/256;
  TL1=(65536-50000)%256;
  flag++;
  if(flag==360)
  {
   flag=0;
   fre=50000;
  }
}  
  void time0() interrupt 1
{
  TH0=(65536-fre)/256;
  TL0=(65536-fre)%256;
  tt++;
  if(flag<40)
  {
   if(tt==10)
  {
   tt=0;
   fre=50000;
   beep=~beep;
  }
  }
  if(flag>=40&&flag<80)
  {
   tt=0;
   fre=50000;
   beep=~beep;
  }
   if(flag>=80&&flag<120)
  {
   tt=0;
   fre=10000;
   beep=~beep;
  }
   if(flag>=120&&flag<160)
  {
   tt=0;
   fre=5000;
   beep=~beep;
  }
   if(flag>=1600&&flag<200)
  {
   tt=0;
   fre=2500;
   beep=~beep;
  }
   if(flag>=200&&flag<240)
  {
   tt=0;
   fre=1250;
   beep=~beep;
  }
   if(flag>=240&&flag<280)
  {
   tt=0;
   fre=625;
   beep=~beep;
  }
   if(flag>=280&&flag<320)
  {
   tt=0;
   fre=312;
   beep=~beep;
  }
   if(flag>=320&&flag<360)
  {
   tt=0;
   fre=156;
   beep=~beep;
  }
   TR0=1;
}  

作者: Amlee    时间: 2020-3-5 20:19
最好把完整程序拿来看看,在这里看不出来fre和tt定义的是什么变量




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1