• 嵌入式交流群:705573984 资源分享群:708912078

51单片机控制无源蜂鸣器实现演奏任意乐曲

51单片机 一纸江南 1年前 (2019-06-27) 1136次浏览 已收录 0个评论 扫描二维码

视频演示地址:https://www.bilibili.com/video/av56966434/

第一步:打开音乐乐谱提取软件,根据对应的乐谱把歌曲进行转换

找更多乐谱可以到这个网站:http://www.jianpu.cn/

乐谱截图:

51单片机控制无源蜂鸣器实现演奏任意乐曲

提取软件截图:

51单片机控制无源蜂鸣器实现演奏任意乐曲

第二步:把生成的代码放到工程中编译一下,生成可执行文件

生成的新代码替换下图选中的代码:

51单片机控制无源蜂鸣器实现演奏任意乐曲

程序相关说明:

曲谱存贮格式 unsigned char code MusicName{音高,音长,音高,音长…., 0,0};  末尾:0,0 表示结束(Important)

音高由三位数字组成:

个位是表示 1~7 这七个音符

十位是表示音符所在的音区:1-低音,2-中音,3-高音;

百位表示这个音符是否要升半音: 0-不升,1-升半音。

音长最多由三位数字组成:

个位表示音符的时值,其对应关系是:

|数值(n): |0 |1 |2 |3 | 4 | 5 | 6

|几分音符: |1 |2 |4 |8 |16 |32 |64 音符=2^n

十位表示音符的演奏效果(0-2): 0-普通,1-连音,2-顿音

百位是符点位: 0-无符点,1-有符点

调用演奏子程序的格式:

Play(乐曲名,调号,升降八度,演奏速度);

|乐曲名 : 要播放的乐曲指针,结尾以(0,0)结束;

|调号(0-11) : 是指乐曲升多少个半音演奏;

|升降八度(1-3) : 1:降八度, 2:不升不降, 3:升八度;

|演奏速度(1-12000): 值越大速度越快;

程序和文件:

城通网盘:https://u10165491.ctfile.com/fs/10165491-384149862

百度网盘:https://pan.baidu.com/s/1JPun6-ELi0dYxbLwS5aYzA

提取码: 2ee6


编程/单片机/嵌入式交流群:705573984 资源分享群:708912078 / 我的B站频道:程序猿的黄金单片机
喜欢 (5)
[xiongl2468@qq.com]
分享 (0)
一纸江南
关于作者:
学习嵌入式,分享一些电脑使用技巧,收集网络资源。

您必须 登录 才能发表评论!