简易电子琴的 VHDL设计与实现 1 2 3 4 5 6 7一
设计课题与任务要求:设计制作一个简易电子琴演奏器
原理概述:根据声乐知识,产生音乐的两个因素是音乐频率的持续时间,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为 12 个半音
每两个半音的频率比为 4
另外,音名 A(乐谱中的低音 6)的频率为 440HZ,音名 B 到 C 之间,E 到 F之间为半音,其余为全音
由此可以计算出乐谱中从低音 1 到高音 1 之间每个音名的频率如下表所示
表 1 简谱中的音名与频率的关系音名频率(Hz)音名频率(Hz)音名频率(Hz)低音 1261
63中音 1523
25高音 11046
50低音 2293
67中音 2587
33高音 21174
66低音 3329
63中音 3659
25高音 31318
51低音 4349
23中音 4698
46高音 41396
92低音 5391
99中音 5783
99高音 51567
98低音 6440中音 6880高音 61760低音 7493
88中音 7987
76高音 71975
52基本要求:1、 用 8×8 点阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘
其中点阵的第一列用一个 LED 点亮表示音符“1”,第二列用二个 LED 点亮表示音符“2”,依此类推,如下图所示
图 1 点阵显示的电子琴键盘2、 用 BTN1~BTN7 七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符
当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出
下图所示为按下 BTN3 按键时点阵的显示情况
1 2 3 4 5 6 7图 2 按键按下后的点阵显示3、 由拨