欢迎来到天天文库
浏览记录
ID:12004997
大小:469.50 KB
页数:4页
时间:2018-07-15
《硬件电子琴电路设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、南昌航空大学实验报告年月日课程名称:EDA技术实验课程名称:硬件电子琴电路设计班级:_09083114___姓名:康惠洋同组人:_________________________指导老师评定:___________________________签名:_____________________一、实验目的学习利用数控分频器设计硬件电子琴实验。二、实验原理主系统由3个模块组成,其内部有两个功能模块:TONE.VHD和SPEAKER.VHD。模块TONE是音阶发生器,当8位发声器控制输入INDEX中某一位高电平时,则对应某一音阶的数值将从端口TONE输出,作
2、为获得该音阶的分频预制值;同时CODE输出对应该音阶简谱的显示数码,如‘5‘,并由HIGH输出指示音阶高8度显示,其语句结构只是类似与真值表的纯组合电路描述,其中的音阶分频预置值,如Tone<=1290是根据产生音阶频率所对应的分频比获得的。图5-1硬件电子琴电路结构模块SPEAKER中的主要电路时一个数控分频器,它由一个初值可预置的加法计数器构成,当模块SPEARKER由端口TONE获得一个2进制数后,将以此值为计数器的预置数,对端口CLK12MHZ输入的频率进行分频,之后由SPKOUT向扬声器输出发声。三、实验内容编译适配设计文件,给出仿真波形,最后
3、进行下载和硬件测试实验,建议使用实验电路模式“3”,用短路帽选择“CLOCK9”的输入频率选择12MHz,此信号作为系统输入信号CLK12MHZ:键8至键1作为INDEX输入信号控制各音阶;选择数码管1显示琴音阶普码,发光管D1显示高8度。四、实验设计参考1、SPEARKER模块设计:VHDL语言描述为:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSpeakerISPORT(clk1:INSTD_LOGIC;Tone1:ININTEGERRANGE0TO16#7FF#;SpkS:OUTSTD_LOGIC);E
4、ND;ARCHITECTUREoneOFSpeakerISSIGNALPreCLK,FullSpkS:STD_LOGIC;BEGINDivieCLK:PROCESS(clk1)VARIABLECount4:INTEGERRANGE0TO15;BEGINPreCLK<='0';IFCount4>11THENPreCLK<='1';Count4:=0;ELSIFclk1'EVENTANDclk1='1'THENCount4:=Count4+1;ENDIF;ENDPROCESS;GenSpkS:PROCESS(PreCLK,Tone1)VARIABLECoun
5、t11:INTEGERRANGE0TO16#7FF#;BEGINIFPreCLK'EVENTANDPreCLK='1'THENIFCount11=16#7FF#THENCount11:=Tone1;FullSpkS<='1';ELSECount11:=Count11+1;FullSpkS<='0';ENDIF;ENDIF;ENDPROCESS;DelaySpkS:PROCESS(FullSpkS)VARIABLECount2:STD_LOGIC:='0';BEGINIFFullSpkS'EVENTANDFullSpkS='1'THENCount2:=NO
6、TCount2;IFCount2='1'THENSpkS<='1';ELSESpkS<='0';ENDIF;ENDIF;ENDPROCESS;END;波形仿真如图5-2所示:图5-2SPEARKER波形仿真图1、TONE模块设计VHDL语言描述为;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYToneISPORT(Index:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE:OUTINTEGERRANGE0TO15;HIGH:OUTSTD_LOGIC;Tone:OUTINTEGERRANGE0
7、TO16#7FF#);END;ARCHITECTUREoneOFToneISBEGINSearch:PROCESS(Index)BEGINCASEIndexISWHEN"00000001"=>Tone<=773;CODE<=1;HIGH<='0';WHEN"00000010"=>Tone<=912;CODE<=2;HIGH<='0';WHEN"00000100"=>Tone<=1036;CODE<=3;HIGH<='0';WHEN"00001000"=>Tone<=1116;CODE<=4;HIGH<='0';WHEN"00010000"=>Tone<=
8、1197;CODE<=5;HIGH<='0';WHEN"00100000"=>T
此文档下载收益归作者所有