找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2351|回复: 7
打印 上一主题 下一主题
收起左侧

请教一下蜂鸣器叫三下,暂停0.5S再叫,一直循环的单片机程序问题

[复制链接]
跳转到指定楼层
楼主
我带了自己代码, 因该怎么修改。谢谢了。

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

蜂鸣器.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:602673 发表于 2019-10-11 11:09 | 只看该作者
我加了 IF延时  也没有作用
回复

使用道具 举报

板凳
ID:610816 发表于 2019-10-11 12:59 | 只看该作者
for循环写成死循环,不然响几次后就不响了
回复

使用道具 举报

地板
ID:609989 发表于 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++);
               
}

  
回复

使用道具 举报

5#
ID:609989 发表于 2019-10-11 13:21 | 只看该作者
在你的main之前加上一句这个:
  void delayms(uint);
回复

使用道具 举报

6#
ID:609989 发表于 2019-10-11 13:59 | 只看该作者
buzzerflag=1;// 后面是g,不是h.写错了。
上面的两个地方
回复

使用道具 举报

7#
ID:602673 发表于 2019-10-12 10:14 | 只看该作者
baiyun1234 发表于 2019-10-11 13:59
buzzerflag=1;// 后面是g,不是h.写错了。
上面的两个地方

谢谢了
回复

使用道具 举报

8#
ID:602673 发表于 2019-10-12 10:14 | 只看该作者
baiyun1234 发表于 2019-10-11 13:11
//注释:你这个 “BUZCOM=Bin(00001001);  //打开”我不知道哪一位是控制buzzer的,你自己改,我下面的是  ...

谢谢,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表