首页
会员中心
到顶部
到尾部
51单片机

电子琴026_AT89S51单片机应用

时间:2020/10/14 10:54:05  作者:  来源:  查看:0  评论:0
内容摘要: 22. 电子琴1. 实验任务(1. 由4X4组成16个按钮矩阵,设计成16个音。(2. 可随意弹奏想要表达的音乐。2. 电路原理图 图4.22.1http://www.16sheji8.cn/3. 系统...
22. 电子琴
1. 实验任务
(1. 由4X4组成16个按钮矩阵,设计成16个音。
(2. 可随意弹奏想要表达的音乐。
2. 电路原理图
 
图4.22.1http://www.16sheji8.cn/
3. 系统板硬件连线
(1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;
(2. 把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;
4. 相关程序内容
(1. 4X4行列式键盘识别;
(2. 音乐产生的方法;
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示
音符 频率(HZ) 简谱码(T值)  音符 频率(HZ) 简谱码(T值)
低1 DO 262 63628  # 4 FA# 740 64860
#1 DO# 277 63731  中 5 SO 784 64898
低2 RE 294 63835  # 5 SO# 831 64934
#2 RE# 311 63928  中 6 LA 880 64968
低 3 M 330 64021  # 6 932 64994
低 4 FA 349 64103  中 7 SI 988 65030
# 4 FA# 370 64185  高 1 DO 1046 65058
低 5 SO 392 64260  # 1 DO# 1109 65085
# 5 SO# 415 64331  高 2 RE 1175 65110
低 6 LA 440 64400  # 2 RE# 1245 65134
# 6 466 64463  高 3 M 1318 65157http://www.16sheji8.cn/
低 7 SI 494 64524  高 4 FA 1397 65178
中 1 DO 523 64580  # 4 FA# 1480 65198
# 1 DO# 554 64633  高 5 SO 1568 65217
中 2 RE 587 64684  # 5 SO# 1661 65235
# 2 RE# 622 64732  高 6 LA 1760 65252
中 3 M 659 64777  # 6 1865 65268
中 4 FA 698 64820  高 7 SI 1967 65283
下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据
低音0-19之间,中音在20-39之间,高音在40-59之间
TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0
 DW 0,63731,63928,0,64185,64331,64463,0,0,0
 DW 0,64580,64684,64777,64820,64898,64968,65030,0,0
 DW 0,64633,64732,0,64860,64934,64994,0,0,0
 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0
 DW 0,65085,65134,0,65198,65235,65268,0,0,0
 DW 0
2、音乐的音拍,一个节拍为单位(C调)
曲调值 DELAY  曲调值 DELAY
调4/4 125ms  调4/4 62ms
调3/4 187ms  调3/4 94ms
调2/4 250ms  调2/4 125ms
对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。
在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。
  


相关评论
本类推荐
    广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号