找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这个单片机电路原理图加个蜂鸣器的话程序要怎么弄?

查看数: 1837 | 评论数: 7 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-6-3 15:47

正文摘要:

初学者 求指导 谢谢大家 单片机源程序如下: #include <reg51.H> #define uint unsigned int #define uchar unsigned char sbit LCD_RS=P3^0; sbit LCD_EN=P3^1; sbit key1=P3^2;    ...

回复

ID:451718 发表于 2022-6-9 15:49
unsigned char BPFlag = 0;
void Deel_Beep()
{
    static unsigned char BPSign = 0;
          switch(BPFlag)
                {
                        case 0:                //-------不响
                                BZ = 0;
                                break;
                        case 1:                //-------长响
                                BZ = 1;
        BPSign ++;
        if(BPSign>5)
        {
            BPSign = 0;
            BPFlag = 0;
            BZ = 0;
        }
                                break;
                        case 2:                //-------双响
                                switch(BPSign)
        {
            case 0:
                BZ = 1;
                BPSign++;
                break;
            case 1:
                                                          BZ = 0;
                                                    BPSign++;
                                                    break;
                                                case 2:
                BZ = 1;
                BPSign++;
                break;
            default:                                               
                                                          BZ = 0;
                                                    BPSign = 0;
                                                    BPFlag = 0;
                                                    break;
        }
                                break;
                        case 3:                //-------短响
                                BZ = 1;
        BPSign ++;
        if(BPSign>1)
        {
            BPSign = 0;
            BPFlag = 0;
            BZ = 0;
        }
                                break;
                        case 4:                //-------双响
                        switch(BPSign)
                        {
                                        case 0:
                                                        BZ = 1;
                                                        BPSign++;
                                                        break;
                                        case 1:
                                                        BZ = 0;
                                                        BPSign++;
                                                        break;
                                        case 2:
                                                        BZ = 1;
                                                        BPSign++;
                                                        break;
                                        case 3:
                                                        BZ = 0;
                                                        BPSign++;
                                                        break;
                                        case 4:
                                                        BZ = 1;
                                                        BPSign++;
                                                        break;
                                        default:                                               
                                                        BZ = 0;
                                                        BPSign = 0;
                                                        BPFlag = 0;
                                                        break;
                        }
                        break;
                }  
}      
ID:987652 发表于 2022-6-8 22:25
兴安xa 发表于 2022-6-3 20:46
在中断里找到标志位1,在下面添加上buzz=0;即可,标志位2也一样,要停止鸣响,在主函数里添加一个按键程序
...

打扰一下,大佬可以帮忙看看我的第二个主题该如何修改吗
ID:987652 发表于 2022-6-3 21:56
兴安xa 发表于 2022-6-3 20:46
在中断里找到标志位1,在下面添加上buzz=0;即可,标志位2也一样,要停止鸣响,在主函数里添加一个按键程序
...

好的,非常感谢!
ID:987652 发表于 2022-6-3 20:49
不要黑 发表于 2022-6-3 18:47
蜂鸣器建议选有源的,这样加个三极管就可以直接用引脚高低电平控制了。

但是这些引脚的高低电平一直在变化。
ID:979299 发表于 2022-6-3 20:46
在中断里找到标志位1,在下面添加上buzz=0;即可,标志位2也一样,要停止鸣响,在主函数里添加一个按键程序
            if(sec_1==0&&min_1==0)
            {
                flag1=0;
                buzz=0;
                k1=0;
            }

主函数里写
                 if(key4==0)
                {
                        buzz=1;
                }
当然还在先定义按键和BUZZ
sbit key4=P3^5;
sbit buzz=P1^0;
ID:752225 发表于 2022-6-3 20:32
同意楼上说的,可以用有源蜂鸣器和一个三极管来实现,注意NPN或PNP三极管,蜂鸣器摆放的位置不同,可百度查询
ID:789121 发表于 2022-6-3 18:47
蜂鸣器建议选有源的,这样加个三极管就可以直接用引脚高低电平控制了。

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

Powered by 单片机教程网

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