初学单片机,基于51单片机的电子琴演奏音乐的程序代码
昨天我们在《初学单片机,想不通周杰伦的《菊花台》怎样被单片机演奏出来?》一文中聊了单片机如何演奏一段简谱音乐,之后在实物上进行的验证。
在实际程序运行时,发现了一个问题:音乐速度太快。
然后重新分析原因,发现在节拍的时间描述上有一个错误,今天更正一下:1/32节拍对应的不是31.25毫秒,应该是 125毫秒;1/4节拍对应的是1秒。按照文中节拍表,定时器2的定时时间为4毫秒。那么在定时器2定时时间依旧为1ms的情况下,节拍表做了如下修正,如图:
修正后的节拍表
由于蜂鸣器的表现比较差,音质不太理想,但是我们是本着学习设计思路的目的,也就暂且忍受一下这正确但不优美的音乐吧。。。
按照前文的思路,对两首歌曲的简谱进行了翻译,丢给了单片机去演奏。下面是录制的效果:
温馨提示:声音比较尖锐,建议调小音量或耳机拿出耳孔试听。
第一段,相信你能听出来:
第二段,就是前文举例的《菊花台》:
关于《单片机电子琴》实物的制作,以及“text格式转换bin格式”的方法,可以参考前面几篇文章,例如:《初学单片机,基于51单片机的电子琴还需要程序代码》。
操作说明:在前文基础上,保留前面10个按键的原有功能,最后两个按键改成了两首内置音乐的选择键。
附:修改后编译完成的单片机下载用程序代码(text格式需转换):
02 03 C3 B2 A6 32 FF FF FF FF FF 02 00 03 E4 FD
D2 A6 12 04 D4 C2 A6 12 04 D4 12 04 D4 0D BD BE
EF 12 04 D4 02 04 D4 43 8E 04 75 D7 20 75 D6 D1
53 8E EF 43 AF 04 22 02 0C 00 00 01 0B 00 01 0A
2E 02 08 00 00 00 75 96 40 E4 F5 95 F5 B2 F5 B1
C2 A6 22 43 8E 80 E4 F5 89 C2 8C D2 A9 22 FF FF
FF FF FF 02 02 2A 00 00 71 CC 79 C7 88 6C 95 78
A1 17 A6 6B B0 31 B8 E6 BC E4 C4 36 CA BC D0 8C
D3 36 06 02 08 02 09 02 09 01 08 01 09 08 06 01
05 03 06 02 08 02 09 02 09 01 08 01 09 02 06 09
06 02 08 02 09 02 09 01 08 01 09 08 06 01 05 03
08 02 06 02 05 01 06 01 05 01 04 01 05 02 02 09
02 02 05 09 08 02 06 09 05 01 04 01 02 09 08 02
06 02 05 01 06 01 05 01 04 01 05 02 02 09 00 05
04 02 05 02 06 09 08 02 09 09 0D 02 0C 02 0B 03
09 02 08 04 09 02 08 02 06 02 05 02 04 03 02 02
04 02 05 09 06 02 05 03 04 02 05 02 06 09 08 02
09 09 0D 02 0C 02 0B 03 0C 02 0B 04 08 09 06 02
0A 02 0B 02 04 02 05 02 06 04 05 09 04 02 04 06
04 06 06 09 05 02 06 03 00 03 06 02 08 02 06 02
05 02 06 04 04 09 05 02 06 02 08 02 06 03 05 09
04 02 05 03 00 03 06 09 08 01 06 01 09 02 08 09
09 02 08 03 06 02 08 04 06 03 05 02 06 02 08 03
06 02 05 04 04 03 05 04 06 09 05 02 06 03 00 03
06 02 08 02 06 02 05 02 06 04 04 09 05 02 06 02
08 02 06 03 05 09 04 02 05 03 00 03 06 09 08 01
06 01 09 02 08 09 09 02 08 03 06 02 08 04 06 03
05 02 06 02 08 03 06 02 05 02 05 02 04 02 04 05
00 05 04 02 05 02 06 09 08 02 09 09 0D 02 0C 02
0B 03 09 02 08 04 09 02 08 02 06 02 05 02 04 03
02 02 04 02 05 03 05 02 04 02 05 03 04 02 05 02
06 03 06 02 08 02 09 09 0D 02 0C 02 0B 03 0C 02
0B 04 08 09 06 02 0A 02 0B 02 04 02 05 02 06 04
05 04 04 06 00 00 00 7D 00 FA 01 F4 03 E8 07 D0
0B B8 0F A0 01 77 02 EE 05 DC C0 E0 C0 83 C0 82
C0 D0 75 D0 00 C0 06 C0 07 C3 E5 0D 95 0A E5 0C
94 00 40 03 02 03 13 E5 09 94 00 E5 08 94 00 40
0B E5 09 15 09 70 02 15 08 02 03 20 E5 0B 70 36
E5 0D 25 E0 FF E5 0C 33 FE 74 83 2F F5 82 74 00
3E F5 83 E4 93 25 E0 24 16 F5 82 E4 34 02 F5 83
E4 93 F5 08 74 01 93 F5 09 C2 8C C2 A6 74 82 2F
F5 82 74 00 80 3A E5 0B 64 01 70 59 E5 0D 25 E0
FF E5 0C 33 FE 74 DF 2F F5 82 74 00 3E F5 83 E4
93 25 E0 24 16 F5 82 E4 34 02 F5 83 E4 93 F5 08
74 01 93 F5 09 C2 8C C2 A6 74 DE 2F F5 82 74 00
3E F5 83 E4 93 FF 25 E0 24 67 F5 82 E4 34 00 F5
83 E4 93 F5 8A EF 25 E0 24 66 F5 82 E4 34 00 F5
83 E4 93 F5 8C E5 8A D3 94 00 40 04 7F 01 80 02
7F 00 E5 8C 4F 60 02 D2 8C 05 0D E5 0D 70 11 05
0C 80 0D C2 8C 53 8E EF C2 A6 75 08 00 75 09 00
D0 07 D0 06 D0 D0 D0 82 D0 83 D0 E0 32 7C 0C 75
0E 0C 12 00 46 12 00 53 12 00 27 D2 AF 12 00 0E
12 04 4F AC 07 EC C3 94 0C 50 35 E5 0E 6C 60 28
8C 0E C2 8C C2 A6 EC 25 E0 24 67 F5 82 E4 34 00
F5 83 E4 93 F5 8A EC 25 E0 24 66 F5 82 E4 34 00
F5 83 E4 93 F5 8C D2 8C 75 0C 00 85 0A 0D 80 15
30 8C 12 C3 E5 0D 95 0A E5 0C 94 00 40 07 C2 8C
75 0E 0C C2 A6 BC 0A 12 12 00 0E E4 F5 0B 75 0A
2E F5 0C F5 0D 43 8E 10 80 96 EC 64 0B 70 91 12
00 0E 75 0B 01 75 0A 9C E4 F5 0C F5 0D 43 8E 10
02 03 40 78 7F E4 F6 D8 FD 75 81 0F 02 04 0A 02
03 2D E4 93 A3 F8 E4 93 A3 40 03 F6 80 01 F2 08
DF F4 80 29 E4 93 A3 F8 54 07 24 0C C8 C3 33 C4
54 0F 44 20 C8 83 40 04 F4 56 80 01 46 F6 DF E4
80 0B 01 02 04 08 10 20 40 80 90 00 37 E4 7E 01
93 60 BC A3 FF 54 3F 30 E5 09 54 1F FE E4 93 A3
60 01 0E CF 54 C0 25 E0 60 A8 40 B8 E4 93 A3 FA
E4 93 A3 F8 E4 93 A3 C8 C5 82 C8 CA C5 83 CA F0
A3 C8 C5 82 C8 CA C5 83 CA DF E9 DE E7 80 BE 79
0C E5 A0 44 C0 FE E5 B0 44 03 7C 00 24 00 FF EC
3E FE EF 78 02 CE A2 E7 13 CE 13 D8 F8 FD AC 06
F4 70 02 EC F4 60 5A E4 F5 0F 12 04 D4 E5 A0 44
C0 FE E5 B0 44 03 7A 00 24 00 FF EA 3E FE EF 78
02 CE A2 E7 13 CE 13 D8 F8 6D 70 02 EE 6C 60 03
AF 01 22 05 0F E5 0F D3 94 A0 50 CE E4 FB 74 01
7E 00 A8 03 08 80 05 C3 33 CE 33 CE D8 F9 F4 FF
EE F4 FE EF B5 05 06 EE B5 04 02 A9 03 0B BB 0C
DD AF 01 22 7F 02 7E 72 DE FE DF FC 22
今天接着昨天的话题聊到了前面的设计思路在实物上的应用,如果您感兴趣可以动手试一下,欢迎在评论区留言交流,或者分享给更多朋友。。。
M01基于51单片机proteus音乐盒《诺言》,keil程序,c语言
M01音乐盒《诺言》、《罗刹海市》、《人间烟火》设计功能简介:使用51单片机设计一个简易音乐盒,要求如下:
·1、可以播放三首歌曲。
·2、设置一个按键,每按下一次切换一首。
发给您的资料:仿真+程序。仿真有两个版本:7.8和8.6版本,程序是keil版本,汇编语言编写。
相关问答
51单片机音乐 盒使用说明书?点击播放图标,就会自动弹出音乐盒为您播放您选择的歌曲、专辑和专题。2、您觉得好听的歌就点红心收藏吧,下次可以在“我的音乐”里听到。3、不仅想在...点...
51单片机 编程 程序 怎么编?51单片机编程程序怎么编?♣这种技术性问题在今日头条上,几乎没有一个高手给你一个答复。因为学习51单片机编程程序是需要长篇大论,并且用电脑操作截图来说明...
51单片机 的编写 程序 是什么?答51单片机的编写程序一般指的是单片机的编程语言有三种种:机器语言、汇编语言与高级语言。机器语言是计算机能够看懂的语言。(形式为一段二进制代码).汇编语...
用keil编写 51单片机程序 步骤?编写51单片机程序步骤一般包括以下几个步骤:1.确定程序的需求和功能,对程序进行整体设计。2.编写程序代码,采用C语言或汇编语言进行编程。3.使用keil集...
51 系列 单片机 编程指令表怎么用?使用51系列单片机编程指令表,首先需要了解指令表的结构和编码方式。指令表按照操作码进行分类,每个操作码对应不同的指令。在编程时,根据需要选择相应的指令,...
51单片机 可以有几个 程序 ?可以是:“一个单片机刻意烧一个程序,”,这种是最典型的应用,比如51单片机,一般就是开发完程序生成一个HEX,一个HEX对应烧写入一个MCU单片机。也可以是“一...
51单片机 如何烧录 程序 ?51单片机烧录程序的具体方法是:1.准备好51单片机开发板和usbisp烧录器。2.将usbisp烧录器连接到电脑上,并从烧录器制造商网站下载并安装烧录器驱动程序。...
51单片机 秒表 程序[回答]这个程序写的太乱了执行的顺序是先定义秒等一些寄存器,然后清零,并定义定时初值,开显示。再打开定时器中断,定时到,中断秒寄存器加1,加到10时清...
51单片机 编程有什么用?51单片机作为学习单片机的过程中必须要经过的一个过程来讲是非常重要的,原因在于51单片机从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象...
mcs 51 指令执行过程分为?MCS-51单片机的指令如果按功能划分可以分为五类:1,数据传送类指令:完成数据在单片机内部之间的传送。分为8位数和16位两种。除了奇偶位外,指令的执行对PSW...