Proteus—40个单片机初学程序-22.电子琴.docVIP

  • 8
  • 0
  • 约1.32万字
  • 约 14页
  • 2018-05-30 发布于广东
  • 举报

Proteus—40个单片机初学程序-22.电子琴.doc

第四章 实验及实践课题(22) 电子琴 (1.?????? 由4X4组成16个按钮矩阵,设计成16个音。 (2.?????? 可随意弹奏想要表达的音乐。 2. 电路原理图 图4.22.1 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 65157 低 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之间 1 2 3 4 5 6 7 8 9 10 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 unsigned int code tab[]={64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178}; db定义字节型的变量 ? dw定义字类型(两个字节)变量 ? dd定义双字类型(两个字)变量?2、音乐的音拍,一个节拍为单位(C调) 曲调值 DELAY ? 曲调值 DELAY 调4/4 125ms ? 调4/4 62ms

文档评论(0)

1亿VIP精品文档

相关文档