EDA实现电子琴的程序.docx
《EDA实现电子琴的程序.docx》由会员分享,可在线阅读,更多相关《EDA实现电子琴的程序.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.试验十五 电子琴设计一、音名与频率的关系:音乐上的十二平均律规定:每两个八度音之间的频率相差一倍。在这两个八度音之间,分成十二个半音,每两个相邻伴音的频率比为 122。另外还规定,音名 A 的频率为440Hz。音名 B 到 C、E 到 F 之间为半音,其余为全音。这样,可计算得从A简谱的低音6到a1简谱的高音 6之间每个音名的频率为:精品A6:440Hz 1760HzB7:493.88Hz c1:523.25Hz d2:587.33Hz e3:659.25Hz f4:698.46Hz g5:783.99Hza6:880Hza1 6 :b7:987.76Hz c11:1046.50Hz d12
2、:1174.66Hz e13:1318.51Hz f14:1396.92Hz g15:1567.98Hz二、设计要求:设计一个电子琴,要求能演奏音名A 到 a1 之间的全部音阶。按下一个键,则演奏该音名,并用数码管显示音名,用发光二极管指示高、中、低音。三、设计提示:本试验由键盘编码,音频输出译码器、分频器组成。取 10MHz 信号作为基准。以基准频率除以上述频率,可得各音名频率的分频系数。留意,为了削减输出的偶次谐波成分, 最终输出应为对称方波。音频输出译码器实质上是一个多路选择器,依据键盘编码的输出,选择音阶发生器的不同的预置数,分频后输出音频。分频器可以为加法计数器,以可以为减法计数器,
3、计算预置数时稍有不同,应加以留意。另外,应依据基准频率和输出频率,来确定计数器的位数。设计框图如以以下图所示:10MHz 时钟扫描时钟按键编码键码按键输入预置 预置数数选择可预置计数器T 触发器音频输出二 分显示输出译码器电子琴框图四、试验步骤1 、 启 动ISE集 成 开 发 环 境 , 创 建 工 程 并 输 入 设 计 源 文 件 。2、对设计进展时序仿真,分析设计的正确性。3、锁定引脚,完成设计实现过程。并在试验箱上连线,利用iMPACT 进展程序下载。4、在试验箱上验证电子琴的功能,观看并记录试验结果. 五、试验报告1. music 的 VHDL 源程序: library ieee;
4、use ieee.std_logic_1164.all; entity music isport(kin: std_logic_vector(0 to 15); spk_out: out std_logic;led_out: out std_logic_vector(6 downto 0); index: out std_logic_vector(2 downto 0); clk: in std_logic);end music;architecture stru of music is component tonetabport();end component;index : in INTE
5、GER range 0 to 15;tone : out INTEGER range 0 to 16#3fff#; code : out INTEGER range 0 to 15;high : out STD_LOGIC_VECTOR(2 DOWNTO 0)component tonegenport();end component;clk : in STD_LOGIC;tone : in integer range 0 to 16#3fff#; spks : out STD_LOGICcomponent hex2ledport();end component;hex : in integer
6、 range 0 to 15;led : out STD_LOGIC_VECTOR(6 downto 0)component keybordport();end component;kin : in STD_LOGIC_VECTOR(0 to 15); kout : out INTEGER range 0 to 15signal kout: integer range 0 to 15;signal tone: INTEGER range 0 to 16#3fff#; signal digit: integer range 0 to 15;beginu1: keybord port map (k
7、in=kin,kout=kout);u2: tonetab port map (index=kout,tone=tone,code=digit,high=index); u3: tonegen port map (clk=clk,tone=tone,spks=spk_out);u4: hex2led port map (hex=digit,led=led_out); end stru;2. hex2led 的VHDL 源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity hex2led isport();end hex2led;hex : in
8、integer range 0 to 15;led : out STD_LOGIC_VECTOR(6 downto 0)architecture rtl of hex2led issignal data : std_logic_vector(6 downto 0);beginled=not data;with hex selectdata= “1111001“ when 1,-1“0100100“ when 2,-2“0110000“ when 3,-3“0011001“ when 4,-4“0010010“ when 5,-5“0000010“ when 6,-6“1111000“ when
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实现 电子琴 程序
限制150内