单片机可以控制蜂鸣器发声音

蜂鸣器是非常常见的发音元器,音乐卡、报警装置、电子琴、各种小家电等都会用到。单片机的PWM功能可以设置输出不同频率的信号,所以我们可以利用单片机的PWM控制三极管的通断来推动蜂鸣器发声。

当然,如果单纯控制方波信号的通断,只可以得到单调的“嘀”、“嘀”声。想要得到美妙的音乐,我们还需要控制音调、频率的变化,还有声音的强弱。把蜂鸣器的驱动电路改进一下,用三个三极管和两个单片机的IO来控制蜂鸣器。

BZ_PWM:用于控制蜂鸣器的发音频率

BZ_CONTROL:用于控制蜂鸣器的供电时间

当BZ_CONTROL为低电平时,三极管Q2、Q3是截止的,蜂鸣器没有供电,不会发声。

当BZ_CONTROL为高电平时,三极管Q2、Q3是导通的,蜂鸣器是否发声由BZ_PWM决定。

电路中的电容C10很关键,因为电容C10有储能的效果,BZ_CONTROL转为低电平后,蜂鸣器的供电还可以由电容C10提供,电容电量减少,音量就会逐渐减小,形成蜂鸣声渐隐的和弦音效果。

如果想实现变调的效果,就可以通过短时间内切换发出几种不同频率的蜂鸣声来实现。

单片机控制蜂鸣器演奏音阶实例

以4KHz频率的蜂鸣器为例,首先我们先定义Tf、Tv、F三个参数

Tf:驱动频率给定持续时间,单位为毫秒(ms),BZ_PWM引脚控制

Tv:蜂鸣器供电持续时间,单位为毫秒(ms),BZ_CONTROL引脚控制

F:单片机输出PWM频率,单位为KHz,BZ_PWM引脚控制

单声和弦音:短暂鸣响后音量渐隐

F=4.0,Tv=100,Tf=300,因为Tf=300ms,蜂鸣器响的时间为300ms,但蜂鸣器供电只有100ms,所以,前100ms是正常发音,后200ms为音量渐隐的效果。

两声错误提示和弦音:二升调,按音调分2个阶段

F=3.8,Tv=200,Tf=200

F=4.0,Tv=200,Tf=200

因为前300ms频率为3.8KHz,后200ms频率为4KHz,所以听起来会有升调的效果。

开机和弦音:三升调,按音调分3个阶段

F=3.8,Tv=200,Tf=200

F=4.0,Tv=200,Tf=200

F=4.2,Tv=200,Tf=1500

因为三声频率从3.8KHz升到4KHz再到4.2KHz,频率连续升高,最后一声的Tf时间较长,还有音量渐隐的效果。

关机和弦音:三降调,按音调分3个阶段

F=4.2,Tv=200,Tf=200

F=4.0,Tv=200,Tf=200

F=3.8,Tv=200,Tf=1500

因为三声频率从4.2KHz升到4KHz再到3.8KHz,频率连续降低,最后一声的Tf时间较长,还有音量渐隐的效果。

另外音乐是由Do,Re,Mi,Fa,So,La,Xi,Do几个音调组成的,电子琴上的按键对应着不同的音频频率,只要通过单片机的程序控制发声的频率和时间就演奏了哦!

51单片机蜂鸣器演奏《小苹果》C语言程序,单片机控制蜂鸣器演奏音阶实例相关推荐

  1. 单片机读tf卡c语言程序,单片机读写SD卡,MMC卡,MiniSD,TF卡,MicroSD卡

    图一 一:系统构成: 1:89C51单片机(ISP 单片机,可不用编程器) 2:128x64LCD 3: 带SD ,MiniSD ,MicroSD(TFSD)卡座 送32MByte SD卡 4:支持红 ...

  2. 52单片机led灯闪烁c语言程序,单片机LED灯闪烁程序

    原标题:单片机LED灯闪烁程序 点亮 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点 ...

  3. 52单片机led灯闪烁c语言程序,单片机 LED 灯闪烁程序

    点亮 LED 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁 ...

  4. 单片机读tf卡c语言程序,单片机读写U盘闪盘超精简C源程序

    #i nclude "CH375INC.H" #i nclude /* 以下定义适用于MCS-51单片机,其它单片机参照修改 */ #define  UINT8     unsig ...

  5. 单片机六位抢答器c语言程序,单片机八人抢答器程序设计

    有一个<单片机八人抢答器程序设计>的题目. 设计要求: 利用 KEIL 软件编制控制程序. 利用 PROTEUS 仿真软件,绘制单片机控制系统: P1 口接 8 个按钮,编号为1.2.3. ...

  6. 单片机六位抢答器c语言程序,单片机六人抢答器程序.doc

    题目如下:六人抢答器,以拨动开关K0~K5中的某个开关为ON作为抢答按键,无人抢答时,6只数码管循环轮流显示1~6跑马,谁先抢答,数码管停止跑马,6个数码管同时亮谁的编号,气候再有按键按下,系统不予回 ...

  7. 液晶显示屏的C语言编码,单片机液晶汉字显示c语言程序

    单片机液晶汉字显示c语言程序 单片机液晶汉字显示c语言程序 /*液晶屏分为4行*12列汉字,全部使用模拟接口方式. /* TGLCMLIMIT64A接口程序(模拟方式) ;************** ...

  8. 超声波c语言程序,51单片机超声波模块的C语言程序.doc

    51单片机超声波模块的C语言程序.doc 超声波模块程序 超声波模块程序 Trig P20 Echo P32 include define uchar unsigned char define uin ...

  9. c语言打铃器单片机程序,51单片机自动打铃C语言程序

    51单片机自动打铃C语言程序: #include "reg51.h" #include "intrins.h" #define uchar unsigned c ...

  10. 洗衣机洗涤部分c语言程序,51单片机洗衣机控制板及C语言程序

    51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣.经济洗衣.单独洗衣以及排水四种洗衣等四种方式,有强洗.弱洗及运行/暂停.显示及报警功能, ...

最新文章

  1. go 怎么遍历json数据_json数据怎么处理 好难 啊!
  2. [YTU]_2632 ( B2 友元光顾)
  3. [转]gtest使用
  4. sun.misc.Unsafe操作手册
  5. [剑指offer][JAVA]面试题第[07]题[重建二叉树][递归]
  6. 非期望产出的sbm模型_投入产出模型在评价中应用的局限性
  7. Oracle的主键和外键
  8. SQL高级查询——50句查询(含答案) ---参考别人的,感觉很好就记录下来留着自己看。...
  9. ruby服务器端解析json字符串
  10. java 重命名_Java如何重命名文件?
  11. kmem 反编译linux内核_24小时学通Linux内核之如何处理输入输出操作
  12. JSON格式化软件 - 开源工具 JSON Viewer
  13. 操作系统课程设计--银行家算法的模拟实现
  14. js上传本地文件到oss
  15. vue中使用语音提示
  16. 【第三方互联】微博2、创建新浪微博(sina)互联应用
  17. 单招软件职业技能测试,招生信息网-2019年单独招生《职业技能测试》考试大纲...
  18. 字符集和编码 UNICODE、ANSI、UTF-8、GB2312 都是什么鬼
  19. o.s.boot.SpringApplication : Application run failed错误
  20. 设置SVN提交代码时,忽略无效的文件和文件夹

热门文章

  1. spss怎样将某一列的类型由字符串转变为数字?
  2. 东华与东软两大软件公司
  3. 计算机等级信息安全技术试题,2019年计算机等级考试三级信息安全技术模拟试题精选...
  4. Matlab的输入输出函数,input()fprintf()disp()语法介绍,fprintf()disp()的区别
  5. 练习:万达院线股价分析
  6. 代码片段 - 怎样获取jqGrid的各种参数? jqGrid刷新当前列表页代码
  7. overleaf注册指南(latex神器)
  8. motrix下载没速度_高颜值没广告 下载神器Motrix体验
  9. 本地开发部署微信公众号(H5)流程和坑点
  10. 互联网早报:蚂蚁链正式发起“宝藏计划”,开放可信数字技术守护传统文化