如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
电子琴课程名称:学院(系):电子信息工程专业:电子信息工程班级:学生姓名:学号:完成日期:成绩:1设计要求(1)有两种模式可供选择,分别为弹奏模式和自动演奏模式。(2)在弹奏模式下,分别按下实验箱上七个键,扬声器分别发出中音Do,Re,Mi,Fa,Sol,La,Ti(3)在自动演奏模式下,自动循环播放歌曲JingleBells。(4)由三位数码管分别显示高、中、低音的音符。2设计分析及系统方案设计设计分析:电子琴的设计包括四个模块:弹奏模块keyplay、自动演奏模块autoplay、查表及显示模块table和分频模块fenpin。弹奏模块keyplay根据按键动作key产生指示音调的index_key自动演奏模块autoplay接收1024Hz的时钟信号,输出index_auto查表及显示模块table根据按键button选择采用index_key或ndex_auto来查分频系数表,输出分频系数tone。同时将音调对应的BCD码code0(低音)、code1(中音)、code2(高音)分别输出给三个数码管。分频模块fenpin接收tabled输出的分频系数tone,并据此分频,将对应频率的信号buzz输出给扬声器供其发声。系统设计方案:顶层设计:输入:6MHz时钟clk、1024Hz时钟、按键key[6..0]、按键button输出:spkout给扬声器弹奏模块keyplay:将输入key[6..0]编码为index_key[4..0]。index_key[4..0]的高两位表示高、中、低音,00表示低音,01表示中音、10表示高音。由于按键数目有限,只能弹出中音。index_key[4..0]低三位表示音调,001表示do,010表示re,以此类推,000表示不发音。自动演奏模块autoplay:把1024Hz的输入时钟分频为16Hz,作为节拍。将要自动演奏的歌曲预先写为index_auto的格式(index_auto格式与index_key格式相同)。以16Hz的频率将index_auto输出。查表及显示模块table:(1)输入按键button用于选择模式。由于是琴键式,不能根据button本身的值来选择模式。故加一个内部信号choice,button每来一个上升沿,choice翻转一次。Choice为1则把index_auto赋给内部信号index,否则把index_key赋给它。(2)用index来查表,获得分频系数tone,输出。(3)同时根据index获得BCD码表示的高、中、低音的音调,输出给数码管。分频模块fenpin:输入分频系数tone。(1)设置内部信号i用于计数,clk_data作为分频结果。,每次clk上升沿检测i是否等于tone,相等则把i清零,并使clk_data翻转,否则i自增1。(2)把clk_data赋给输出信号buzz,由buzz驱动扬声器发声。设计框图:buzzcode0code1code2tonefenpinbuttonIndex_autoIndex_keytableClk2autoplaykeyKeyplay3系统以及模块硬件电路设计译码器译码器译码器PIO27-24PIO23-20PIO23-20FPGA最小系统Clk0Clk5PIO7PIO6PIO5PIO4PIO3PIO2PIO1PIO0spk6MHz1024HzKey0Key1Key2Key3Key4Key5Key6Button试验箱使用的是模式3的电路结构。按键PIO7是模式选择按键button,每按下一次改变一次模式按键PIO6-0用于弹奏,在弹奏模式下,被按下时分别发出中音Do,Re,Mi,Fa,Sol,La,Ti。Clk0用于分频以供扬声器发声Clk5用于控制自动演奏节拍三个数码管用于显示高、中、低音音调下载时选择的开发系统模式以及管脚定义表1GW48-CK开发系统工作模式:接口名称类型(输入/输出)结构图上的信号名引脚号说明clkINPUTCLK02供分频发声Clk2INPUTCLK583供分频获得节拍KeyINPUTPIO6-011-5按键弹奏ButtonINPUTPIO716模式选择Code0topOUTPUTPIO19-1630-27低音显示Code1topOUTPUTPIO23-2038-35中音显示Code2topOUTPUTPIO27-2449-47,39高音显示SpkoutOUTPUTSPEAKER3发声4系统的