导航:首页 > 音乐推荐 > 用vhdl语言设计音乐播放器

用vhdl语言设计音乐播放器

发布时间:2021-03-09 07:40:44

Ⅰ 用编程语言写个简易的音乐播放器 需要做哪些准备

  1. 选定用来编写播放器的语言(假定你已经会这个语言了)

  2. 查找该语言对应的播放音乐的api,学会使用它

  3. 学会该语言对应制作界面的api(当然,如果你只想做控台程序的话跳过这步)

  4. 查找有没有成熟的框架并学会它

以上是知识储备,就是你开发前必须知道的知识

下面是开发流程

  1. 需求分析(列下你准备做什么功能,画个数据流通,er图什么的辅助分析)

  2. 体系结构设计(根据你的需求分析,设计出你的软件的体系结构)

  3. 随意点的话,你可以开始做了(经过上面步骤你也大概知道怎么开始做了)。或者严谨点话接着做一系列的设计(数据设计,接口设计,过程设计)

  4. 测试(测试是穿插在整个开发流程的)

Ⅱ 单片机设计音乐播放器程序和仿真图(用汇编语言)急求~谢谢!!!

NUMEQU30H
UPEQUP3.6
DNEQUP3.7
ORG0000H
AJMPSTART;Fosc=12MHz
ORG000BH;T0中断入口地址
AJMPINT_T0
ORG001BH;T1中断入口地址
AJMPINT_T1

START:
MOVSP,#60H
MOVTMOD,#11H
MOVIE,#8AH
MOVIP,#08H ;T1中断优先于T0中断
MOV TH1,#3CH
MOV TL1,#0BH ;以上为系统初始化,T=60ms

W1: MOV P2,#01110001B;等待提示"F" ,01110001
LCALL GETKEY
CJNEA,#0FFH,W1
MOVA,B
CJNEA,#0AH,W2
LCALLKEY_A;输入键是'A',转KEY_A
SJMP W1

W2: CJNE A,#0BH,W3
LCALLKEY_B;输入键是'B',转KEY_B

W3: CJNE A,#0CH,W4
LCALLKEY_C;输入键是'C',转KEY_C
W4: CJNE A,#0DH,W5
LCALLKEY_D
SJMP W1;输入键是'D',转KEY_D
W5: CJNEA,#0EH,W6 ;下一首
INCNUM
MOVA,NUM
CJNEA,#4,W51
W51:
JCW52
MOVNUM,#0
W52:
MOVA,NUM
SJMPD0
W6: CJNEA,#0FH,W7 ;上一首
MOVA,NUM
JNZW61
MOVNUM,#4
W61:
DECNUM
MOVA,NUM
SJMPD0
W7:
SJMP W1
KEY_A:;从1~4按顺序播放
LCALL MUSIC1;乐曲《我和你》
LCALL MUSIC2;乐曲《万水千山总是情》
LCALL MUSIC3;乐曲《送别》
LCALL MUSIC4;乐曲《北京欢迎您》
RET
KEY_B:;从1~4循环播放
T11: LCALL KEY_A
SJMP T11
RET
KEY_C:;循环播放某一乐曲
T3: LCALL GETWORD
CJNE A,#0FFH,T3
MOV A,B
D0:
JNZD1
SJMP E0
D1: DECA
JNZD2
SJMP E1
D2: DECA
JNZE3
SJMP E2
E0: LCALL MUSIC1;乐曲《我和你》
SJMP E0
E1: LCALL MUSIC2;乐曲《万水千山总是情》
SJMP E1
E2: LCALL MUSIC3;乐曲《送别》
SJMP E2
E3: LCALL MUSIC4;乐曲《北京欢迎您》
SJMP E3
RET
KEY_D:;从某一乐曲开始播放,播放完后停止
T2: LCALL GETWORD
CJNE A,#0FFH,T2
MOV A,B
CJNE A,#00H,B1
SJMP C0
B1: CJNE A,#01H,B2
SJMP C1
B2: CJNE A,#02H,C3
SJMP C2
C0: LCALL MUSIC1;乐曲《我和你》
C1: LCALL MUSIC2;乐曲《万水千山总是情》
C2: LCALL MUSIC3;乐曲《送别》
C3: LCALL MUSIC4;乐曲《北京欢迎您》
RET
MUSIC1:;第一首《我和你》
MOVP2,#00000110B ;显示1,00000110
MOVR5,#11111001B
MOV52H,#HIGHTABLE10
MOV53H,#LOWTABLE10
MOVNUM,#0
LCALLmusic
RET
MUSIC2: ;第二首《万水千山总是情》
MOV P2,#01011011B ;显示2,01011011
MOV R5,#10100100B
MOV52H,#HIGHTABLE20
MOV53H,#LOWTABLE20
MOVNUM,#1
LCALL music
RET
MUSIC3: ;第三首《送别》
MOV P2,#01001111B ;显示3,01001111
MOV R5,#10110000B
MOV52H,#HIGHTABLE30
MOV53H,#LOWTABLE30
MOVNUM,#2
LCALL music
RET
MUSIC4: ;第四首《北京欢迎您》
MOV P2,#01100110B ;显示4,01100110
MOV R5,#10011001B
MOV52H,#HIGHTABLE40
MOV53H,#LOWTABLE40
MOVNUM,#3
LCALL music
RET
music: MOVR3,#00H ;音乐解码器
NEXT20:
MOVA,P3
ORLA,#0C0H
MOVP3,A
MOVA,P3
CPLA
ANLA,#0C0H
JZNEXT21
POPACC
POPACC
LJMPW1
RET
NEXT21:
MOVA,R3
MOV DPH,52H
MOV DPL,53H
MOVC A,@A+DPTR
MOV R2,A
JZ STOP
ANL A,#0FH
MOV R1,A
MOV A,R2
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
JMP W11
;----------------------------------------------------------
SING:
DEC A
MOV22H,A
RL A
MOVDPTR,#TABLE00
MOVC A,@A+DPTR
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 20H,A
SETB TR0
SETB TR1
W11:
LCALL DELAY3
INC R3
LJMP NEXT20
;-----------------------------------------------------------
STOP:
CLR TR0
CLR TR1
RET
;***************************************************
;定时器0中断子程序
;***************************************************
INT_T0:
CLR TR0
MOV TL0,20H
MOV TH0,21H
CPL P3.0
SETB TR0
RETI
;***************************************************
;定时器1中断子程序
;***************************************************
INT_T1:
CLRTR1
CLRTR0
LCALL KEY_E
MOVTH1,#3CH
MOVTL1,#0BH
DJNZ 60H,OUT
MOV 60H,#20
OUT:
SETB TR1
RETI
KEY_E:
JB P3.1,L2 ;中断键盘检测
LCALL DELAY2 ;消除抖动
JB P3.1,L2 ;如果是高电平就跳到L2
JNBP3.1,$ ;如果仍然是低电平就执行中断程序
MOV P2,#0111100B ;让LED显示E,01111001
L3: JB P3.1,$ ;检测低电平,直到低电平时才跳出该指令
LCALL DELAY2
JB P3.1,L3
JNBP3.1,$ ;如果再来一个高电平才跳出中断
MOV P2,R5
L2: SETBTR0
RET
GETKEY: ;读ABCD键盘子程序
SA: JB P1.0,SB ;读A,是高电平表示没有按键,跳转到SB
LCALL DELAY2
JB P1.0,SA
JNB P1.0,$
MOV P2,#01110111B ;显示A,01110111
MOV R5,#10001000B
MOV A,#0FFH
MOV B,#0AH
RET
SB: JB P1.1,C11 ;读B,是高电平表示没有按键按下,跳转到C11
LCALL DELAY2
JB P1.1,SB
JNB P1.1,$
MOV P2,#01111100B ;显示B,01111100
MOV R5,#10000011B
MOV A,#0FFH
MOV B,#0BH
RET
C11:JB P1.2,ED1 ;读C
LCALL DELAY2
JB P1.2,C11
JNBP1.2,$
MOV P2,#00111001B ;显示C,00111001
MOV R5,#11000110B
MOV A,#0FFH
MOV B,#0CH
RET
ED1:
JB P1.3,L0 ;读D
LCALL DELAY2
JB P1.3,ED1
JNBP1.3,$
MOV P2,#01011110B ;显示D,01011110
MOV R5,#10100001B
MOV A,#0FFH
MOV B,#0DH
L0: JBUP,L01
LCALLDELAY2
JBUP,L01
JNBUP,$
MOVA,#0FFH
MOVB,#0EH
RET
L01:
JBDN,L02
LCALLDELAY2
JBDN,L02
JNBDN,$
MOVA,#0FFH
MOVB,#0FH
L02:
RET
GETWORD:;读音乐序号子程序
S1: JB P1.4,S2 ;读1键
LCALL DELAY2
JB P1.4,S1
JNB P1.4,$
MOV P2,#00000110B ;显示1
MOV R5,#11111001B
MOV A,#0FFH
MOV B,#00H
RET
S2: JB P1.5,S3 ;读2键
LCALL DELAY2
JB P1.5,S2
JNB P1.5,$
MOV P2,#01011011B ;显示2
MOV R5,#10100100B
MOV A,#0FFH
MOV B,#01H
RET
S3: JB P1.6,S4 ;读3键
LCALL DELAY2
JB P1.6,S3
JNB P1.6,$
MOV P2,#01001111B ;显示3
MOV R5,#10110000B
MOV A,#0FFH
MOV B,#02H
RET
S4: JB P1.7,L1 ;读4键
LCALL DELAY2
JB P1.7,S1
JNB P1.7,$
MOV P2,#01100110B ;显示4
MOV R5,#10011001B
MOV A,#0FFH
MOV B,#03H
L1: RET
DELAY:;延时子程序
PUSH0;保存现场
PUSH1
MOV0,#0H
DELAY1:MOV1,#0H
DJNZ1,$
DJNZ0,DELAY1
POP1;恢复现场
POP0
RET
DELAY2: MOV 41H,#100 ;延时子程序2
F1: MOV 42H,#250
DJNZ 42H,$
DJNZ 41H,F1
RET
DELAY3: ;延时子程序3
MOV R7,#2
W22: MOV R4,#125
W33: MOV R0,248
DJNZ R0,$
DJNZ R4,W33
DJNZ R7,W22
DJNZ R1,DELAY3
RET
TABLE00: ;频率表
DW64260,64400,64524,64580;简码值低音5,低音6,低音7,1
DW64684,64777,64820,64898;简码值2,3,4,5
DW64968,65030,65058,65110;简码值6,7,高音1,高音
DW65157,65178,65217;简码值高音3,高音4,高音5
;--------------------------------------------------------------------
;第一首《我和你》
;--------------------------------------------------------------------
TABLE10:DB64H,82H,42H,48H
DB54H,64H,18H
DB44H,54H,64H,84H
DB5CH
DB64H,84H,44H,04H,42H
DB54H,64H,28H
DB54H,14H,54H,64H
DB4CH
DB98H,88H
DB98H,48H
DB64H,24H,64H,84H
DB5CH
DB64H,82H,42H,48H
DB54H,64H,28H
DB54H,14H,54H,34H
DB4CH
DB00H
;--------------------------------------------------------------------
;第二首《万水千山总是情》
;--------------------------------------------------------------------
TABLE20: DB64H,74H,84H,04H,82H,94H,84H,6CH
DB54H,44H,04H,62H,54H,44H,2CH
DB24H,18H,44H,54H,64H,84H,94H,64H,5CH
DB64H,74H,84H,04H,82H,94H,84H,6CH
DB54H,44H,04H,62H,54H,44H,2CH
DB24H,18H,44H,64H,54H,04H,42H,24H,44H,4CH
DB64H,84H,9CH,0A4H,94H,74H,84H,04H,92H,8CH,64H,88H
DB64H,84H,9CH,0A4H,0A4H,94H,84H,64H,5CH
DB64H,74H,84H,04H,82H,94H,84H,6CH
DB54H,44H,04H,62H,54H,44H,2CH
DB24H,18H,44H,64H,54H,42H,24,44H,4CH
DB00H
;--------------------------------------------------------------------
;第三首《送别》
;--------------------------------------------------------------------
TABLE30:DB84H,62H,82H,0B8H
DB94H,0B2H,92H,88H
DB84H,42H,52H,64H,52H,44H
DB5CH
DB84H,62H,82H,0B4H,04H,82H
DB94H,0B4H,88H
DB84H,52H,62H,74H,04H,32H
DB4CH
DB94H,0B4H,0B8H
DB0A4H,92H,0A2H,0B8H
DB92H,0A2H,0B2H,92H,92H,82H,62H,42H
DB5CH
DB84H,62H,82H,0B4H,04H,0A2H
DB94H,0B4H,88H
DB84H,52H,62H,74H,04H,32H
DB4CH
DB00H
;--------------------------------------------------------------------
;第四首《北京欢迎您》
;--------------------------------------------------------------------
TABLE40:DB62H,82H,62H,52H,12H
DB62H,52H,12H,64H
DB62H,52H,22H,42H
DB62H,54H
DB52H,42H,22H,42H
DB52H,62H,82H,52H
DB62H,92H,82H,12H
DB52H,44H
DB52H,42H,22H,42H
DB52H,62H,82H,52H
DB62H,92H,82H,82H
DB68H
DB52H,62H,52H,42H
DB82H,92H,64H
DB22H,62H,64H
DB54H,64H
DB64H,84H
DB0B2H,82H,94H
DB02H,92H,82H,62H
DB62H,82H,88H
DB00H
END

Ⅲ 有没有大神会做基于fpga的音乐播放器,要求用vhdl语言,毕业论文用,哪位大神能帮到我,万分感谢

神会做基于fpga的音乐播放器
我来写

Ⅳ 请帮忙设计一个分频器,用VHDL语言写的。100kHz的信号分成40khz

要多少分频 就改 IF TEMP1=1000 THEN 里面1000这个数据就可以了 要注意不要超出数据长度了就可以 如果超出了就可以2次或者多次分频 都可以改1000 这个数据就可以
而且等于1000是2000分频器 依此类推

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FENP IS
PORT(CLK:IN BIT;
CLK1:BUFFER BIT);
END ENTITY;
ARCHITECTURE OO OF FENP IS
BEGIN
PROCESS(CLK)
VARIABLE TEMP1: NATURAL;
BEGIN
IF CLK'EVENT AND CLK='1' THEN
TEMP1:=TEMP1+1;
IF TEMP1=1000 THEN
TEMP1:=0;
CLK1<=NOT CLK1;
END IF;
END IF;
END PROCESS;
END;

Ⅳ 【菜鸟求教:请用vhdl语言设计一个分频器。100分拜谢!!!】

程序给你做出来了,完全符合你的要求。仿真的话时间用的太长,就仿了一个set1set2=00的50M的2500分频20k的,图也给你贴出来,不过频率太高,图片已经看不出clk的波形了。

程序:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityfenis

port(

clk,set1,set2:instd_logic;

out1:outstd_logic);

end;

architecturearchoffenis

signala:std_logic;

begin

process(clk)

variabledata:integerrange0to50000;

begin

ifclk'eventandclk='1'then

ifset1='0'andset2='0'then

ifdata=2500then

data:=0;

a<=nota;

else

data:=data+1;

endif;

out1<=a;

elsifset1='0'andset2='1'then

ifdata=10000then

data:=0;

a<=nota;

else

data:=data+1;

endif;

out1<=a;

elsifset1='0'andset2='1'then

ifdata=50000then

data:=0;

a<=nota;

else

data:=data+1;

endif;

out1<=a;

endif;

endif;

endprocess;

endarch;

Ⅵ 帮忙做个基于Vhdl的音乐播放器,eda的,要求是有开始和结束,能选歌,两首就够了

做好这道题的一定是超级牛人,月薪绝对不低于20w!
1>要会文件系统;
2>要会设计CPU(借用免费的也行);
3>要会编写操作体统(借用免费的也行);
4>要会解压MP3格式的应用程序;
5>还得上缴MP3的许可费;
6>要会xHDL;
7>会仿真(ModelSim之类的)......
----
你想20分打发?幻想、妄想、遐想、瞎想...整个网络的分都不够!

Ⅶ 设计vhdl语言用哪个软件啊

常用的编译环境有Altera公司的Quartus和Xilinx公司的ISE两款软件。当然编译环境你可以选择notepad++或者Vi编辑工具。

Ⅷ 在线等 如何运用用VHDL语言设计一个二分频器

以前的。。library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fenpin isport(clk:in std_logic;
m_clk:out std_logic);architecture one of fenpin issignal fp:std_logic_vector(1downto 0);begin
process(clk)
begin
if rising_edge(clk) then
if fp<2 then
fp<=fp+1;
else
fp<="00";m_clk<=not m_clk;
end if;
end if;
end process;end;大概是这样的吧,没有验证。。。看要几分频的改下fp的位数,还有对应的“fp<几分频”就可以了。m_clk所得的波形就是你要的了。

Ⅸ 用VHDL语言设计MIDI音乐播放器

硬件描述性语言编写播放器??
有点不对口吧。
一般用C/C++等语言编写

Ⅹ 求用VHDL语言设计一个5MHZ到1Hz的分频器

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity div is
generic(n:integer :=50000000);
port (clk:in std_logic;
q:out std_logic);
end div;
architecture behave of div is
signal count :integer range n-1 downto 0:=n-1;
begin
process(clk)
begin
if (clk'event and clk='1' and clk'last_value ='0') then
count<=count-1;
if count>=n/2 then
q<='0';
else
q<='1';
end if;
if count<=0 then
count<=n-1;
end if;
end if;
end process;
end behave;

阅读全文

与用vhdl语言设计音乐播放器相关的资料

热点内容
爱情围墙歌词 浏览:230
道奇酷威广告背景音乐 浏览:106
比喻轻音乐之美的文字 浏览:542
小号音乐下载 浏览:578
歌曲专辑图下载地址 浏览:867
财神驾到歌曲mp3下载 浏览:734
琴歌指弹海阔天空吉他谱 浏览:355
下载mp4格式的音乐 浏览:352
电脑听音乐用什么 浏览:512
最好酷狗音乐播放器 浏览:502
信乐团队的假如简谱 浏览:243
平安酷狗音乐 浏览:760
佳人轻抚桃花mp3下载 浏览:453
infinite网易云音乐 浏览:844
岁月赵忠祥背景音乐 浏览:980
如何将电脑的歌体添加到苹果音乐 浏览:672
fade钢琴mp3 浏览:86
奔跑吧兄弟宋仲基背景音乐 浏览:806
成都彩虹小学音乐老师 浏览:496
凤凰传奇星光歌曲点评 浏览:930