找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何能用一个51单片机边刷新数码管边驱动无源蜂鸣器鸣叫呢

[复制链接]
跳转到指定楼层
楼主
ID:775739 发表于 2020-6-20 19:39 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,让两个循环交替执行的话效果又不太好,是不是必须得加些外部电路了,求大佬给点建议(>﹏<)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:686782 发表于 2020-6-20 22:45 | 只看该作者
顶一顶,同问
回复

使用道具 举报

板凳
ID:332444 发表于 2020-6-21 05:26 | 只看该作者
添加锁存器可让IO口复用。
回复

使用道具 举报

地板
ID:213173 发表于 2020-6-21 07:50 | 只看该作者
51单片机当然可以边刷新数码管边驱动无源蜂鸣器鸣叫。方案有很多,要根据硬件环境选择具体采用那种方案。
回复

使用道具 举报

5#
ID:775739 发表于 2020-6-22 08:44 来自手机 | 只看该作者
主要是我这没有什么数字芯片,那我再上网找找资料
回复

使用道具 举报

6#
ID:213173 发表于 2020-6-22 10:47 | 只看该作者
濑某人 发表于 2020-6-22 08:44
主要是我这没有什么数字芯片,那我再上网找找资料

不需要外围数字芯片,给你一个数码管闹钟程序,你仔细看看就明白边刷新数码管边驱动无源蜂鸣器鸣叫的一种方法。 数码管闹钟 仿真.zip (141.65 KB, 下载次数: 61)


回复

使用道具 举报

7#
ID:775739 发表于 2020-6-22 20:10 | 只看该作者
wulin 发表于 2020-6-22 10:47
不需要外围数字芯片,给你一个数码管闹钟程序,你仔细看看就明白边刷新数码管边驱动无源蜂鸣器鸣叫的一种 ...

好的,谢谢大佬
回复

使用道具 举报

8#
ID:401564 发表于 2020-6-23 08:27 | 只看该作者
1:定时器中断刷新数码管,在中断中驱动蜂鸣器
2:使用单片机自带的PWM输出控制蜂鸣器
3:在数码管延时程序中驱动蜂鸣器
4:如果单片机有ADC,可以使用ADC中断定时器,ADC的结果不需要理会就行了
回复

使用道具 举报

9#
ID:569384 发表于 2020-6-23 11:42 | 只看该作者
个人使用的方法,如果不当望请指出

1.定时器中断中刷数码管
2.pwm管脚驱动蜂鸣器
或者:
一个定时器同时刷数码管和蜂鸣器也可以,我一直都是这么做的,但是前提是你要把定时器溢出时间等于蜂鸣器的频率。(比如125us或者250us)这样每次进定时器中断就翻转蜂鸣器io口,就不会影响声音。

写个伪代码:
#define    BUZ    蜂鸣器io口

void 定时器中断服务函数()//125us(等于无缘蜂鸣器频率)
{
      变量a(数码管计数),变量b(蜂鸣器响的时间计数)

      if(++a > 80)//125us*80=10ms,10ms刷新一次数码管
      {
            a = 0;
            //数码管代码
            //数码管代码
            //数码管代码
            //数码管代码等等
      }

      if(蜂鸣器使能标志位)
      {
            BUZ ^= 1;//翻转io口
            if(++b > 4000)//125us*4000=500ms   响500毫秒
            {
                  b = 0;
                  蜂鸣器使能标志位 = 0;
            }
      }
}

回复

使用道具 举报

10#
ID:782998 发表于 2020-10-24 13:54 | 只看该作者
wulin 发表于 2020-6-22 10:47
不需要外围数字芯片,给你一个数码管闹钟程序,你仔细看看就明白边刷新数码管边驱动无源蜂鸣器鸣叫的一种 ...

文件是空的
回复

使用道具 举报

11#
ID:414556 发表于 2020-10-25 23:33 | 只看该作者
使用定时中断就可以,数码管在主程序循环刷,蜂鸣在中断响。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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