m0_50347212 2024-03-10 13:55 采纳率: 27.3%
浏览 141

51开发板蜂鸣器和LCD引脚冲突,不响

img

img

img

img

img


51开发板LCD1602的RW和蜂鸣器引脚冲突,外接了一根线把RW给接到其他口,但是蜂鸣器还是不响,是程序有问题,还是接出来错了?要怎么才能解决

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-10 13:56
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,蜂鸣器不响的问题可能来自硬件连接或软件编程两个方面。在图2中,蜂鸣器模块通过R1电阻接到VCC和P2^5(即Buzz)引脚上,在软件配置里你也已经定义了sbit Buzz = P2^5用于控制蜂鸣器。

    然而,从图5的代码片段来看,虽然定义了蜂鸣器的控制位,但是没有找到实际驱动蜂鸣器工作的代码实现。报警处理函数baojinpros()内部有一个for循环,但关键的蜂鸣器控制语句缺失,应当在循环内添加打开和关闭蜂鸣器的操作来使其工作,例如:

    void baojinpros()
    {
        unsigned char i;
        if(temp>=temph || temp<=templ || humi>=humih || humi<=humil)
        {
            for(i=0;i<2;i++)
            {
                Buzz = 0; // 低电平,蜂鸣器断开不响
                delay_ms(500); // 延时一段时间
                Buzz = 1; // 高电平,蜂鸣器闭合发声(如果蜂鸣器为低电平触发则相反)
                delay_ms(500); // 延时一段时间
            }
        }
    }
    

    这里假设蜂鸣器为高电平触发发声,如果不是,请修改Buzz的状态以匹配蜂鸣器的工作方式。

    另外,由于之前提到LCD1602的RW引脚与蜂鸣器引脚冲突,并且你已经外接一根线将RW引脚改接到其他口,确保这部分硬件改动是正确的,新接的RW引脚应该正确映射到程序中的rw变量,并且不影响蜂鸣器的Buzz引脚。

    综上所述,首先检查硬件连接是否无误,然后完善软件代码,确保在满足报警条件时,蜂鸣器能按照预期进行通断控制并发声。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月10日

悬赏问题

  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。