数字电路课程设计 《梁祝》乐曲 数字时钟 乒乓球游戏机 串并乘法器文档格式.docx
- 文档编号:4977961
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:35
- 大小:169.83KB
数字电路课程设计 《梁祝》乐曲 数字时钟 乒乓球游戏机 串并乘法器文档格式.docx
《数字电路课程设计 《梁祝》乐曲 数字时钟 乒乓球游戏机 串并乘法器文档格式.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计 《梁祝》乐曲 数字时钟 乒乓球游戏机 串并乘法器文档格式.docx(35页珍藏版)》请在冰点文库上搜索。
SIGNALQI:
STD_LOGIC_VECTOR(5DOWNTO0);
COMPONENTNoteTabs
PORT(clk:
ToneIndex:
OUTINTEGERRANGE0TO15);
ENDCOMPONENT;
COMPONENTToneTaba
PORT(Index:
ININTEGERRANGE0TO15;
Tone:
OUTINTEGERRANGE0TO16#7FF#);
COMPONENTSpeakera
ININTEGERRANGE0TO16#7FF#;
SpkS:
SIGNALTone:
INTEGERRANGE0TO16#7FF#;
SIGNALToneIndex:
INTEGERRANGE0TO15;
BEGIN
u1:
NoteTabsPORTMAP(clk=>
CLK8HZ,ToneIndex=>
ToneIndex);
u2:
ToneTabaPORTMAP(Index=>
ToneIndex,Tone=>
Tone);
u3:
SpeakeraPORTMAP(clk=>
CLK12MHZ,Tone=>
Tone,SpkS=>
SPKOUT);
PROCESS(CLK8HZ)
BEGIN
IFCLK8HZ'
EVENTANDCLK8HZ='
1'
THEN
QI<
=QI+1;
ENDIF;
ENDPROCESS;
LED8(3DOWNTO0)<
=QI(5DOWNTO2);
LED8(7DOWNTO4)<
LED8(11DOWNTO8)<
LED8(15DOWNTO12)<
LED8(19DOWNTO16)<
LED8(23DOWNTO20)<
LED8(27DOWNTO24)<
LED8(31DOWNTO28)<
END;
音乐节拍和音调发生器(NOTETABS.VHD)
ENTITYNoteTabsIS
ARCHITECTUREoneOFNoteTabsIS
SIGNALCounter:
INTEGERRANGE0TO138;
BEGIN
CNT8:
PROCESS(clk)
IFCounter=138THENCounter<
=0;
ELSIF(clk'
EVENTANDclk='
)THEN
Counter<
=Counter+1;
Search:
PROCESS(Counter)
CASECounterIS--译码器,查歌曲的简谱,查表结果为音调表的索引值
WHEN00=>
ToneIndex<
=3;
--简谱"
3"
音
WHEN01=>
--发4个时钟节拍
WHEN02=>
WHEN03=>
WHEN04=>
=5;
5"
WHEN05=>
--发3个时钟节拍
WHEN06=>
WHEN07=>
=6;
6"
WHEN08=>
=8;
WHEN09=>
WHEN10=>
WHEN11=>
=9;
WHEN12=>
WHEN13=>
WHEN14=>
WHEN15=>
WHEN16=>
=12;
WHEN17=>
WHEN18=>
WHEN19=>
=15;
WHEN20=>
=13;
WHEN21=>
WHEN22=>
=10;
WHEN23=>
WHEN24=>
WHEN25=>
WHEN26=>
WHEN27=>
WHEN28=>
WHEN29=>
WHEN30=>
WHEN31=>
WHEN32=>
WHEN33=>
WHEN34=>
WHEN35=>
WHEN36=>
=7;
WHEN37=>
WHEN38=>
WHEN39=>
WHEN40=>
WHEN41=>
WHEN42=>
WHEN43=>
WHEN44=>
WHEN45=>
WHEN46=>
WHEN47=>
WHEN48=>
WHEN49=>
WHEN50=>
WHEN51=>
WHEN52=>
WHEN53=>
WHEN54=>
WHEN55=>
WHEN56=>
WHEN57=>
WHEN58=>
WHEN59=>
WHEN60=>
WHEN61=>
WHEN62=>
WHEN63=>
WHEN64=>
WHEN65=>
WHEN66=>
WHEN67=>
WHEN68=>
WHEN69=>
WHEN70=>
WHEN71=>
WHEN72=>
WHEN73=>
WHEN74=>
WHEN75=>
WHEN76=>
WHEN77=>
WHEN78=>
WHEN79=>
WHEN80=>
WHEN81=>
WHEN82=>
WHEN83=>
WHEN84=>
WHEN85=>
WHEN86=>
WHEN87=>
WHEN88=>
WHEN89=>
WHEN90=>
WHEN91=>
WHEN92=>
WHEN93=>
WHEN94=>
WHEN95=>
WHEN96=>
WHEN97=>
WHEN98=>
WHEN99=>
WHEN100=>
WHEN101=>
WHEN102=>
WHEN103=>
WHEN104=>
WHEN105=>
WHEN106=>
WHEN107=>
WHEN108=>
WHEN109=>
WHEN110=>
WHEN111=>
WHEN112=>
WHEN113=>
WHEN114=>
WHEN115=>
WHEN116=>
WHEN117=>
WHEN118=>
WHEN119=>
WHEN120=>
WHEN121=>
WHEN122=>
WHEN123=>
WHEN124=>
WHEN125=>
WHEN126=>
WHEN127=>
WHEN128=>
WHEN129=>
WHEN130=>
WHEN131=>
WHEN132=>
WHEN133=>
WHEN134=>
WHEN135=>
WHEN136=>
--简谱休止符à
输出
WHEN137=>
--频率为零
WHEN138=>
WHENOTHERS=>
NULL;
ENDCASE;
简谱码对应的分频预置数查表电路(ToneTaba.VHD)
USEIEEE.STD_LOGIC_unsigned.ALL;
ENTITYToneTabaIS
CODE:
OUTINTEGERRANGE0TO15;
HIGH:
OUTSTD_LOGIC;
ARCHITECTUREoneOFToneTabaIS
PROCESS(Index)
CASEIndexIS--译码电路,查表方式,控制音调的预置数
WHEN0=>
Tone<
=2047;
CODE<
=0;
HIGH<
='
0'
;
WHEN1=>
=773;
=1;
WHEN2=>
=912;
=2;
WHEN3=>
=1036;
=3;
WHEN5=>
=1197;
=5;
WHEN6=>
=1290;
=6;
WHEN7=>
=1372;
=7;
WHEN8=>
=1410;
WHEN9=>
=1480;
=1542;
=1622;
=1668;
=1728;
数控分频与演奏发生器(Speakera.VHD)
ENTITYSpeakeraIS
ARCHITECTUREoneOFSpeakeraIS
SIGNALPreCLK:
STD_LOGIC;
SIGNALFullSpkS:
DivideCLK:
VARIABLECount4:
PreCLK<
='
--将CLK进行16分频,PreCLK为CLK的16分频
IFCount4>
11THEN
Count4:
ELSIFclk'
=Count4+1;
GenSpkS:
PROCESS(PreCLK,Tone)
VARIABLECount11:
--11位可预置计数器
IFPreCLK'
EVENTANDPreCLK='
IFCount11=16#7FF#THEN
Count11:
=Tone;
FullSpkS<
ELSE
=Count11+1;
DelaySpkS:
PROCESS(FullSpkS)
VARIABLECount2:
--将输出再进行2分频,将脉冲展宽,以使扬声器有足够功率发音
IFFullSpkS'
EVENTANDFullSpkS='
Count2:
=NOTCount2;
IFCount2='
THENSpkS<
SpkS<
三:
系统以及各个模块的仿真波形
音乐节拍和音调发生器的仿真波形
简谱码对应的分频预置数查表电路仿真波形
音乐节拍和音调发生器仿真波形
数控分频与演奏发生器仿真波形
四:
系统调试运行结果说明与分析
实验箱选择模式0。
将设计出的演奏电路的程序经过编译(Compiler)后,选择FLEX10K系列中EPF10K10LC84-4作为目标器件(Assign/Device),并进行管脚锁定(FloorplanEditor)。
器件编程(Programmer),将编译生成的*.sof文件下载到目标芯片。
实验箱自带蜂鸣器(Speaker)奏出“梁祝”的旋律,由此说明实验成功。
五:
结论及体会
程序可以完成预定的功能,而且本系统还可以演奏出其他的曲子,只需将其简谱分频预置数写入ToneTaba.VHD,再将该曲子的节拍表输入到NoteTabs.VHD中,重新编译后,下载即可完成。
通过这次实验,使我更加熟练的掌握了调制编译的过程,加深了对实验的兴趣。
(二)数字钟
1一个具有“时”、“分”、“秒”十进制数字显示(小时从00-23)计时器。
2具有手动校时、校分的功能。
二:
系统组成以及系统各部分的设计
顶层文件(SHUZIZHONG.VHD)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityshuzizhongis
port(clk,set,change,s1,s2,s3:
instd_logic;
second1,second2,minite1,minite2,hour1,hour2:
outstd_logic_vector(3downto0);
cout:
outstd_logic);
endentity;
architectureoneofshuzizhongis
begin
pro1:
process(clk,set,s1,s2,s3,change)
variablemsecond1,msecond2,mminite1,mminite2,mhour11,mhour12,mhour21,mhour22:
std_logic_vector(3downto0);
begin
ifclk'
eventandclk='
then
ifset='
then-----启动校验
ifs1='
thenmsecond1:
=msecond1+1;
ifmsecond1="
1010"
="
0000"
msecond2:
=msecond2+1;
ifmsecond2="
0110"
thenmsecond2:
endif;
--------秒校验
ifs2='
then
mminite1:
=mminite1+1;
ifmmini
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 梁祝 数字电路课程设计 梁祝乐曲 数字时钟 乒乓球游戏机 串并乘法器 数字电路 课程设计 乐曲 数字 时钟 乒乓球 游戏机 乘法器