文档库 最新最全的文档下载
当前位置:文档库 › EDA设计--《友谊天长地久》曲目综合设计

EDA设计--《友谊天长地久》曲目综合设计

EDA设计--《友谊天长地久》曲目综合设计
EDA设计--《友谊天长地久》曲目综合设计

课程名称:VHDL语言与EDA课程设计

设计题目:《友谊地久天长》乐曲演奏综合电路设计系别:物理与电子工程学院

专业:电子信息工程

班级:2008级5班

设计者:X X

学号:080305XXX

摘要

本系统运用MAX+plus II 10.0 进行仿真,其特点是实验程序较复杂,但经过分模块运行后较容易实现。同时实验的实际操作较为简单,布线较简洁,设计结果通过扬声器的播音、跑马闪光进行展现。展示了FPGA/CPLD的强大功能和非凡特性。本系统中主要通过视觉和听觉展示,扬声器中播放《友谊地久天长》曲目,同时跑马灯进行有序的点亮。此系统设计是比较综合的设计应用,可以作为一些有声玩具、节庆活动的构成部分。

关键词:EDA;VHDL;乐曲演奏电路设计;跑马灯

目录

1.方法论证及对比 (4)

1.1方案一 (4)

1.2方案二 (4)

1.3音符与频率的对应关系 (4)

1.4《友谊天长地久》乐谱 (5)

2.设计过程 (5)

2.1电路模块原理框架图 (5)

2.2现场实验模拟截图 (6)

3.模块设计及仿真 (7)

3.1顶层实体波形仿真图 (7)

3.2模块FENPIN (7)

3.2.1模块fenpin波形仿真图 (8)

3.2.2模块FENPIN程序 (8)

3.3模块paia (8)

3.3.1模块paia波形仿真图 (9)

3.3.2模块paia程序 (9)

3.4模块fana (13)

3.4.1模块fana 波形仿真图 (13)

3.4.2模块fana程序 (14)

3.5跑马灯设计 (14)

3.5.2模块pmd程序 (14)

4. 结束语 (16)

5.参考文献: (17)

1.方法论证及对比

1.1方案一

采用VHDL直接进行程序编写,以此实现扬声器的播音功能。但此方案编写的程度复杂且比较困难,编译后,程序很难读懂,不便找出程序错误。

1.2方案二

采用模块层次化设计,将此设计分为个模块:24MHz CLK发生、预置分频模块、4MHz CLK发生、扬声器模块。将四个模块分别用VHDL语言编程实现,做成原理图模块,用原理图输入法作为顶层文件,此法案设计方便、简单,方法易懂、易操作,也易于寻找程序中的错误,因此,我选择此方案。

1.3音符与频率的对应关系

表 1-1 音符与频率的对应关系

频音

率符

1 2 3 4 5 6 7

/Hz

音阶

低音 131 147 165 175 196 221 248

中音 262 294 330 350 393 441 496

高音 525 589 661 700 786 882 990 注:此程序使用4MHz的时钟,当时钟不同时则需要修改常数。音符与频率对应的计数值为A=4 MHz/(2f).

1.4《友谊天长地久》乐谱

图 1-1 《友谊天长地久》乐谱(网络截图)

2.设计过程

2.1电路模块原理框架图

24MHz时钟预置分频

模块

扬声器4MHz 时钟

2Hz时钟跑马灯

2.2现场实验模拟截图

图 1-2 现场实验模拟截图

3.模块设计及仿真

3.1顶层实体

图 1-3

3.1.1顶层实体波形仿真图

图 1-4 顶层实体波形仿真图

3.2模块FENPIN

如图 1-5所示,该模块输入24MHz的时钟,输出4MHz的时钟,实现给paia 模块提供时钟。

图 1-5 模块fenpin

3.2.1模块fenpin

波形仿真图

图1-6 模块fenpin 波形仿真图

3.2.2模块FENPIN 程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FENPIN IS

PORT(CLKIN:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC); END ENTITY FENPIN;

ARCHITECTURE ART OF FENPIN IS SIGNAL Q:INTEGER RANGE 0 TO 2; SIGNAL CLK:STD_LOGIC; BEGIN PROCESS(CLKin) IS BEGIN IF(CLKin'EVENT AND CLKin='1') THEN

if(Q=2) then Q<=Q+1;

CLK<=NOT CLK; ELSE

Q<=Q+1; END IF; END IF; END PROCESS; CLKOUT<=CLK;

END ARCHITECTURE ART;

3.3模块paia

如图1-4所示。该模块控制每一个音的长短,送初值给fana 模块,从而控制音高。

图1-7 模块paia

3.3.1模块paia

波形仿真图

图 1-8 模块paia 波形仿真图

3.3.2模块paia 程序

library ieee;

use ieee.std_logic_1164.all; entity paia is

port(clk:in std_logic;

q:out integer range 0 to 10204); end paia;

architecture pai_arc of paia is begin

process(clk)

variable cnt1:integer range 0 to 1500000;

variable cnt2:integer range 0 to 8;

variable n:integer range 0 to 45; begin

if clk'event and clk='1' then if cnt1<1500000 then cnt1:=cnt1+1; else

cnt1:=0; case n is

when 0=>q<=10204;

if cnt2<1 then cnt2:=cnt2+1;

else

cnt2:=0; n:=1; end if; when 1=>q<=7634;

if cnt2<6 then cnt2:=cnt2+1; else

cnt2:=0; n:=2; end if; when 2=>q<=6061;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0; n:=3; end if; when 3=>q<=6803;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0; n:=4; end if; when 4=>q<=7634;

n:=5;

when 5=>q<=6803;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=6;

end if;

when 6=>q<=6061;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=7;

end if;

when 7=>q<=7634;

if cnt2<4 then cnt2:=cnt2+1; else

cnt2:=0;

n:=8;

end if;

when 8=>q<=6061;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=9;

end if;

when 9=>q<=5089;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=10;

end if;

when 10=>q<=4535;

if cnt2<9 then cnt2:=cnt2+1; else

cnt2:=0; n:=11;

end if;

when 11=>q<=5089;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=12;

end if;

when 12=>q<=6061;

if cnt2<2 then cnt2:=cnt2+1; else

cnt2:=0;

n:=13;

end if;

when 13=>q<=7634;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=14;

end if;

when 14=>q<=6803;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=15;

end if;

when 15=>q<=7634;

n:=16;

when 16=>q<=6803;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=17;

end if;

when 17=>q<=6061;

if cnt2<1 then

cnt2:=cnt2+1; else

cnt2:=0;

n:=18;

end if;

when 18=>q<=7634;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=19;

end if;

when 19=>q<=9050;

if cnt2<2 then cnt2:=cnt2+1; else

cnt2:=0;

n:=20;

end if;

when 20=>q<=10204;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=21;

end if;

when 21=>q<=7634;

if cnt2<7 then cnt2:=cnt2+1; else

cnt2:=0;

n:=22;

end if;

when 22=>q<=4535;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=23;

end if;

when 23=>q<=5089; if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=24;

end if;

when 24=>q<=6061;

if cnt2<2 then cnt2:=cnt2+1; else

cnt2:=0;

n:=25;

end if;

when 25=>q<=7634;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=26;

end if;

when 26=>q<=6803;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=27;

end if;

when 27=>q<=7634;

n:=28;

when 28=>q<=6803;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=29;

end if;

when 29=>q<=4535;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

end if;

when 30=>q<=5809;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=31;

end if;

when 31=>q<=6061;

if cnt2<2 then cnt2:=cnt2+1; else

cnt2:=0;

n:=32;

end if;

when 32=>q<=5089;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=33;

end if;

when 33=>q<=4535;

if cnt2<7 then cnt2:=cnt2+1; else

cnt2:=0;

n:=34;

end if;

when 34=>q<=3809;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=35;

end if;

when 35=>q<=5809;

if cnt2<3 then cnt2:=cnt2+1; else n:=36;

end if;

when 36=>q<=6061;

if cnt2<2 then cnt2:=cnt2+1; else

cnt2:=0;

n:=37;

end if;

when 37=>q<=7634;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=38;

end if;

when 38=>q<=6803;

if cnt2<3 then cnt2:=cnt2+1; else

cnt2:=0;

n:=39;

end if;

when 39=>q<=7634;

n:=40;

when 40=>q<=6803;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=41;

end if;

when 41=>q<=6061;

if cnt2<1 then cnt2:=cnt2+1; else

cnt2:=0;

n:=42;

end if;

when 42=>q<=7634;

cnt2:=cnt2+1; else

cnt2:=0;

n:=43;

end if;

when 43=>q<=9050;

if cnt2<2 then cnt2:=cnt2+1; else

cnt2:=0;

n:=44;

end if;

when 44=>q<=10204;

if cnt2<1 then cnt2:=cnt2+1; else n:=45;

end if;

when 45=>q<=7634;

if cnt2<7 then cnt2:=cnt2+1; else

cnt2:=0;

n:=0;

end if;

end case;

end if;

end if;

end process;

end pai_arc;

3.4模块fana

如图1-5所示。该模块的功能是根据paia送来的初值倒计时,每次计到0时就使信号q反转,由于初值不同,从而产生不同的音高。

图1-9 模块fana

3.4.1模块fana

波形仿真图

图 1-10 模块fana 波形仿真图

3.4.2模块fana程序

library ieee;

use ieee.std_logic_1164.all;

entity fana is

port(a:in integer range 0 to 10204; clk:in std_logic;

q:out std_logic);

end fana;

architecture fan_arc of fana is begin

process(clk)

variable b,d:std_logic;

variable c:integer range 0 to 10204;

begin

if clk'event and clk='1' then if b='0' then

c:=a; b:='1';

else

if c=0 then b:='0'; d:=not d; else

c:=c-1; end if;

end if;

end if;

q<=d;

end process;

end fan_arc;

3.5跑马灯设计

如图1-11所示。该模块的功能是根据送来的时钟,产生由左到右实现LED依次闪光。

图1-11 模块pmd

3.5.1跑马灯波形仿真图

图 1-12 跑马灯波形仿真图

3.5.2模块pmd程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY pmd IS

PORT(clk:IN STD_LOGIC;

P:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END ENTITY pmd; ARCHITECTURE behavior OF pmd IS SIGNAL temp :INTEGER ;

BEGIN

PROCESS( clk )

VARIABLE count4: INTEGER RANGE 7 DOWNTO 0;

BEGIN

IF clk'EVENT and clk='1' THEN count4:= count4 + 1 ;

END IF;

IF(count4=7) THEN count4:=0; END IF;

temp<=count4;

END PROCESS;

PROCESS(temp)

BEGIN

IF(temp=0) THEN p<="10000000"; ELSIF(temp=1)THEN p<="01000000"; ELSIF(temp=2)THEN p<="00100000"; ELSIF(temp=3)THEN p<="00010000"; ELSIF(temp=4)THEN p<="00001000"; ELSIF(temp=5)THEN p<="00000100"; ELSIF(temp=6)THEN p<="00000010"; ELSIF(temp=7)THEN p<="00000001"; else P<="00000000"; END IF;

END PROCESS;

END behavior;

4. 结束语

本次的EDA设计历时约三个星期,时间虽短,但通过三个星期的实践,使我对EDA技术有了更进一步更全面的了解。同时,大体上懂得了一个课题制作的具体流程和实施方法。另外,课程设计对MAX+plus II 软件的使用要求较高,从而使我能较为熟练的运用此软件。在设计过程中,采用模块化的设计思路使得这些问题变的简单明了,很大程度的缩短了设计时间,降低了发生错误的几率,也便于程序的修改和更新。

在EDA设计中,需要查找很多的资料,在当今的信息化环境中,互联网、图书馆的参考资料很多,但都需要自己仔细斟酌、反复实践才能找到正确的有价值的信息。这次的EDA设计很好的锻炼了这种能力。此外,与同学和老师的探讨、交流也必不可少,特别是得到了甘老师和同学们的热心帮助,我从中也学到了许多宝贵的东西。

EDA设计是一次很好的锻炼机会,我从中学的很多知识对将来的学习和工作都有很大的帮助。

5.参考文献:

⑴张洪润,张亚凡.FPGA/CPLD应用设计200例.北京航空航天大学出版社.2009

⑵谭会生,张昌凡.EDA技术及应用(第二版).西安电子科技大学出版社.2004

⑶王振红.VHDL数字电路设计与应用实践教程.机械工业出版社.2006

⑷潘松,黄继业.EDA技术与VHDL.清华大学出版社.2005

⑸边计年.用VHDL设计电子线路,清华大学出版社.2005

⑹潘松,王国栋.VHDL实用教程.电子科技大学出版社.2000

⑺王毅平,张振荣.VHDL编程与仿真.人民邮电出版社.2000

音乐盒设计

基于89c52单片机音乐播放的设计安庆师范学院物理与电气工程学院

1、设计任务和要求 (1) 2、总体设计 (1) 3、硬件设计 (2) 3.1 硬件电路 (2) 3.2 原理说明 (2) 4、软件设计 (2) 5、仿真、安装和调试 (5) 6、收获与体会 (6) 附件1:元件清单 (6) 附件2: 总仿真电路图 (7) 附件3:音乐程序 (8)

音乐盒设计 1、设计任务和要求 (1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。 (2直接当前播放的歌曲。 (3)可通过功能键选择播放上一首、下一首和暂停播放歌曲。 2、总体设计 (1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲 (2)利用8052的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。 记数脉冲值与频率的关系公式如下: N=Fi/2/Fr N:记数值 Fi:内部计时一次为1微秒.故其频率为1MHZ Fr;要产生的频率 (3):起记数值的求法如下: T=65536-N=65536-Fi/2/Fr 例如:设K=65536,F==Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。 T=65536-N=65536-Fi/2/Fr=65536-/2/Fr=65536-500000/Fr 低音D0的T=65536-500000/262=63627 中音D0的T=65536-500000/523=64580 高音D0的T=65536-500000/1047=65059

音乐演奏程序设计

音乐演奏 1 总体要求与分析 1.1设计要求 本文主要编写一段音乐程序,该程序可以进行如下操作:按大写字母“A”,奏一首歌曲;按大写字母“B”;奏另一首歌曲,曲目自选,可重复操作。按Q 退出程序。 1.2设计思路分析 在IBM-PC/XT机中都带有8253-5定时/计数器,IBM-PC/AT中带有8254定时/计数器,这两种芯片功能十分类似。本文通过对8253-5定时/计数器芯片的操作实现音乐演奏。该声音接口通过汇编语言对8253-5的端口直接进行操作,可以不必要过多的使用BIOS的调用和DOS的调用。 计数器芯片有3个通道,各自具有专用功能。通道0时系统的始终节拍计时器,通道1专用于产生动态RAM的定时刷新信号,通道2用来控制计算机的扬声器的声音频率。该音乐演奏主要用到通道2的功能,使通道2工作在“方波发生器”方式,产生相应频率的音调送至喇叭驱动电路,使喇叭发出不同音调的声音。使用8255A的PB0控制通道2的计数,PB1控制通道2的输出对扬声器产生控制的时间。 人机交互包括屏幕显示提示语以及人工输入相应参数,主要应用到BIOS的10H号中断调用以及DOS的21H号中断调用。BIOS的10H号中断调用用于显示器驱动,设置显示模式和光标位置;DOS的21H号中断调用用于单字符输入以及多字符输出显示。 音乐演奏实现的一个主要步骤是乐谱编程。通过相应的频率表将乐谱中对应的音符转化为计数器的计数初值,节奏通过延时程序转化为对喇叭发音时间的控制,从而实现音符和节拍的数字化。

2 方案设计 音乐的实现主要是对乐谱中的单音符按照一定的音符频率表转化为计数器的计数频率以及喇叭发声的控制时间,通过计数产生相应的控制动作。由此可以有两种方案比较和选择。 2.1 方案一 通过编程使用软件来实现计数和喇叭发声的时间设置,控制8255A并行I/O 接口驱动喇叭发声。CPU每执行一条指令需要耗费一定的时间,这样可以通过循环的方式设置好循环次数,实现软件计数,然后输出相应的高低电平,驱动喇叭发出对应频率和节拍的声音。 利用软件编程方式实现该功能的优点是可以减少硬件开支,便于调试和问题的查找。缺点是CPU开支太大,利用率不高,而且时间不够精准。 2.2 方案二 利用硬件实现频率计数和延时时间的控制,利用8253-5定时/计数器芯片和8255A并行I/O接口芯片。使8253的一个通道工作在“方波发生器”模式,实现对频率的计数;利用8255A的PB3端口实现发声时间的计数控制。这样可以精确的控制时间,减少CPU的开支。 该方案的优点是控制精度提高,同时也减少CPU的开支。缺点是硬件开销比较多。 2.3 方案选择 本文要实现的功能所需要的硬件电路并不是太复杂,一般的IBM-PC/XT/AT 机家族都带有相应的硬件电路。在提高精度与简易程度的比较下,决定采用方案二,这样可以大大提高时间控制精度,同时减少软件程序的复杂度。

eda课程设计报告多功能数字钟设计大学论文

湖北大学物电学院EDA课程设计报告(论文) 题目:多功能数字钟设计 专业班级: 14微电子科学与工程 姓名:黄山 时间:2016年12月20日 指导教师:万美琳卢仕 完成日期:2015年12月20日

多功能数字钟设计任务书 1.设计目的与要求 了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解 2.设计内容 1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开; 2,能用按键调时调分; 3,能整点报时,到达整点时,蜂鸣器响一秒; 4,拓展功能:秒表,闹钟,闹钟可调 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。

目录(四号仿宋_GB2312加粗居中) (空一行) 1 引言 (1) 2 总体设计方案 (1) 2.1 设计思路 (1) 2.2总体设计框图 (2) 3设计原理分析 (3) 3.1分频器 (4) 3.2计时器和时间调节 (4) 3.3秒表模块 (5) 3.4状态机模块 (6) 3.5数码管显示模块 (7) 3.6顶层模块 (8) 3.7管脚绑定和顶层原理图 (9) 4 总结与体会 (11)

多功能电子表 摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能 关键词:Verilog语言,多功能数字钟,数码管显示; 1 引言 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然 2 总体设计方案 2.1 设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用 3 设计原理分析 3.1 分频器 分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块 module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100;

基于51单片机数字音乐盒的设计

单片机实物设计 题目: 单片机音乐盒设计 班级: K0312416-17 姓名:湛俊朱斌杨裕庆 学号:K031241705 K031241632 K031241737

摘要 本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有四首歌曲,用4个按键控制。播放歌曲时,蜂鸣器发出某个音调。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。 【关键词】STC89C51RC 按键蜂鸣器 LCD1602液晶

目录 前言 ................................................................................................................................. 第一章工作原理 .............................................................................................................. 1.1设计目标 ............................................................................................................... 第二章软件设计与分析................................................................................................... 2.1 软件设计的组成................................................................................................... 2.2 各部分软件分析 ................................................................................................. 2.2.1 延时165MS,即十六分音符子函数 .......................................................... 2.2.2 延时1MS子函数...................................................................................... 2.2.3 定时器0中断子函数 .............................................................................. 2.2.4 播放音乐子函数...................................................................................... 2.5 定时器1中断子函数.................................................................................. 2.6 按键扫描子函数 ......................................................................................... 2.2.7 主函数..................................................................................................... 2.3 总源程序 ............................................................................................................ 第三章软件仿真 .............................................................................................................. 3.仿真图...................................................................................................................... 3.1 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................

音乐演奏程序设计

课程设计任务书 学生姓名:王琨专业班级:自动化1105班 指导教师:向馗工作单位:自动化学院 题目: 音乐演奏程序设计 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.使用汇编语言设计一个在计算机上运行的音乐演奏程序。 2.屏幕显示钢琴图像。 3.实现以下附加功能:按“D”键,加快播放速度,按“E”键,降低播放速度。 4. 按"X"鍵,退出。 5.撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。 时间安排: 12月30日-----12月31日查阅资料及方案设计 1月2日-----1月3日编程 1月6日调试程序 1月7日-----1月8日撰写课程设计报告 指导教师签名:年月日 系主任(或责任教师)签名:年月日

摘要 汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。 使用的编译软件是masm for windows ,MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32asm,是Windows下开发汇编的利器。它与Windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM 的开发人员必须在Windows下进行开发。 关键词:汇编语言、MASM、DOS环境

EDA课程设计报告资料

课程设计 设计题目: 学生姓名: 学号: 专业班级: 指导教师: 2015年月日

设计 题目成绩 课 程 设 计 主 要 内 容 指 导 教 师 评 语 签名:20 年月日

设计题目:测量放大器电路原理图和PCB板设计 一、实验目的 1.了解学习Protel 99SE的目的与意义; 2.掌握Protel 99SE绘制电路原理图方法与技巧; 3.掌握PCB设计方法与技巧。 二、实验要求 1.利用Protel 99SE绘制一张电路图; 2.对绘制好的电路图进行ERC检查; 3.生成网络表; 4.生成元件列表; 5.利用Protel 99SE完成对应的双面印刷电路板设计。 三、功率放大器设计 实验原理图如下图所示: 图1

四、protel制图 4.1设计电路原理图 1.电路原理图 电路原理图的设计是整个电路设计的基础,因此电路原理图要设计好,以免影响后面的设计工作。电路原理图的设计一般有如下步骤: (1)设置原理图设计环境; (2)放置元件; (3)原理图布线; (4)编辑和调整; (5)检查原理图; (6)生成网络表。 2.设计印刷电路板 印刷电路板设计是从电路原理图变成一个具体产品的必经之路,因此,印刷电路板设计是电路设计中最重要、最关键的一步。通常,印刷电路板设计的具体步骤如下: (1)规划电路板; (2)设置参数; (3)装入网络表; (4)元器件布局; (5)自动布线; (6)手工调整。 4.2 绘制测量放大器电路原理图 原理图设计最基本的要求是正确性,其次是布局合理,最后是在正确性和布局合理的前提下力求美观。根据以上所述的电路原理图设计步骤,两级放大器电路原理图设计过程如下: 1.启动原理图设计服务器 进入Protel 99 SE,创建一个数据库,执行菜单File/New命令,从框中选择原理图服务器(Schematic Document)图标,双击该图标,建立原理图设计文档。双击文档图标,进入原理图设计服务器界面。如图2

音乐盒设计

机电学院单片机课程设计 任务书 设计名称:音乐盒的设计 学生姓名:*** 指导教师:***** 起止时间:自*** 年* 月* 日起至*** 年*月* 日止 一、课程设计目的 利用AT89C51系列单片机,实现两首歌曲的依次、循环播放,并在播放歌曲的同时,与之对应的LED灯亮起,形成三种绚丽的灯光效果,制作成一个简单的音乐盒。 二、课程设计任务和基本要求 设计任务: 1.运用AT89C51系列单片机的技术原理,通过硬件电路制作以 及软件编译,设计制作出一个多功能音乐盒; 2.运用2N2905三极管放大技术,对扬声器音频信号进行放大, 实现音乐播放功能; 3.8个LED灯对应音乐的不同音阶,实现伴随音乐播放,发出 不同的花样效果的功能。 基本要求: 1. 能够实现设计任务的基本功能; 2. 至少设计两种音乐的播放和三种灯光效果的制作; 3. 能够完成音乐盒实物的焊接; 4. 完成设计后独立撰写3000字左右的设计报告。

目录 摘要 (1) 关键字 (1) 1 概述 (2) 1.1设计意义 (2) 1.2设计方案 (2) 1.3设计内容 (2) 2 硬件设计 (3) 2.1音乐盒的结构框图 (3) 2.2单片机模块 (3) 2.2.1 AT89C51系列单片机介绍 (3) 2.2.2 最小系统 (4) 2.3扬声器模块 (4) 2.4LED显示模块 (5) 2.5按键模块 (5) 3 软件设计 (6) 3.1音乐盒的功能框图 (6) 3.2音调、节拍以及编码的确定方法 (6) 3.2.1 音调的确定 (6) 3.2.2 节拍的确定 (7) 3.2.3 编码 (8) 3.3软件程序设计 (9) 3.3.1 程序流程图 (9) 3.3.2 程序源代码 (10) 4 调试 (10) 4.1实验环境 (10) 4.1.1 PROTEUS软件简介 (10) 4.1.2 KEIL简介 (11) 4.2仿真调试 (11) 4.3花样灯3种效果 (12) 4.4实物调试 (13) 5 总结 (14) 参考文献 (15) 附录 (16) 附录1仿真电路图 (16) 附录2实物图 (16) 附录3元器件清单 (16) 附录4程序源代码及注释 (17)

音乐演奏程序设计

信息与电气工程学院 电子信息工程CDIO一级项目(2013/2014学年第一学期) 题目:音乐演奏程序设计 专业班级:xxxxxxxxxxxxxxxxx 学生姓名:xxxxxxx 学号:xxxxxxxxx 指导教师:xxxxxxx 设计周数: 设计成绩: 2013年12月28日

1、项目设计目的 1.1掌握接口电路的应用和设计技术。 1.2掌握汇编语言的设计思路。 1.3掌握8086的控制流程,以及8255和8253芯片的功能。 1.4用汇编程序完成键控音乐播放器,用8253定时器来产生声音。 1.5使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。 2、项目设计正文 2.1设计内容 要求完成一个音乐程序,即通过按下键盘上某个按键就可以按预先设定的程序播放音乐或者终止程序。比如:按大写字母“1”,唱乐曲“沂蒙山小调”;按大写字母“2”,唱乐曲“生日快乐”按大写字母“3”,唱乐曲“棉花糖”;按"4"键,退出。并且可以重复操作。 2.2总体设计思路 在IBM-PC/XT机中都带有8253-5定时/计数器,IBM-PC/AT中带有8254定时/计数器,这两种芯片功能十分类似。本文通过对8253-5定时/计数器芯片的操作实现音乐演奏。该声音接口通过汇编语言对8253-5的端口直接进行操作,可以不必要过多的使用BIOS的调用和DOS的调用。 计数器芯片有3个通道,各自具有专用功能。通道0时系统的始终节拍计时器,通道1专用于产生动态RAM的定时刷新信号,通道2用来控制计算机的扬声器的声音频率。该音乐演奏主要用到通道2的功能,使通道2工作在“方波发生器”方式,产生相应频率的音调送至喇叭驱动电路,使喇叭发出不同音调的声 音。使用8255A的PB 0控制通道2的计数,PB 1 控制通道2的输出对扬声器产生控制的时间。 人机交互包括屏幕显示提示语以及人工输入相应参数,主要应用到BIOS的10H号中断调用以及DOS 的21H号中断调用。BIOS的10H号中断调用用于显示器驱动,设置显示模式和光标位置;DOS的21H号中断调用用于单字符输入以及多字符输出显示。 音乐演奏实现的一个主要步骤是乐谱编程。通过相应的频率表将乐谱中对应的音符转化为计数器的计数初值,节奏通过延时程序转化为对喇叭发音时间的控制,从而实现音符和节拍的数字化。 2.3流程图 2.3.1主程序流程图

EDA课程设计报告

湖北职业技术学院《EDA技术》课程设计报告 题目动态输出4位十进制频率计的设计所在学院电子信息工程学院 专业班级电信08304 学生姓名马强 学号08024839 指导教师王芳 完成日期2010年11月18 日

目录 一、概述 (3) 二、设计正文 (4) (一)设计目的 (4) (二)设计实现 (4) 1、端口说明 (4) 2、Cnt10模块说明 (5) 3、Tctl模块说明 (6) 4、锁存器reg16模块说明 (8) 5、Scan_led模块说明 (9) 6、顶层文件仿真 (10) 7、硬件下载 (11) 三、总结 (13) 四、感言 (14) 五、参考文献 (15)

概述 此次设计的主要目的是学习掌握频率计的设计方法;掌握动态扫描输出电路的实现方法;学习较复杂的数字系统设计方法。通过单位时间(1秒)内频率的计数来实现频率计的设计。此设计主要用四位十进制计数器,所以频率计数范围为100~9999Hz。然后锁存防止闪烁显示,最后由译码扫描显示电路输出到数码管进行显示输出。并且下载后会有一秒钟的延时后才会显示输出所计频率输出。设计下载后能够进行仿真频率的计数和静态显示,但是分频的设计程序有所缺陷导致长时间显示后会有1Hz的抖动。通过这次的设计能够更清楚的理解VHDL程序的描述语言,进行简单程序的编写和仿真。

动态输出4位十进制频率计的设计 一、目的 1.学习掌握频率计的设计方法。 2.掌握动态扫描输出电路的实现方法。 3.学习较复杂的数字系统设计方法 二、设计实现 4位十进制频率计外部接口如图1所示,顶层文件如图2所示,包含4中模块;Tctl、reg16、scan_led和4个cnt10。 (1)端口说明 F1Hz:给Tctl模块提供1Hz的频率输入。 Fin:被测频率输入。 scan_led:给scan_led模块提供扫描输入频率输入。 bt[1..0]:片选信号输出。 sg[6..0]:译码信号输出。 cout:进位输出。

单片机课程设计---电子音乐盒的设计

课程设计(说明书) 电子音乐盒的设计 院(系)名称工学院机械系 专业名称机械设计制造及其自动化学生姓名 指导教师 2013年01月12日

课程设计任务书 题目: 电子音乐盒的设计 课程:单片机课程设计 课程设计时间 2012年12月21 日至2012年1 月3日共2 周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页) 1.设计要求 查阅资料,了解单片机控制单音喇叭发声原理;设计基于单片机的电子音乐盒;通过按钮可选择不同的音乐。 创新设计: 1、安装复位键,暂停、播放键; 2、有6首不同的音乐用程序编出可供选择。 2. 设计任务与要求 2.1系统硬件电路设计 根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。 2.2软件设计 根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。 2.3 Proteus仿真 用Proteus对系统进行仿真并进行软硬件调试。 2.4 编写设计说明书 内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于4000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前

加程序功能注释。 3.工作计划 4.主要参考资料 单片机课程设计指导书皮大能北京理工大学出版社2010.7 8051单片机实践与应用吴金戎清华大学出版社2003.8 单片机技术基础教程与实践夏路易电子工业出版社2008.1 MCS-51单片机原理接口及应用王质朴北京理工大学出版社2009.11 基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2009.7 指导老师签字: 日期:

音乐程序课程设计520

微机原理课程设计设计题目:音乐演奏程序设计 学生贾高强 班级 09(秋)大专电子学号 指导教师王文珍 理工大学

课程设计任务书 学生指导教师 班级职称 一、课程设计题目 音乐演奏程序设计 二、主要设计参数及技术指标 本程序应用了BIOS中断功能的字符显示和乐曲演奏程序。并利用计算机控制发声原理,在计算机中有一个可编程时间间隔定时器,它能根据程序提供的记数值和工作模式,产生各种形状和各种频率的记数定时脉冲,提供给系统各个部分使用。该乐曲点播程序曲一个主程序和4个子程序组成。其中前三个子程序为乐曲演奏子程序,接着是发声程序和清屏子程序,最后是一个回车换行程序。 利用计算机控制发声的原理,可以编写演奏乐曲的程序。PC机上的大多数都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的。PPI包括三个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O端口号60H和62,输出寄存器分配的I/O端口号位61H。由PPI输出寄存器的0或1两位来控制扬声器的驱动方式 三、课程设计容及工作量 (一)设计计算说明书一份0.8-1.0万字

(二)、图纸部分 1、程序流程图 A0一 2音乐演奏程序设计电路图 A0一(选做) 四.课程设计的基本要求 能按时独立完成毕业设计规定的全部容,方案选择正确,论据充分,对设计中的主要问题分析深入,解决合理,有独立见解,能很好运用所学理论和提供的资料解决设计中的问题,能独立查阅和正确引用中外文参考资料,说明书文字通顺、清楚、选用数据论证合理、计算准确,图面整洁。 五、进程安排 课程设计进度检查表

EDA课程设计报告8线-3线优先编码器

Xxxxx学院 《EDA技术》课程报告 设计题目:8线-3线优先编码器班级:应用电子1101班姓名: 学号: 指导老师: 日期:

目录 一、8-3优先编码器设计原理分析 (3) 二、8-3优先编码器模块的源程序 (3) 三、8-3优先编码器仿真结果 (4) 四、设计总结和心得体会 (5) 五、参考资料 (5)

一、8-3优先编码器设计原理分析 8-3优先编码器输入信号为din0,d in1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。因为din0到din7共8中状态,可以用3位二进制编码来表示。8-3优先编码器真值表如下表所示。 表1 8-3优先编码器真值表 二、8-3优先编码器模块的源程序 8-3优先编码器由VHDL程序来实现,VHDL语言描述如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic ); END coder; ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (din) BEGIN IF (EANABLE='0') THEN IF (din(0)='1') THEN output <= "000" ; ELSIF (din(1)='1') THEN output <= "100" ;

课程设计-数字音乐盒

单片机课程设计-数字音乐盒 课程设计要求:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2.采用LCD显示信息 3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称) 4.可通过功能键选择乐曲,暂停,播放。 5.选作内容:显示乐曲播放时间或剩余时间 硬件电路:本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段 显示数码管LED。 原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并动LCD,显示歌曲号及播放时间。也可在LED显示歌曲号。 (1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。 (2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。 (3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。用P0.0~P0.7作为LCD的D0~D7的控制信号。 (4)用P3.7口控制蜂鸣器。 (5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。

电路图: 【试验时请仔细阅读后文说明!此图仅为我站制作,并不代表原作者意愿;若您制作成功,望在网络推广。】实验控制流程图如下:

S BIT P2.0 ;定义液晶显示端口标号 RW BIT P2.1 E BIT P2.2 ;******************************************** L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H ;******************************************* org 0000h ljmp main ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT org 1000h main: ;-----------------------;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE MOV P0,#38H ;8位,2行显示

音乐盒课程设计报告

音乐盒课程设计报告 XXXXXXXXXXXXX 一、项目概述: 随着社会的发展进步,许多人性化的电子产品被用在人们的日常生活中,而单片机被广泛运用到人们长期接触的事物上,比如银行交易窗口的滚动字幕,还有各种彩灯的控制,手机、计算机、机器人等各行各业中。基于AT89C52单片机的数字音乐盒就是这类产品,它不仅给人们带来了快乐,而且提高了人们的生活质量。 二、项目要求: 基于AT89C52单片机的数字音乐盒的设计要求如下: (1)用AT89C2单片机的I/O端口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。 (2)共有10首乐曲,每首乐曲都有相应的按键控制,并且有开关键、暂停键、上一曲以及下一曲的控制键。 (3)LCD液晶显示歌曲的序号、播放时间、开机时显示英文欢迎提示字符。 三、知识要点: (一)、AT89C2芯片资料: 1)功能说明: 1、兼容MCS51指令系统。 2、8k可反复擦写(大于1000次)Flash ROM。 3、2KB的E2PROM程序存储器,可擦写10万次 4、32个双向I/O口。 5、256x8bit内部RAM。 5、3个16位可编程定时/计数器中断。 6、时钟频率12MHz。 7、1个可编程UART串行通道。 8、2个外部中断源,共9个中断源,6个中断矢量。 9、2个读写中断口线,3级加密位。 10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。 11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。 2)引脚说明:

AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/VPd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~ P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为 N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 本项目使用到的单片机引脚说明: 1)20、40号引脚分别接地和+5V电源。 2)18、29号引脚分别接振荡器反相放大器的输出端和振荡器反相放大器的及内部时钟发生器的输入端。 3)9号引脚接RST复位电路。 3)单片机使能信号接31号引脚,接+5V。 4)17号引脚(P3.7)接蜂鸣器电路通过定时器控制P3.7引脚上方波的占空比可以实现驱动蜂鸣器,发出不同的音调的功能。 5)P1端口控制4×4矩阵键盘,其中P1.0~P1.3 进行列扫描,P1.4~P1.7进行行扫描。6)P0端口用于接液晶显示器的数据位,由于P0端口驱动能力小,需外接电源和上拉电阻,此项目中接1K的排阻。 (二)、LCD1602资料: 1)、LCD1602介绍: 1602液晶显示器也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。 LCD1602是指显示的内容为16X2,即可以显示2行,每行16个字符液晶模块(显示字符和数字)。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。 2)1602引脚说明:

EDA课程设计实验报告

课程设计报告 课程名称数字系统与逻辑设计 课题名称16*16点阵显示 专业通信工程 班级1181 学号 2 姓名肖浪

指导教师乔汇东吴德建 2013年7月2日 湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题16*16点阵显示 专业班级通信工程1181 学生姓名肖浪 学号 2 指导老师乔汇东吴德建

任务书下达日期2013 年6月23日 任务完成日期2013 年7月2日 《数字系统与逻辑设计》课程设计任务书 一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排 第十八周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

数字音乐盒的设计与实现

课程设计报告 课程设计名称:微机系统综合课程设计课程设计题目:数字音乐盒的设计与实现

1总体设计方案 1.1题目介绍与要求 本次课程设计的任务是运用伟福Lab8000试验箱和keil软件设计并实现一个数字音乐盒,要求采用I/O产生一定频率的方波,从而驱动蜂鸣器发出不同的音调,演奏乐曲;并且需要采用七段数码管显示当前播放的歌曲序号和播放时间;还得通过数字键盘直接选择乐曲,控制选择上一曲和下一曲音乐,具有暂停和播放控制功能。 1.2设计思路 1.2.1音调的产生 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。在两个八度音之间又分为十二个半音。另外,音名A (简谱中的低音6)的频率为440Hz,音名B到C之间、E 到F之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每 个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。 要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以 2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。 利用51单片机的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。 此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。 例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下:

EDA乐曲硬件演奏电路设计 课程设计

摘要 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数化库单元LPM 器件。通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。 本课设在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,并定制LPM-ROM存储音乐数据,以“两只老虎”乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。 关键词:FPGA;EDA;VHDL;音乐

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案一 (1) 1.2方案二 (1) 1.3综合对比 (1) 2 乐曲演奏电路原理 (2) 2.1 音乐演奏电路原理 (2) 2.2 音符频率的获得 (2) 2.3 乐曲节奏的控制 (3) 2.4 乐谱发生器 (3) 2.5 乐曲演奏电路原理框图 (3) 3音乐硬件演奏电路的设计实现 (4) 3.1 地址发生器模块 (4) 3.1.1 地址发生器的VHDL设计 (4) 3.2 分频预置数模块 (6) 3.2.1 分频预置数模块的VHDL设计 (6) 3.3 数控分频模块 (8) 3.3.1 数控分频模块的VHDL设计 (8) 3.4 music模块 (10) 3.4.1 音符数据文件 (10) 3.5.2 LPM-ROM定制 (12) 3.6 顶层文件 (14) 4 时序仿真及下载调试过程 (16) 4.1 时序仿真图 (16) 4.2 引脚锁定以及下载 (17) 4.3调试过程及结果 (17) 5扩大乐曲硬件演奏电路的通用性 (18) 5.1 完善分频预置数模块的功能 (18) 设计总结与心得体会 (21) 参考文献 (22)

相关文档