标题: 请教一下蜂鸣器叫三下,暂停0.5S再叫,一直循环的单片机程序问题 [打印本页]

作者: 598651219898321    时间: 2019-10-11 10:54
标题: 请教一下蜂鸣器叫三下,暂停0.5S再叫,一直循环的单片机程序问题
我带了自己代码, 因该怎么修改。谢谢了。

蜂鸣器.png (53.03 KB, 下载次数: 45)

蜂鸣器.png

作者: 598651219898321    时间: 2019-10-11 11:09
我加了 IF延时  也没有作用
作者: 小白成长记    时间: 2019-10-11 12:59
for循环写成死循环,不然响几次后就不响了

作者: baiyun1234    时间: 2019-10-11 13:11
//注释:你这个 “BUZCOM=Bin(00001001);  //打开”我不知道哪一位是控制buzzer的,你自己改,我下面的是 根据你的copy的。
// 我自己写的延时,晶振11.0592 ,这个延时是1ms,你的晶振是多少,你自己定.
//你的代码顶部加一个:      #define uint unsigned int(如果有就算了)
void beep_on()
{
     unsigned char i;
      unsigned char time_cnt;
       unsigned char beep_cnt,p;
       bit buzzerflag;
if(temperature>29) buzzerflah=1;
while(buzzerflag)
{
     for(i=3;i>0;i--)
         {
              delayms(100);
              BUZCOM=Bin(00001001);  //打开
               delayms(100);
                BUZCON=Bin(00001000);   //close
         }
     delayms(500);
    if(temperature<=29)
       {
          BUZCON=Bin(00001000) //close
          delayms(20);
          buzzerflah=0;
       }
}
}

//delayms
   void delayms(uint time)
{      
   
      uint i,j;
                                                                 
             for( i=0;i<time;i++)
           
                     for(j=0;j<112;j++);
               
}

  
作者: baiyun1234    时间: 2019-10-11 13:21
在你的main之前加上一句这个:
  void delayms(uint);
作者: baiyun1234    时间: 2019-10-11 13:59
buzzerflag=1;// 后面是g,不是h.写错了。
上面的两个地方
作者: 598651219898321    时间: 2019-10-12 10:14
baiyun1234 发表于 2019-10-11 13:59
buzzerflag=1;// 后面是g,不是h.写错了。
上面的两个地方

谢谢了
作者: 598651219898321    时间: 2019-10-12 10:14
baiyun1234 发表于 2019-10-11 13:11
//注释:你这个 “BUZCOM=Bin(00001001);  //打开”我不知道哪一位是控制buzzer的,你自己改,我下面的是  ...

谢谢,非常感谢




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