2301_77450812 2023-08-27 19:30 采纳率: 75%
浏览 10
已结题

hc6800ms开发板蜂鸣器不发出提示音

不知道是什么问题,本人对蜂鸣器引脚不太确定,是引脚规定错误?蜂鸣器跳线帽没插?还是什么问题,请解决

img

img

#include <REGX52.H>
#include "Nixie.h"
#include "Key.h"
#include "Buzzer.h"

unsigned char KeyNum;

void main()
{
    Nixie(1,0);

    while(1)
    {
        KeyNum=Key();

        if(KeyNum)
        {
            Buzzer_Timer(100);
            Nixie(1,KeyNum);
        }
    }
}        

Delay1ms

void Delay1ms(unsigned char xms)        //@12.000MHz
{
    unsigned char data i, j;
    while(xms)
    {
        i = 2;    
        j = 239;
        do
        {
            while (--j);
        } while (--i);
        xms--;
    }
}

Key

#include <REGX52.H>
#include "Delay1ms.h"

unsigned char Key()                  //独立按键控制函数
{
    unsigned char KeyNum;

    if(P1_4==0)    {Delay1ms(20);while(P1_4==0);Delay1ms(20);KeyNum=1;}
    if(P1_5==0)    {Delay1ms(20);while(P1_5==0);Delay1ms(20);KeyNum=2;}
    if(P1_6==0)    {Delay1ms(20);while(P1_6==0);Delay1ms(20);KeyNum=3;}
    if(P1_7==0)    {Delay1ms(20);while(P1_7==0);Delay1ms(20);KeyNum=4;}
    if(P3_5==0)    {Delay1ms(20);while(P3_5==0);Delay1ms(20);KeyNum=5;}

    return KeyNum;

}

Nixie

#include <REGX52.H>
#include "Delay1ms.h"

unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};    //0~9对应段选端,A~F为0x77,0x7C,0x39,0x5E,0x79,0x71;0x00为空

void Nixie(unsigned char Location,Number)           //晶体管显示函数
{
    switch(Location)
    {
        case 1:P1_0=0;P1_1=0;P1_2=0;P1_3=1;break;
        case 2:P1_0=0;P1_1=0;P1_2=1;P1_3=0;break;
        case 3:P1_0=0;P1_1=1;P1_2=0;P1_3=0;break;
        case 4:P1_0=1;P1_1=0;P1_2=0;P1_3=0;break;
    }
    P0=NixieTable[Number];        //只显示一个数,静态化显示无需清零
}


Buzzer

#include <REGX52.H>
#include <INTRINS.H>            //_nop_需要

sbit Buzzer=P2^1;

void Buzzer_Delay500us()        //@12.000MHz,蜂鸣器私有延时函数,延时500us
{
    unsigned char data i;

    _nop_();
    i = 247;
    while (--i);
}

void Buzzer_Timer(unsigned int ms)           //蜂鸣器发声时长函数
{
    unsigned int i;
    for(i=0;i<=ms*2;i++)
    {
        Buzzer=!Buzzer;                       //无源蜂鸣器
        Buzzer_Delay500us();               //每500us引脚电平取反,一周期为1ms,故频率为1000Hz(蜂鸣器频率为1000Hz)
    }
}


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-27 22:15
    关注

    【以下回答由 GPT 生成】

    问题分析:

    根据提供的代码和问题描述,可能导致蜂鸣器不发声的原因有以下几点: 1. 引脚规定错误: 可能使用的引脚与蜂鸣器连接的引脚不同。 2. 蜂鸣器跳线帽未插好: 可能未正确连接蜂鸣器的跳线帽。

    解决方案: 1. 检查引脚规定是否正确,确保蜂鸣器与开发板连接的引脚是正确的。如果不确定引脚规定,可以查阅开发板的硬件手册或者资料。 2. 检查蜂鸣器跳线帽是否正确插好,确认跳线帽连接的引脚与蜂鸣器引脚一致。 3. 确保蜂鸣器的其他硬件连接正常,如电源、电阻等。

    如果以上解决方案都不能解决问题,可能原因是硬件故障,建议联系开发板的厂商或者技术支持团队进行进一步的故障排除和修复。

    Note: 给出的代码中,蜂鸣器相关的代码未包含在问题描述的部分中,无法判断其具体实现和潜在问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月16日
  • 已采纳回答 9月8日
  • 修改了问题 8月27日
  • 创建了问题 8月27日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?