蜂鸣器奏乐

蜂鸣器应用之播放音乐(STC89C52RC为例) 本文介绍了蜂鸣器的原理、乐谱中音符表示和时长的含义,以及C调音符与频率对照表的作用。蜂鸣器通过调节频率和时长来发出不同的音调,乐谱中的音符表示不同的音符,时长则表示音符持续的时间。C调音符与频率对照表则可以帮助我们确定不同音符对应的频率,从而实现蜂鸣器的播放功能。 阅读详情

一、粗略了解简谱

拍号:如图,“2”表示一个小节有2拍,“4”表示4分音符为一拍

终止线表示歌曲结束

注意:以下音符都按以四分音符为一拍计算拍数

四分音符:

唱一拍

二分音符:

某一个音右边有一个小横线,这个音唱两拍

全音符

某一个音右边有4个小横线,这个音唱四拍

八分音符

下面有一个横线的,这个音唱半拍

十六分音符

某个音下面有两个横线,这个音唱四分之一拍

附点音符

休止符

三连音

明示三连(bushi)

连音线

延音线连接的是相同的音符,功能和“” 一样。演唱圆滑线下面的音符时不能换气

反复记号

反复记号表示唱到反复记号处在唱一遍才结束

想这种的,演唱到第二个反复记号这里再回到第一个反复记号这儿,然后唱到第一个小房子这儿时跳到第二个小房子这儿。也就是说第一个小房子里面的是第一遍唱的,第二个小房子里面的是第二遍唱的。

二、把简谱转成代码

一、确定音阶对印频率

#define STOP 0
#define L_DO 262
#define L_RE 294
#define L_M  330
#define L_FA 349
#define L_SO 392
#define L_LA 440
#define L_SI 494
#define M_DO 523
#define M_RE 587
#define M_M  659
#define M_FA 698
#define M_SO 784
#define M_LA 880
#define M_SI 988
#define H_DO 1046
#define H_RE 1175
#define H_M 1318
#define H_FA 1397
#define H_SO 1568
#define H_LA 1760
#define H_SI 7967

2.乐谱处理

以最简单的歌曲为例:

uint16_t twinkle[] = {
    M_DO,M_DO,M_SO,M_SO,  M_LA,M_LA,M_SO,M_SO, 
    M_FA,M_FA,M_M, M_M,   M_RE,M_RE,M_DO,M_DO,
    M_SO,M_SO,M_FA,M_FA,  M_M, M_M, M_RE,M_RE,
    
    M_SO,M_SO,M_FA,M_FA,  M_M, M_M, M_RE,M_RE,
    M_DO,M_DO,M_SO,M_SO,  M_LA,M_LA,M_SO,M_SO,
    M_FA,M_FA,M_M ,M_M,   M_RE,M_RE,M_DO,M_DO,
};

GUI_Audio au = {
    .freqs = twinkle,
    .length = sizeof(freqs)/sizeof(uint16_t),
    .space = 250
};

如图:space表示一拍间隔,单位毫秒,音频数据存储在数组中。

来个难一点的

uint16_t freqs2[] = {
    STOP,STOP,  STOP,STOP,  M_SO,M_SO,

    M_LA,M_LA,  M_SO,M_SO,  H_DO,H_DO,
    M_SI,M_SI,  M_SI,M_SI,  M_SO,M_SO,
    M_LA,M_LA,  M_SO,M_SO,  H_RE,H_RE,
    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,
    H_SO,H_SO,  H_M, H_M,   H_DO,H_DO,
    M_SI,M_SI,  M_LA,M_LA,  M_LA,M_LA, 
    STOP,STOP,  STOP,STOP,  H_FA,H_FA,
    H_M, H_M,   M_DO,H_DO,  H_RE,H_RE,     

    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,

    M_LA,M_LA,  M_SO,M_SO,  H_DO,H_DO,
    M_SI,M_SI,  M_SI,M_SI,  M_SO,M_SO,
    M_LA,M_LA,  M_SO,M_SO,  H_RE,H_RE,
    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,
    H_SO,H_SO,  H_M, H_M,   H_DO,H_DO,
    M_SI,M_SI,  M_LA,M_LA,  M_LA,M_LA, 
    STOP,STOP,  STOP,STOP,  H_FA,H_FA,
    H_M, H_M,   M_DO,H_DO,  H_RE,H_RE,   

    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,

    H_RE,H_RE,  H_RE,H_RE,  H_FA,H_FA,
    H_M, H_M,   H_M, H_M,   H_DO,H_DO,

    H_RE,H_RE,  H_M, H_M,   H_FA,H_FA,
    H_M, H_M,   H_M, H_M,   M_SO,M_SO,
    H_RE,H_RE,  H_RE,H_RE,  H_FA,H_FA,
    H_M, H_M,   H_M, H_M,   H_DO,H_DO, 
    H_RE,H_RE,  H_DO,H_DO,  M_SI,M_SI,
    H_DO,H_DO,  H_DO,H_DO,  STOP,STOP,
};

GUI_Audio au2 = {
    .freqs = freqs2,
    .length = sizeof(freqs2)/sizeof(uint16_t),
    .space = 250
};

参考:

第二课 认识四分音符_哔哩哔哩_bilibili

无源蜂鸣器使用方法 本文以《生日快乐》为例,介绍如何把乐曲变为编码,再由编码变为音乐的流程。 阅读详情

相关推荐

【Espruino】NO.08 使用PWM驱动蜂鸣器奏乐

http://blog.youkuaiyun.com/qwert1213131/article/details/28092169 本文属于个人理解,能力有限,纰漏在所难免,还望指正! 【小鱼有点电】 【Espruino中文社区】 蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。无源蜂鸣器声音频率可控,可以做出“多来米发索拉西”的效果。 本节使用的则是无源蜂鸣器

【小鱼有点电】 4444

51单片机之蜂鸣器模拟钢琴(代码详解)——起风了

51单片机之蜂鸣器模拟钢琴(代码详解)

weixin_52853526的博客 2万+

嵌入式声光同步项目:用PWM与GPIO实现蜂鸣器奏乐与LED灯光秀

在嵌入式系统开发中,脉冲宽度调制(PWM)和通用输入输出(GPIO)是两项基础且核心的技术。PWM通过快速开关数字信号来模拟模拟量输出,常用于控制电机速度、LED亮度调节以及驱动无源蜂鸣器产生不同频率的声音。GPIO则负责微控制器与外部设备的数字信号交互,如控制LED的亮灭。这两项技术的结合,能够实现精确的时序控制和硬件交互,在物联网、智能硬件和创客项目中具有广泛的应用价值。本文聚焦于一个典型的嵌入式实践案例——声光同步系统,通过PWM驱动蜂鸣器演奏旋律,并利用GPIO同步控制多个LED闪烁,生动演示了时序

weixin_34037173的博客 420

小星星简谱Python生成mid音频文件程序代码

simple_score = [(int(note), 1) for note in nums] # 每个音符默认占一拍。print(f"不支持的音符: {note}")

qq_32257509的博客 584

51单片机攻略—蜂鸣器

一、程序实战 (二)蜂鸣器相关 1、控制蜂鸣器打开与关闭 #include <reg52.h> #define uint unsigned int sbit beep = P3^6; void delay(uint z){ uint x,y; for (x = 100; x > 0; x--) { for(y = z; y > 0; y--)...

m0_46115596的博客 1693

从“一通电就响”到“编程奏乐”:深入解析有源与无源蜂鸣器的核心差异与选型实战

本文深入解析有源蜂鸣器和无源蜂鸣器的核心差异与选型实战。通过对比两者的工作原理、驱动方式及应用场景,帮助开发者根据项目需求做出明智选择。有源蜂鸣器适合简单报警音,而无源蜂鸣器则能实现复杂音乐播放,是硬件设计中的关键考量。

weixin_30642561的博客 533

STM32通过PWM实现有源蜂鸣器音节奏

【代码】STM32通过PWM实现有源蜂鸣器音节奏。

qq_51043789的博客 1409

MSP430蜂鸣器音高、音长对照表

MSP430蜂鸣器音高、音长对照表

单片机蜂鸣器奏乐代码例子

/************************************************************************ [文件名] C51音乐程序(八月桂花) [功能] 通过单片机演奏音乐 /**********************************************************************/ #i

tajon1226的专栏 3万+

【TestCenter】RFC2544时延测试

本文介绍了使用Spirent TestCenter测试路由器PPPOE时延的RFC2544标准方法。RFC2544定义了三种时延类型:转发时延(LILO)、存储转发时延(LIFO)和直通时延(FIFO)。文章详细说明了测试步骤,包括测试拓扑搭建、PPPOE环境配置、RFC2544测试任务创建等关键环节,并介绍了如何设置时延参数和查看测试报告。测试结果表明,大字节帧的时延高于小字节帧,且负载越高时延越大。该测试方法遵循国际标准,可全面评估网络设备在不同负载下的性能表现。

lai_2020的博客 1399

LangChain学习及应用(超详细)

Model I/O 部分是与语言模型进行交互的核心组件,包括输入提示(Prompt Template)、调用模型(Model)、输出解析(Output Parser)。简单来说,就是输入、处理、输出这三个步骤。LLM 因其具有海量参数,需要花费相当的物力与时间成本进行预训练和微调,同时商用 LLM 还需要进行各种安全测试与风险评估等。因此 LLM 会存在知识滞后的问题。在专有领域,LLM 无法学习到所有的专业知识细节,因此在面向专业领域知识的提问时,无法给出可靠准确的回答。

weixin_39764056的博客 4233

PWM脉冲宽度调制—呼吸灯以及蜂鸣器奏乐应用

pwm脉冲示例图。

lingying77的博客 1237

NVMe-MI 协议解析:带外管理框架与实现原理

本文深入解析了NVMe-MI协议,这是一种用于NVMe固态硬盘的标准化带外管理接口。文章详细阐述了其独立于操作系统的管理框架,通过MCTP协议栈实现,支持SMBus/I2C、PCIe VDM和I3C等物理层,从而在系统故障时仍能可靠地进行健康监控、固件升级等关键运维操作,是现代数据中心存储管理的核心基础设施。

lll78的博客 960

兰花草c语言编码蜂鸣器,蜂鸣器奏乐-多种音乐分享

蜂鸣器奏乐-多种音乐分享大小:0.1 MB 人气: 2017-09-06 需要积分:01、蜂鸣器奏乐(祝你平安)ORG 0000HLJMP STARTORG 000BHINC 20H ;中断服务,中断计数器加1MOV TH0,#0D8HMOV TL0,#0EFH ;12M晶振,形成10毫秒中断RETISTART:MOV SP,#50HMOV TH0,#0D8HMOV TL0,#0EFHMOV TM...

weixin_34124963的博客 972

浅谈车联网概述-1

车联网技术目前在车企中应用广泛,车联网通过车载传感器、无线通信等技术,能够将车辆上百的传感器数据上传至云端,当前智能网联车辆可以理解为一个“大号”手机。

Hello, World! 新能源汽车智能网联工程师,分享日常工作思考。 559

让 AI 自己“画施工图”——基于扩散模型的智能 CAD 管线生成

AI驱动CAD管线设计革命:Layout2CAD实现30秒自动化出图 针对设计院70%时间耗费在管线绘制的问题,研究团队基于Stable Diffusion开发了Layout2CAD系统,实现建筑草图到DWG施工图的智能转换。该系统采用三阶段流程:语义分割建筑底图→扩散生成多通道Heatmap(含管径/标高信息)→矢量化输出DWG实体,结合129M参数的多模块模型(Diffusion UNet+GraphRefiner)及规范判别器,确保1mm精度并自动满足GB50015-2019标准。

qq_74383080的博客 2013

蜂鸣器c51汇编语言,51单片机蜂鸣器奏乐实验汇编代码.doc

ORG 0000HLJMP STARTORG 000BHINC 20H ;中断服务,中断计数器加1MOV TH0,#0D8HMOV TL0,#0EFH ;12M晶振,形成10毫秒中断RETISTART:MOV SP,#50HMOV TH0,#0D8HMOV TL0,#0EFHMOV TMOD,#01HMOV IE,#82HMUSIC0:NOPMOV DPTR,#DAT ;表头地址送DPTRMOV ...

weixin_29326909的博客 4458

ARFoundation系列讲解-教程目录

一、教程目录 ARFoundation快速入门-01简介 ARFoundation快速入门-02环境搭建 ARFoundation快速入门-03环境配置之iOS ARFoundation快速入门-04环境配置之Android ARFoundation快速入门-05ARKit设备支持列表 ARFoundation快速入门-06ARCore设备支持列表 ARFoundation快速入门-07检查设备支持 ARFoundation快速入门-08平面检..........

a451319296的博客 3万+

6显示wan口未插线_配有LED音阶显示的蜂鸣奏乐器

本文将展示我最近用arduino制作的一个配有LED音阶显示小灯的蜂鸣奏乐器。一、效果展示----------------------------------------------------------------------------------------知乎视频​www.zhihu.com知乎视频​www.zhihu.com二、所需器材-------------------------...

weixin_30075185的博客 203

ML307R OpenCPU TCP使用

实现现象 平台下发数据,板子在收到数据之后,马上再发送到平台,通过串口助手可以看到已经接收到数据。ML307R TCP 是使用LWIP的标准的socket通信,具体TCP流程可以自行百度。实验目的:实现把接收的数据再发送到服务端。因为是4G,所以必须用外网的。

面朝大海春暖花开 2232

win7 vs2012+wdk8.0 搭建wdf驱动开发环境

开发环境搭建: 系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi (1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建windows drivers类型的工程。 注:vs2012不能安装wdk8.1,wdk8.1必须安装在vs2013上 下载链接:http://msdn.microsoft.com/zh-cn/win...

技术联盟 5342

从“一触即响”到“编程奏乐”:深入解析有源与无源蜂鸣器的核心差异与选型实战

本文深入解析有源蜂鸣器与无源蜂鸣器的核心差异,通过对比其结构原理、驱动方式、音效可控性及功耗,并结合智能报警器与音乐盒等实战场景,提供清晰的选型决策树与避坑指南,帮助工程师根据项目需求(如简单报警或复杂音效)做出精准选择。

ik678901234的博客 382

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F103系列PWM输出应用之纸短情长音乐——无源蜂鸣器

STM32F103系列PWM输出应用之纸短情长音乐——无源蜂鸣器 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了基于STM32F1系列的无源蜂鸣器奏乐应用,实现了音乐《纸短情长》的播放。本项目主要利用STM32F103系列的PWM(脉冲宽度调制)输出功能,驱动无源蜂鸣器发出特定频率的声音,从而演奏出优美的音乐。 功能特点 基于STM32F103系列MCU,充分发挥...

gitblog_06700的博客 293

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Arduino入门教程十四|蜂鸣器演奏音乐(乐理+音高频率表+生日快乐完整代码)

本文介绍了一个Arduino蜂鸣器音乐演奏项目,适合零基础学习者。详细讲解了乐理基础知识(音高频率、音符时值、拍号速度)、有源与无源蜂鸣器的区别,以及Arduino的tone()函数使用方法。通过《生日快乐歌》和《小星星》两个实例,展示了如何将简谱转换为Arduino代码,实现完整歌曲演奏。项目重点包括:音高频率对照表、音符时长控制、蜂鸣器接线方法,并提供了可直接运行的完整代码。文章还解答了新手常见问题,帮助初学者快速掌握Arduino音乐编程技巧。

weixin_46718228的博客 719

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

单片机c语言音乐程序设计教程,51单片机C语言程序设计--速学教程实例(进阶篇)之蜂鸣器奏乐.pdf...

51单片机C语言程序设计--速学教程实例(进阶篇)之蜂鸣器奏乐.pdf/******************************************************************//* 名称:蜂鸣器奏乐演示程序 *//* 作者:苏涛 *//* 时间:2011-01-18 *//* 单位:安徽建筑工业学院 电子与信息工程学院 *//* 07级电子信息工程专业 二班 *//*...

weixin_39956443的博客 218

从‘滴答’到‘音乐’:用STM32F103C8T6的PWM,让你的无源蜂鸣器唱起歌来(附简易乐谱转换代码)

本文详细介绍了如何使用STM32F103C8T6的PWM功能驱动无源蜂鸣器演奏音乐。从硬件连接到定时器配置,再到乐谱转换代码的实现,逐步指导开发者将单调的蜂鸣声变为悦耳旋律。附带的简易乐谱转换代码和进阶优化技巧,让电子项目瞬间升级为音乐播放器。

weixin_42653691的博客 223
上一篇: 尝试JLC四层板
下一篇: 从dfs到记忆化搜索再到动态规划
python_use
博客等级 码龄5年 430粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值