找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求问大神,单片机蜂鸣器为什么不响呀?

查看数: 3019 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-30 23:03

正文摘要:

蜂鸣器不响,我自己也不太懂c语言,求大神指导,谢谢!#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int sbit DQ=P1^3;      //DS18B20&n ...

回复

ID:748788 发表于 2020-5-31 11:02
先检查蜂鸣器有没有问题
ID:729457 发表于 2020-5-31 10:57
可是看看联调是不是有问题
ID:765412 发表于 2020-5-31 10:14
wulin 发表于 2020-5-31 08:08
把报警程序里BELL=0;改为驱动无源蜂鸣器语句即可。另外你的仿真图与程序中使用的端口不符。

想再问一下,让蜂鸣器报警时一直响滴——,而不是滴-滴-滴-,应该改哪里呀
ID:213173 发表于 2020-5-31 08:08
把报警程序里BELL=0;改为驱动无源蜂鸣器语句即可。另外你的仿真图与程序中使用的端口不符。

  1. /**********************报警判断函数  ******************************/
  2. void baojing()  
  3. {
  4.         uchar u,i,t;

  5.         u=((wendu/100)%10)*10+(wendu/10)%10; //如果用同一个wendu变量,进入功能选择是,wendu原来的值没有保存变为0       
  6.         if(u>=tem_h)   //温度大于设定上限值
  7.         {
  8.                 RJDQ=0; //红灯亮 蜂鸣器响
  9.                 t=250;
  10.                 while(t--)
  11.                 {       
  12.                         BELL=~BELL;
  13.                         for(i=0;i<28;i++);                //0.24ms半周期=2083Hz
  14.                 }                                                       
  15.                 BELL=1;       
  16.                 delay(250);
  17.         }
  18.         else if(u<tem_l) //温度低于下限值
  19.         {
  20.                 BJDQ=0; //蓝灯亮  蜂鸣器响
  21.                 t=250;
  22.                 while(t--)
  23.                 {       
  24.                         BELL=~BELL;
  25.                         for(i=0;i<28;i++);                //0.24ms半周期=2083Hz
  26.                 }                                                       
  27.                 BELL=1;
  28.                 delay(250);
  29.         }   
  30.         else
  31.         {
  32.                 BELL=1;
  33.                 BJDQ=1;
  34.                 RJDQ=1;
  35.         }
  36. }
复制代码

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

Powered by 单片机教程网

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