"); //-->
AT89S51单片机试验及实践教程之电子琴 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 实验任务 1. 由 4X4 组成 16 个按钮矩阵,设计成 16 个音。 2. 可随意弹奏想要表达的音乐。 2. 电路原理图
3. 系统板硬件连线 1. 把“单片机系统”区域中的 P1.0 端口用导线连接到“音频放大模块”区域中的 SPK IN 端口上; 2. 把“单片机系统“区域中的 P3.0 - P3.7 端口用 8 芯排线连接到“ 4X4 行列式键盘”区域中的 C1 - C4 R1 - R4 端口上; 4. 相关程序内容 1. 4X4 行列式键盘识别; 2. 音乐产生的方法; 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时 / 计数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机 12MHZ 晶振为例,例出高中低音符与单片机计数 T0 相关的计数值如下表所示
下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据 低音 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 调)
|