当前位置:文档之家› 基于VHDL的音乐播放器的设计

基于VHDL的音乐播放器的设计

基于VHDL的音乐播放器的设计
基于VHDL的音乐播放器的设计

摘要

摘要

在EDA开发工具Quartus II 6.0平台上,采用VHDL语言层次化和模块化的设计方法,通过音符编码的设计思想,预先定制乐曲,实现动态显示乐曲演奏电路的设计,并在此基础上,基于同一原理,使此电路同时具备了简易电子琴的功能,使基于CPLD/FPGA芯片的乐曲播放数字电路得到了更好的优化,提高了设计的灵活性和可扩展性。

关键字:EDA;Quartus II;VHDL;CPLD/FPGA;乐曲演奏电路;简易电子琴

ABSTRACT

ABSTRACT

Based on the QuartusII-the EDA development tool, this design has adopted the method of classification and modularization of VHDL level. Through the concept of note coding, the design of dynamic music-displaying circuit is realized after the musical composition has been made in advance. On the basis of the above and the same principle, this electric circuit has the same function of a simple electronic organ. The design of CPLD/FPGA chip-based music-displaying digital circuit is greatly improved, and the flexibility and expansibility of the design are improved as well.

Key Words: EDA;Quartus II;VHDL;CPLD/FPGA;music-displaying circuit;simple electronic organ

目录

第1章绪论 (1)

1.1 研究背景 (1)

1.2 电子设计自动化发展史 (2)

1.2.1 EDA技术的涵义 (2)

1.2.2 EDA技术的发展史 (2)

1.3 EDA技术发展动态 (3)

1.4 研究思路及主要工作 (4)

第2章可编程技术简介 (5)

2.1 可编程逻辑器件FPGA/CPLD (5)

2.2 硬件描述语言VHDL (7)

2.3 开发软件QUARTUS Ⅱ (9)

第3章系统设计 (13)

3.1 系统原理 (13)

3.1.1 音调的控制 (14)

3.1.2 音长的控制 (14)

3.2系统结构 (15)

3.3 各模块分析与设计 (16)

3.3.1 定制《万水千山总是情》音符数据ROM (16)

3.3.2 音符数据地址发生器模块NOTETABS (17)

3.3.3 预置数查表电路电路模块TONETABA (17)

3.3.4 发声频率产生模块SPEAKERA (17)

3.3.5 简易电子琴功能模块ELECLOCK (18)

第4章系统程序实现与仿真分析 (19)

4.1 各部分程序实现 (19)

4.1.1 在QUARTUSII 6.0下定制的LPM_ROM (19)

4.1.2 乐曲硬件演奏电路顶层设计VHDL实现 (19)

4.1.3 音符数据地址发生器模块NOTETABS程序与说明错误!未定义书

签。

4.1.4 预置数查表电路模块TONETABA程序与说明. 错误!未定义书签。

4.1.5 发声频率产生模块SPEAKERA程序与说明 ..... 错误!未定义书签。

4.1.6 简易电子琴功能模块ELECLOCK程序与说明 . 错误!未定义书签。

4.2 仿真结果分析 .................................................................. 错误!未定义书签。

4.2.1 Speakera仿真 ......................................................... 错误!未定义书签。

4.2.2 顶层文件仿真(包括电子琴部分)结果 ............ 错误!未定义书签。

4.2.3 顶层文件仿真(不包括电子琴)结果 ................ 错误!未定义书签。

4.2.4 简易电子琴单独仿真 ............................................ 错误!未定义书签。第5章硬件验证....................................................................... 错误!未定义书签。第六章结束语 ............................................................................ 错误!未定义书签。参考文献 ........................................................................................ 错误!未定义书签。致谢 ................................................................................................ 错误!未定义书签。

第1章绪论

第1章绪论

1.1研究背景

随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。

同时,利用可编程逻辑器件和EDA 技术使设计方法发生了质的变化。把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA 开发平台,采用可编程逻辑器件CPLD/FPGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。

这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的诞生都离不开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA 技术提供支持。

本文应用VHDL硬件描述语言,设计一个乐曲硬件演奏电路,它能将一首预先设置存储好的乐曲自动播放出来,除此之外,也能够通过按键的方式输入音符,使其具备简易电子琴的功能。通过此项研究,能够深切的体会利用EDA工具开发的优越性,在此基础上,对乐曲硬件演奏电路功能进行丰富,具体一定的社会实用性。

下面对乐曲演奏电路的设计与实现中涉及的EDA技术,以及EDA技术中常用的开发器件CPLD/FPGA可编程逻辑器件,开发语言VHDL以及开发软件

1

QuartusⅡ作简单介绍。

1.2电子设计自动化发展史

1.2.1EDA技术的涵义

什么叫EDA技术?EDA是Electronic Design Automation(电子设计自动化)的缩写。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。

1.2.2EDA技术的发展史

EDA技术伴随着计算机、集成电路和电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,CAD)、计算机辅助工程设计(Computer Assist Engineering Design,CAED)和电子设计自动化(Electronic Design Automation,EDA)三个发展阶段。

●20世纪70年代的计算机辅助设计(CAD)阶段;

早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB(Printed Circuit Board)板上进行的,由于设计师对图形符号使用数量有限,传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。可编程逻辑技术及其器件问世,计算机作为一种工具在科研领域得到广泛应用。而在后期,CAD的概念已见雏形,这一阶段人们开始利用计算机取代手工设计,辅助进行集成电路版图编辑、PCB布线等工作。

●20世纪80年代的计算机辅助工程设计(CAED)阶段;

20世纪80年代,集成电路进入了CMOS(互补场效应管)时代,复杂可编程逻辑器件进入商业应用,相应的辅助设计软件投入使用;而在80年代末,出现了FPGA;CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、

2

第1章绪论

自动布局布线及PCB分析,以及逻辑设计、仿真、综合和简化等方面担任了重要的角色。特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。

●20世纪90年代电子系统设计自动化(EDA)阶段;

为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。EDA工具的发展,又为设计师提供了全线EDA工具。

这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计由工具来完成,如可以将用户要求转换为设计技术规范,有效的处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA 工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。

20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发(即片上系统集成,System on A Chip)。因此,EDA工具是以系统机设计为核心,包括系统行为级描述与结构综合,系统仿真与测试验证,系统划分与指标分配,系统决策与文件生成等一整套的电子系统设计自动化工具。

这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。例如,提供方框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言(如VHDL、AHDL或Verilog-HDL),同时含有各种工艺的标准元件库。只有具备上述功能的EDA工具,才可能是电子设计工程师在不熟悉各种半导体工艺的情况下,完成电子系统的设计。

1.3EDA技术发展动态

未来的EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC(单片系统)设计技术的发展,软硬核功能

3

库的建立,以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。

1.4研究思路及主要工作

本文按照EDA开发流程,采用VHDL硬件描述语言开发,将乐曲硬件演奏电路设计进行模块化分解,层次化设计,分成几个单独的结构体,每个结构体实现部分功能,最后,经顶层文件将各单独结构体进行综合,实现乐曲硬件演奏。

主要工作:根据硬件演奏电路的功能进行全局分析,采用自上至下的设计方法,从系统总体要求出发,逐步将设计内容细化,最后完成系统结构的整体设计。将功能分成两部分,功能一:实现预先设置乐曲的播放功能;功能二:实现乐曲按键输入,实现简易电子琴功能。

实现功能一乐曲播放,需要完成以下设计:

①.预置乐曲,本文选取了《万水千山总是情》的一段作预置,作预置时,需要将乐曲音符转换成相应的代码,通过计算逐一将音符转换成代码,通过EDA 开发平台quartus ii 6.0进行乐曲定制;

②.为了提供乐曲发音所需要的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符发音的相应频率;

③.为了给分频提供预置数,需要计算分频预置数;

④.对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真;

实现功能二按键输入简易电子琴,需要完成以下设计;

①.同样利用数控分频原理,通过公式预先计算分频预置数;

②.编写简易电子琴源程序VHDL文件;

启动quartus ii 6.0全程编译,生成具体输入,输出端口的图形文件。启动全程功能仿真,生成仿真波形文件。生成下载文件,在EPM7128实验开发板上利用Altera公司的EPM7128—SLC84—10芯片进行功能验证。

4

第2章可编程技术简介

第2章可编程技术简介

2.1可编程逻辑器件FPGA/CPLD

在数字化道路上,我国电子设计技术的发展经历了并将继续经历很多重大的变革与飞跃。从应用SSI通用数字电路芯片构成电路系统,到广泛应用MCU(微控制器或单片机),在电子系统设计上发生了一个具有里程碑意义的飞跃,这一飞跃不但克服了纯SSI数字电路系统许多不可逾越的困难,同时也为电子设计技术的应用开拓了更广阔的前景,使得电子系统的智能化水平在广度和深度上产生了质的飞跃。MCU的广泛应用并没有抛弃SSI的应用,而是为它们在电子系统中找到了更合理的地位。随着社会经济发展的延伸,电子设计技术的应用为我们提出了许多全新的课题和更高的要求,因此也拓宽了更大的应用空间。不言而喻,我国的电子设计技术发展到今天,又将面临一次更大意义上的突破。从某种意义上来说,这种突破的实现是历史抉择性的,而非技术性的。即CPLD/FPGA在EDA 中的广泛应用。可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称,现在,FPGA和CPLD器件的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色。

从本质上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构上,但却是一次更高层次的循环。它在更高层次上容纳了过去数字技术的优秀部分,对MCU系统将是一种扬弃,但在电子技术的设计操作和系统构成的整体上却发生了质的飞跃。如果说MCU在逻辑的实现上是无限的话,那么CPLD/FPGA不但包括了MCU这一特点,而且还可触及硅片电路线度的物理极限,并兼有串并行方式、高速、高可靠性以及宽口径实用性等诸多方面的特定。不但如此,随着EDA 技术的发展和CPLD/FPGA在深亚微米级领域的进军,它们与MCU、MPU、DSP、A/D、RAM和ROM等独立器件间的物理与功能界限将日益模糊。特别是软/硬IP 芯核产业的迅猛发展,嵌入式通用与标准FPGA器件呼之欲出,片上系统(SOC)已近在咫尺。CPLD/FPGA其不可替代的地位及其伴随而来的极具知识经济特征的IP核产业的崛起越来越受到业内人士的密切关注。

国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。

Xilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200系列等,可用门数为1200~18 000;Altera公司的CPLD器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE系列等,提供门数为5000~25 000;Lattice公司的ISP-PLD器件有ispLSI1000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多达25 000个PLD等效门。

FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。

高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点,其时钟延时可小至ns级,结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。

由于FPGA/CPLD的集成规模非常大,可利用先进的EDA工具进行电子系统设计和产品开发。

由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。

它几乎可用于任何型号和规模的FPGA/CPLD中,从而使得产品设计效率大幅度提高。

可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。美国IT公司认为,一个ASIC 80%的功能可用于IP核等现成逻辑合成。而未来大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP核(Core)的拼装,其设计周期将更短。

与ASIC设计相比,FPGA/CPLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量

第2章可编程技术简介

扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。

对于一个开发项目,究竟是选择FPGA还是选择CPLD 呢?主要看开发项目本身的需要。对于普通规模,且产量不是很大的产品项目,通常使用CPLD比较好。对于大规模的逻辑设计ASIC设计,或单片系统设计,则多采用FPGA。另外,FPGA掉电后将丢失原有的逻辑信息,所以在实用中需要为FPGA芯片配置一个专用ROM。

我们深刻体会到,CPLD/FPGA的学习与应用已不仅仅是一种单纯的基于某种特定器件的应用开发过程,而是一种极富挑战性和创造性的开拓性活动。它打破了软硬件之间最后的屏障,使软硬件工程师们有了真正的共同语言,它使目前一切仍处于计算机辅助性设计和规划的纯软件活动变成了实实在在的设计和实体。在1997年全国大学生电子设计竞赛组委会专家组的一次会议上,一位专家指出:我国的单片机时代已经结束,未来的电子设计将是EDA的时代。这是极具深刻洞察力的明世之言。

2.2硬件描述语言VHDL

VHDL(Very High Speed Integrated Circuit Hardware Description Language)是非常高速集成电路硬件描述语言,是可以描述硬件电路的功能、信号连接关系及定时关系的语言。它能比电路原理图更有效地表示硬件电路的特性。使用VHDL语言,可以就系统的总体要求出发,自上至下地将设计内容细化,最后完成系统硬件的整体设计。VHDL语言作为IEEE标准的硬件描述语言和EDA的重要组成部分,经过十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语句表达风格和层次的仿真测试手段,受到业界的普遍认同和广泛的接受,从数十种国际流行的硬件描述语言中脱颖而出,成为现代EDA领域的首选硬件设计计算机语言,而且目前流行的EDA工具软件全部支持VHDL。除了作为电子系统设计的主选硬件描述语言外,VHDL在EDA领域的仿真测试、学术交流、电子设计的存档、程序模块的移植、ASIC设计源程序的交付、IP核(Intelligdence Property Core)的应用等方面担任着不可或缺的角色。目前,它还不能应用于模拟电路的设计,但已有人投入研究。

VHDL程序结构包括:实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)及库(Library)。其中,实体是一个VHDL程序的基本单元,由实

体说明和结构体两部分组成:实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为、系统数据的流程或系统组织结构形式。配置用语从库中选取所需的单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生变化。包集合存放各设计模块能共享的数据类型、常数、子程序等。库用于存放已编译的实体、构造体、包集合及配置:一种是用户自己开发的工程软件,另一种是制造商提供的库。

VHDL语言的主要特点是:

①功能强大,灵活性高:VHDL语言是一种功能强大的语言结构,可用简洁明确的代码来进行复杂控制逻辑的设计。同时VHDL语言还支持层次化的设计,支持设计库和可重复使用的元件生成。目前,VHDL语言已成为一种设计、仿真、综合的标准硬件描述语言。

②器件无关性:VHDL语言允许设计者在生成一个设计时不需要首先选择一个具体的器件。对于同一个设计描述,可以采用多种不同器件结构来实现其功能。因此设计描述阶段,可以集中精力从事设计构思。当设计、仿真通过后,指定具体的器件综合、适配即可。

③可移植性:VHDL语言是一种标准的语言,故采用VHDL进行的设计可以被不同的EDA工具所支持。从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。在一个EDA 工具中采用的技术技巧,在其它工具中同样可以采用。

④自顶向下的设计方法:传统的设计方法是,自底向上的设计或平坦式设计。自底向上的设计方法是先从底层模块设计开始,逐渐由各个模块形成功能复杂的电路。这种设计方法优点是很明显的,因为它是一种层次设计电路,一般电路的子模块都是按照结构或功能划分,因此这种电路层次清楚,结构明确,便于多人合作开发,同时设计文件易于存档,易于交流。自底向上设计方法的缺点也很明显,往往由于整体设计思路不对而使的花费几个月的低层设计付之东流。平坦式设计是整个电路只含有一个模块,电路的设计是平铺直叙的,没有结构和功能上的划分,因此不是层次电路的设计方式。优点是小型电路设计时可以节省时间和精力,但随着电路复杂程度的增加,这种设计方式的缺点变的异常突出。自顶向下的设计方法是将要设计的电路进行最顶层的描述(顶层建模),然后利用EDA 软件进行顶层仿真,如果顶层设计的仿真结果满足要求,则可以继续将顶层划分

第2章可编程技术简介

的模块进行低一级的划分并仿真,这样一级一级设计最终将完成整个电路的设计。自顶向下的设计方法与前面两种方法相比优点是很明显的。

⑤数据类型丰富:作为硬件描述语言的一种VHDL语言的数据类型非常丰富,除了VHDL语言自身预定义的十种数据类型外,在VHDL语言程序设计中还可以由用户自定义数据类型。特别是std_logic数据类型的使用,使得VHDL语言能最真实模拟电路中的复杂信号。

⑥建模方便:由于VHDL语言中可综合的语句和用于仿真的语句齐备,行为描述能力强,因此VHDL语言特别适合信号建模。目前VHDL的综合器能对复杂的算术描述进行综合(如:QuartusⅡ 2.0以上的版本都能对std_logic_vector类型的数据进行加、减、乘、除),因此对于复杂电路的建模VHDL语言无论仿真还是综合都是非常合适的描述语言。

⑦运行库和程序包丰富:目前支持VHDL语言的程序包很丰富,大多以库的形式存放在特定的目录下,用户可随时调用。如IEEE库收集了std_logic_1164、std_logic_arith、std_logic_unsigned等程序包。在CPLD/FPGA综合时,还可以使用EDA软件商提供的各种库和程序包。而且用户利用VHDL语言编写的各种成果都可以以库的形式存放,在后续的设计中可以继续使用。

⑧VHDL语言是一种硬件电路的建模描述语言,因此与普通的计算机语言有较大差别,普通计算机语言是CPU按照时钟的节拍,一条指令执行完后才能执行下一条指令,因此指令执行是有先后顺序的,也即是顺序执行,而每条指令的执行占用特定的时间。而与VHDL语言描述结果相对应的是硬件电路,它遵循硬件电路的特点,语句的执行没有先后顺序,是并发的执行的;而且语句的执行不像普通软件那样每条指令占用一定的时间,只是遵循硬件电路自身的延迟时间。

2.3开发软件QUARTUS Ⅱ

Altera公司是世界三大CPLD/FPGA 厂家之一,它的器件能达到最高的性能和集成度,不仅仅因为采用了先进的工艺和全新的逻辑结构,还在于它提供了现代化的设计工具之一QUARTUS Ⅱ可编程逻辑开发软件,该软件是MAX+plusⅡ的升级版本,Altera公司的第四代开发软件。其提供了一个完整高效的,一种与结构无关的设计环境,非常适应具体的设计需要。QuartusⅡ提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。能够支持逻辑门数在百万门以上的逻

辑器件的开发,并且为第三方工具提供了无缝接口。QUARTUS Ⅱ提供了全面的逻辑设计能力,包括电路图、文本和波形的设计输入以及编译、逻辑综合、仿真和定时分析以及器件编程等诸多功能。特别是在原理图输入等方面,QUARTUS Ⅱ被公认为是最易使用、人机界面最友好的PLD 开发软件,QUARTUSⅡ开发系统具有很多突出的特点:

①开放式的界面:Altera公司与EDA开发商紧密合作,使QUARTUS Ⅱ可以与其他工业标准的设计与输入、综合、校验工具相连接。它与EDA工具的接口遵循EDIF 200、EDIF 300,参数模块库LPM 2.1.0,标准延迟格式SDF 1.0、SDF 2.0,VITAL 95,Verilog HDL,VHDL 1987 及VHDL 1993等多种标准。QUARTUSⅡ软件接口允许用户使用Altera或标准EDA设计输入工具来创建逻辑设计,使用QUARTUSⅡ的编译器对Altera器件的设计进行编译,使用Altera或其他EDA校验工具进行器件升级或板级仿真。表2-1 显示Quartus II 软件支持的EDA 工具,并指出哪个EDA 工具可支持NativeLink?。NativeLink 技术在Quartus II 软件和其它EDA 工具之间无缝地传送信息,并允许在Quartus II 软件中自动运行EDA 工具。

表2-1 Quartus II 软件支持的EDA 工具

第2章可编程技术简介

资料来源:Altera公司,Quartus ii 简介电子书版

②设计与结构无关:QUARTUSⅡ支持Cyclone? II、Cyclone、MAX? II、Stratix? II、Stratix、Excalibur?、APEX? II、APEX 20KE、FLEX? 10KE、FLEX 10KA、FLEX 10K?、ACEX? 1K、FLEX 6000、MAX 7000B、MAX 7000AE、MAX 7000S和MAX 3000A等系列可编程逻辑器件,门数为6000~250 000门,提供了业界真正与结构无关的可编程逻辑设计环境。QUARTUSⅡ的编译器还提供了强大的逻辑综合与优化功能以减轻用户的设计负担。

③可在多种平台运行:QUARTUSⅡ软件可在基于PC机的WindowsNT 4.0、Windows 98、Windows 2000操作系统下运行,也可在Sun SPARCstations、HP 9000 Series 700/800、IBM RISC System/6000等工作站上运行。

④完全集成化:QUARTUSⅡ软件的设计输入、处理、校验功能完全集成于可编程逻辑开发工具内,从而可以更快地进行调试,缩短开发周期。

⑤模块化工具:设计者可以从各种设计输入、编辑、校验及器件编程工具中做出选择,形成用户风格的开发环境,必要时还可在保留原始功能的基础上添加新的功能。由于QUARTUSⅡ支持多种器件系列,设计者无需学习新的开发工具即可对新结构的器件进行开发。

⑥支持硬件描述语言(HDL):QUARTUSⅡ软件支持多种HDL的设计输入,包括标准的VHDL、Verilog HDL及Altera公司自己开发的硬件描述语言AHDL。

⑦ MegaCore功能:MegaCore 是经过预先校验的为实现复杂的系统级功能而

提供的HDL网表文件。它为ACEX 1K、MAX 7000、MAX 9000、FLEX 6000、FLEX 8000和FLEX 10K系列器件提供了最优化设计。用户可从Altera公司购买这些MegaCore,使用它们可以减轻设计任务,使设计者能将更多的时间和精力投入到改进设计和最终产品上去。

⑧OpenCore特点:QUARTUSⅡ软件具有开放性内核的特点,OpenCore可供设计者在购买产品前来对自己的设计进行评估。

同时,QUARTUSⅡ还有多种设计输入方法,主要包括:

①图形设计输入:QUARTUSⅡ的图形设计输入是较其他软件更容易使用的特点,因为QUARTUSⅡ提供了丰富的库单元供设计者调用,尤其是在maxplus2库里几乎包含了所有的74系列的器件。因此只要具有数字电路的知识,几乎不需要过多的学习就可以利用QUARTUSⅡ进行CPLD/FPGA的设计。

②文本编辑输入:QUARTUSⅡ的文本输入和编译系统支持AHDL语言、VHDL语言、VERILOG语言三种输入方式

③波形输入方式:如果知道输入、输出波形,也可以采用波形输入方式。

④混合输入方式:QUARTUSⅡ设计开发环境,可以进行图形设计输入、文本编辑输入、波形编辑输入混合编辑。具体操作方法是:在图形编辑、波形编辑时形成模块,在文本编辑时通过include“模块名.inc”或者采用Function(…..)Return(….)的方式进行调用。同样,文本编辑输入形成的模块,也可以在图形编辑时调用,AHDL语言编译的结果可以在VHDL 语言下使用,VHDL语言编译的结果也可以在AHDL语言或图形输入时使用。这样灵活多变的输入方式,给设计使用者带来了极大的方便。

第3章系统设计

第3章系统设计

3.1系统原理

传统数字逻辑设计方法相比,本设计借助于功能强大的EDA工具和硬件描述语言来完成,如果只以纯硬件的方法完成乐曲演奏电路的设计,将是难以实现的。本设计采用了《万水千山总是情》(图3-1)的一部分来曲子来完成。

为了便于理解,首先介绍一下硬件电路的发声原理。我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。而乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可(音符和频率的关系见表3-1)。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。

而简易电子琴,工作原理与乐曲演奏一样,只是将固定预置乐曲变成了手动按键输入,节拍时间取决于按键的停留时间,如果合适,同样能播放出完整的歌曲来。

图3-1《万水千山总是情》曲谱

3.1.1音调的控制

频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。在两个八度音之间又分为十二个半音。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F 之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,因此必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率过高,虽然误差较小,但分频数将变大。实际的设计应综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。因此,要想FPGA 发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。综合考虑各因素,本文中选取12MHZ作为CLK的分频计数器的输入分频信号。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。

表3-1 简谱中的音名与频率的关系

资料来源:EPM7128实验板说明书

3.1.2音长的控制

音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,在想控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,在这个设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4HZ的时钟频率即可产生四分音符的时长。要想让系统知道现在应该演奏哪个音符,而这个音符持续的时间应该是多少,就必须编写乐曲文件,在乐曲文件中音符是按地址存放

第3章系统设计

的,当系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒,而如果在曲谱文件中这个音符为三拍音长,那又该如何控制呢?其实只要将该音符连续书写三遍,这时系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,通过这样一个简单的操作就可以控制音乐的音长了。

3.2系统结构

本系统主要由四个功能模块组成:NOTETABS.VHD,TONETABA.VHD和SPEAKER.VHD。第一部分NOTETABS,地址发生器,实现按节拍读乐谱的功能;第二部分TONETABA,查表电路,为SPEAKER提供分频预置数,实现乐曲译码输出CODE[3:0];第三部分SPEAKERA,产生发音频率,实现乐曲播放;第四部分ELECLOCK实现简易电子琴功能。系统结构图如(图3-2),该系统有三个输入,五个输出端口。三输入端口分别是:

CLK 4HZ端口,作为节拍脉冲信号输入端口;

CLK 12MHZ端口,作为发音频率初始信号输入端口;

KEYIN输入端口,作为简易电子琴音符输入端口。

五输出端口分别是:

CODE输出端口,作为音符简码输出LED显示端口;

HIGH输出端口,作为音符高8度指示端口;

SPKS输出端口,作为《万水千山总是情》乐曲的声音输出端口;

BUZZOUT输出端口,作为简易电子琴声音输出端口;

LEDOUT输出端口,作为简易电子琴输入音符显示端口。

图3-2系统功能模块组成图

3.3各模块分析与设计

3.3.1定制《万水千山总是情》音符数据ROM

为了实现乐曲的播放,首先需要将曲谱定制到音符数据ROM里面,然后才能按照一定的节拍从ROM中读出曲谱。由于所选曲子中不含高音,我们转换关系如(表3-2):

表3-2音符与ROM中数据转换关系

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能! 表1 需求分析 功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。 原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就

会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1 和C2为22pf。 第三章:系统硬件电路设计 1:硬件体系结构设计 该简易音乐播放器主要有单片机核心芯片89C52,LED发光二极管,扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。另外,该方案使用的是单片机板子的内部振荡电路,89C52芯片的X1,X2引脚外接石英晶体。它的系统组成如图所示。 (1)晶振电路部分晶振的作用是给电路提供工作信号脉冲的,其实就是单片机的工作速度。本次设计选用12M晶振,则单片机的工作速度就是每秒12M。与此同时,也要注意单片机的工作频率范围。 (2)复位电路部分当系统出现问题时可以重置系统,解决一些问题 (3)LED显示部分显示系统在各种不同条件下的状态 (4)89C52芯片整个设计的核心,接收和处理信号及程序 (5)按键电路部分作为系统的输入

成绩: 《虚拟仪器技术及应用》 课 程 设 计 题目:基于LabVIEW的音乐播放器程序设计 学期:2013~2014学年第一学期 指导教师: 姓名: 学号: 年级、专业:

目录

基于LabVIEW的MP3程序设计 1程序设计背景 MP3是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号)对低频信号使用小压缩比,保证信号不失真。 MP3的工作原理:从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→低通滤波后到耳机输出口,输出后就是我们所听到的音乐了。 经过几年的发展MP3已经走进了千家万户,使用者也遍布各个年龄段和各个文化阶层。从最初的简单MP3播放器,到现在的手机,平板等便携设备自带的MP3播放器,MP3播放器已经走向大众,并演化为人们生活不可缺少的一部分,车上会有车载MP3,电脑手机平板上的MP3也是必不可少,总之,已经人们时时刻刻都已经在享受着MP3带来的快乐。 2程序设计思路 2.1程序整体设计思路 该虚拟仪器—MP3播放器,主要用于播放已存储计算机磁盘中的音乐文件。它是将播放器的系统装入计算机,以通用的计算机硬件及操作系统为依托,实现音乐功能的。VI程序设计里,默认容易识别的格式为WAV格式,所以在设计MP3时采取调用的方法,本系统主要利用labview的Activex,属性节点,调用节点,Eventstructure等控制实现的。MP3音乐播放器界面包括播放歌曲名字,播放路径以及停止按钮。 2.2程序流程设计 程序流程设计:设定路径,判定路径是否有效→无效报错;有效,执行下一阶段程序→调用媒体播放器,编写歌名显示和文件路径显示,设置停止功能按钮→程序结束。 本程序主要涉及到一下控件或结构的使用: (1)事件结构:包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

课程设计 题目:基于单片机音乐演奏曲Title: instrumental music based on single chip 姓名: 学号: 系别: 专业: 年级: 指导教师: 2012年5 月25 日

摘要 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本设计以At89c2051为核心,主要由电源电路、复位电路、音频放大电路、时钟电路和数码管电路和蜂鸣器电路构成单片机奏乐附加时钟的一个小系统。电路中I/O口采用分时复用的借口技术,使AT89c2051单片机的引脚资源得以充分利用,本系统的电路简单,实现的功能强大,所用芯片比较便宜,性价比较高。 关键词:At89c2051,数码管,单片机奏乐,分时复用

目录 摘要 ........................................................... - 1 - 1.引言 (3) 2.系统整体结构 (4) 2.1系统总设计 (4) 2.2实现的功能 (4) 2.3主要芯片介绍 (4) 2.3.1 AT89c2051芯片介绍 (4) 3.系统硬件设计 (5) 3.1键盘输入模块 (5) 3.2时钟模块 (5) 3.3显示模块 (6) 3.4复位电路 (6) 3.5蜂鸣器电路设计 (7) 4.系统软件设计 (7) 4.1系统主程序流程图系 (7) 4.2 部分子程序流程图 (8) 结束语 (10) 参考文献 (10) 致谢 (11) 附录 (11)

1.引言 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。 本次设计为单片机奏乐器,硬件部分它以单片机AT89C2051为核心,由功放电路、数码管等组成。当接上电源按下开关时,就能听到优美的旋律。当然这些音乐都是通过软件编程实现的,把它存储在存储器里,根据存储容量大小决定存储音乐的数目。 [2]

嵌入式MP3播放器的设计 1 系统概述 本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过触摸屏实现按键功能,控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。 MP3播放过程是STM32通过SPI1接口将数据从SD卡中取出,然后通过SPI2接口送至解码芯VS1003解码播放。这里解码模块单独使用一个SPI接口,以减小干扰和噪声、提高音质。 2 系统硬件设计方案 本系统在硬件上分为6个模块: 微控制器STM32F103、解码模块VS1003、存储模块SD卡、触摸屏、USB接口和显示屏LCD。系统硬件框架如图5所示。 VS1003 STM32 图5 系统硬件框架图 2.1 存储模块设计 SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。SD卡支持两种总线方式: SD方式与SPI方式。其中SD 方式采用6线制,而SPI方式采用4线制,采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD方式或SPI方式。 在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。该系统使用STM32内部接口SPI1与SD卡进行通信,下面介绍其引脚连接情况。 PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

一、实验项目名称 基于单片机的音乐播放器 二、实验目的 Ⅰ设计方案 设计一个基于AT89C51系列单片机的音乐盒,利用按键控制切换演奏出不同的音乐。蜂鸣器发出某个音调,与之对应的LED灯亮起。使用两个按键,一个用来切换歌曲,另一个切换LED的变化花样。Ⅱ研究内容 ①电路有两种模式:演奏音乐模式和花样灯模式 A 演奏音乐模式:演奏完整的一首歌曲,LED随着音乐变化; B 花样灯模式:LED变化出各种花样,蜂鸣器随着发出“滴滴”声; ②按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲; 按下按键2进入花样灯模式,再按切换LED花样,共三种花样。Ⅲ总体方案图 a组成框图: 音乐盒的系统结构以AT89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如下所示:

b功能结构图: Key1负责切换播放歌曲,共两首。分别是祝你生日快乐和寂寞沙洲冷;Key2负责切换LED显示花样,共3种:顺序显示,由两边向中间移动然后向两边移动,循环显示。 三、实验器材 Windows7 操作系统Proteus仿真软件 keil4软件AT89C51单片机 共阴极数码管开关电容晶振 电阻发光二极管蜂鸣器 四、实验要求 (1)以单片机为主控处理器,用蜂鸣器播放歌曲;

(2)系统要求有选择上一首、下一曲功能; (3)两个按键,可在播放和显示花样中进行切换; (4)用一个键控制花样类型的显示功能; (5)用LED灯闪烁“伴奏”。 五、实训基本原理(附原理图、源程序清单) 1 硬件设计 ①LED显示电路设计与原理 LED显示电路是由8个LED发光二极管组成,连接方式是共阳极,LED接到单片机的P1口,若是低电平,可使LED亮。发光二极管的亮灭是由内部程序控制的,8个LED发光二极管分别对应不同的音阶,所以LED会随着音阶的变化按规律亮灭。 ②硬件电路图及其功能介绍 1)电路中用P3.2、P3.3 控制键; 2)P1.0~P1.7控制LED; 3)P2.3控制蜂鸣器; 4)电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。

德州学院信息管理学院 课程设计报告实习名称课程设计2 设计题目Android音乐播放器的设计与实现实习时间 专业班级12级计算机科学与技术 指导老师刘想 教学单位(盖章) 小组成员分工情况: 学号姓名分工 3018 周生明音乐播放的设计与实现1052曹法瑞 1040 张正奎 1055 李元华 2049 王山 二〇一五年六月三十日

目录 摘要 ................................................................................................................ 错误!未定义书签。 1 引言 ............................................................................................................ 错误!未定义书签。 2 可行性分析................................................................................................. 错误!未定义书签。 2.1 技术可行性...................................................................................... 错误!未定义书签。 2.2 经济可行性...................................................................................... 错误!未定义书签。 2.3 管理可行性...................................................................................... 错误!未定义书签。 2.4 可行性分析结论.............................................................................. 错误!未定义书签。 3 系统需求分析............................................................................................. 错误!未定义书签。 3.1 功能分析.......................................................................................... 错误!未定义书签。 3.2 数据流程分析.................................................................................. 错误!未定义书签。 4 系统功能设计............................................................................................. 错误!未定义书签。 4.1 播放器功能结构.............................................................................. 错误!未定义书签。 4.1.1 播放器主界面功能模块....................................................... 错误!未定义书签。 4.1.2 播放器菜单功能模块........................................................... 错误!未定义书签。 4.2 播放器功能流程.............................................................................. 错误!未定义书签。 5 系统实现..................................................................................................... 错误!未定义书签。 5.1 播放器主界面功能列表.................................................................. 错误!未定义书签。 5.2 播放器基本功能的实现.................................................................. 错误!未定义书签。 5.3 播放列表的实现.............................................................................. 错误!未定义书签。 6 软件测试与验证......................................................................................... 错误!未定义书签。 6.1 软件测试的目的.............................................................................. 错误!未定义书签。 6.2 软件测试的方法.............................................................................. 错误!未定义书签。 6.3 软件测试环境.................................................................................. 错误!未定义书签。 6.3.1 android模拟器 ...................................................................... 错误!未定义书签。 6.3.2 真机测试............................................................................... 错误!未定义书签。 6.4 软件测试流程与结果评估.............................................................. 错误!未定义书签。 6.4.1 测试流程............................................................................... 错误!未定义书签。 6.4.2 结果评估............................................................................... 错误!未定义书签。

基于STM32 MP3播放器设计 学院:XXXXXXXXXXX 专业班机:XXXXXXXX 姓名XXXXX 学号:XXXXXXXX

1.1 本课题的提出及意义 MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。 MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。由于闪存式MP3的容量限制,使它存储歌曲数目较少,在功能上也很难实现多样化[1]。而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。 MP3播放器一般分成3个部分:CPU、MP3硬件解码器存储器。其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、D/A转换及音频输入。存储器可以是Flash存储器或硬盘[2]。通过用MP3编码技术,可以得到大约12:1压缩的有损音乐信号。 1.2 研究现状 MP3全称是MPEG Layer 3,狭义的讲就是以MPEG Layer 3标准压缩编码的一种音频文件格式。自韩国世韩(Seahan)公司1998年推出世界上第一台MP3随身听以来, MP3播放器以其小巧的外形,不错的近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题[3]。在市场消费刺激下,各大公司纷纷推出了自己的mp3播放器产品,IC供应商提供了众多的MP3解码芯片及其解决方案。除了Micronas方案(MAS3507+DAC3550),还有台湾创品方案(T33510,T33520)、美国SigmaTel方案(STMP3400)和TI的DA-250解决方案。这使mp3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔[4]。 2 硬件设计 2.1整体方案 综述

Java课程设计报告题目:java音乐播放器 姓名 学号 院系 班级 专业 任课教师

1.设计内容及要求 能够实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加 多首歌曲目录 一个简单的基于java语言的音乐播放器,菜单栏:文件,播放控制和播放列表,文件菜单包含打开、循环和退出三个菜单项;播放控 制菜单包含播放、暂停和停止三个菜单项,播放列表菜单则是当向里面 添加歌曲之后才能够查看到里面所包含的歌曲目录。当播放歌曲时,可 以调节音量大小或者设置是否静音;可以查看当前播放音乐的相关属 性,如:歌曲名,歌手,发布时间,所属专辑等等。 2.需求分析 1、时间跟踪条:根据歌曲播放的进度,控制条自动进行追踪,用户可以 随时了解歌曲的播放进度 2、音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设 置 3、属性查询键:通过该控键,用户可以查看当前播放音乐的相属性,获 取关于该歌曲的用户所需的相关信息。 4、菜单栏: ①文件: 打开:用户通过该菜单项打开本地音乐文件,听任何用户想 听的歌曲 循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲 退出:退出音乐播放器,及退出该程序

②播放控制: 播放:选择歌曲之后,通过点击播放菜单项启动播放器播放音乐 暂停:暂停当前正在播放的音乐 停止:停止当前正在播放的音乐 ③播放列表:当用户通过文件打开本地音乐文件后,及相当于在 播放列表里面添加了歌曲,及形成相应的歌曲播放目录 3.总体设计 结合需求分析来看,整个设计包含了简单的菜单栏,根据用户需求设置了三个简单的实现基本操作的菜单,分别是:文件,播放控制, 播放列表;根据具体的操作每个菜单还包含了相应的菜单项,文件:打 开,循环,退出;播放控制:播放,暂停,停止;播放列表则没有菜单 项,该菜单就是用来显示或者查看相应的歌曲目录的。 该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设 置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个 音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音 乐播放窗口里面用户可以进行相关的音乐播放的控制操作。 当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的 播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播 放列表:查看当前播放音乐的相关属性。

吉首大学 《疯狂Android讲义》课程设计 报告书 题目音乐播放器 作者孙琛赵凡卓朱世康王喜元 所属学院软件服务外包学院 专业年级移动互联2012级 指导老师祝勇军 写作时间 2014年4月01日 吉首大学软件学院教务办制 第1章绪论 (4) 1.1 选题的目的及意义 (4) 1.2 本课题涉及内容的研究现状 (4) 1.3 本系统要实现的基本目标和研究内容 (5) 第3章需求分析 (5) 3.1 软件目标 (5) - I -

3.3系统界面需求 (5) 3.4系统性能需求 (6) 第4章系统的总体设计 (6) 4.1 设计思想 (6) 4.2 系统功能结构图 (6) 第5章数据库的设计 (7) 5.1 数据库表的介绍 (7) 5.1.1用户注册表 (7) 5.1.2 完成下载的音乐表 (7) 5.1.3 播放清单表 (7) 5.2 数据库连接 (7) 第6章系统详细设计 (7) 6.1 欢迎界面模块详细设计 (7) 6.2播放列表模块详细设计 (7) 6.3 歌曲播放模块详细设计 (8) 6.4 本地音乐模块详细设计 (8) 6.5 会员登录模块详细设计 (8) 6.6 会员注册模块详细设计··············错误!未定义书签。 6.7 音乐下载模块详细设计 (9) 6.8 设置皮肤模块详细设计 (9) 第7章系统测试 (9) - II -

7.2 图片上传功能测试 (9) 7.3 文件上传功能测试················错误!未定义书签。 结论 (10) - III -

第1章绪论 1.1 选题的目的及意义 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点 1.2 本课题涉及内容的研究现状 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google 和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前最新SDK版本为Android 4.0.3。 - 4 -

<在线音乐播放系统> 详细设计说明书 作者: 完成日期: 签收人: 签收日期: 修改情况记录:

1 引言 1.1 编写目的 为软件开发人员在编码的过程中有所依据和参考。 面向人员:程序开发人员 1.2 背景 说明: a.待开发的软件系统的名称:在线音乐播放系统 b.列出本项目的任务提出者:北软老师 c.开发者:邓凯 d.用户:广大互联网用户 e.将运行该项软件的单位:web服务器 1.3 定义 OMS :Online music system,在线音乐播放系统。 1.4 参考资料 列出要用到的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.在线音乐播放系统概要设计.doc; c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2 程序系统的结构 本程序主要采用四层结构,如下所示: 图1 系统结构示意图

3 程序(标识符)设计说明 3.1 在线音乐网络爬虫设计说明: 资源的数量和质量将决定了系统的商业价值,为了获取更多的网络媒体资源,为系统设计了一款针对互联网上音乐资源的网络爬虫。 3.1.1爬虫的原理: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1)对抓取目标的描述或定义; (2)对网页或数据的分析与过滤; (3)对URL的搜索策略。 3.1.2在线音乐播放系统爬虫的设计: 与通用爬虫不同,在线音乐播放系统爬虫只针对https://www.doczj.com/doc/e618420008.html,音乐频道 https://www.doczj.com/doc/e618420008.html,音乐频道,针对MP3格式的资源。 3.1.3爬虫的流程图:

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

目录 1 引言 (2) 2 设计任务及设计要求 (2) 3 设计原理及总体思路 (3) 4 各单元模块的设计 (5) 5 总电路设计 (17) 6 设计调试体会与总结 (18) 参考文献 (23)

1 引言 《EDA课程设计》(注:EDA即电子设计自动化,Electronics Design Automation)是继《模拟电子技术基础》、《数字电子技术基础》、《电子技术基础实验》课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过一周的时间,让学生掌握EDA的基本方法,熟悉一种EDA软件,并能利用EDA软件设计一个电子技术综合问题,并在实验箱上成功下载,为以后进行工程实际问题的研究打下设计基础。 1.通过课程设计使学生能熟练掌握一种EDA软件的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。 2.通过课程设计使学生能利用EDA软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或AHDL硬件描述语言输入法。 3.通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。 4.通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。 2 设计任务及设计要求 设计一个简易硬件播放器并能播放多首音乐(最少四首),可通过按键手动控制音乐播放。在播放音乐的同时可实现音谱与音高的显示,并通过16个LED 小灯显示不同音调的变化。 使用VHDL语言设计音调发生模块,音调编码模块,乐曲存储模块,控制模块,小灯控制模块,数字显示模块,音谱与音高输出模块等各个模块。

课程设计说明书 课程设计名称:软件综合课程设计 课程设计题目:音频播放器程序的设计与实现学院名称:信息工程学院

电子信息工程专业课程设计任务书 正文: 目录 引言 (5) 一、设计程序的目的与要求 (6)

目的 (6) 要求 (6) 二、方案实现与调试 (6) 总体设计 (6) 1、实现功能 (6) 2、功能模块图 (7) 详细设计 (7) 1、界面布局 (7) 2、各模块功能设计 (8) 2.1处理“打开”按钮 (9) 2.2处理“播放”按钮 (9) 2.3处理“暂停”按钮 (9) 2.4处理“停止”按钮 (9) 2.5处理“音量”按钮 (10) 2.6处理“退出”按钮 (10) 3 操作步骤 (10) 三、课程设计分析与总结 (11) 分析 (11) 总结 (11) 附录 (13) 关键程序清单 (13)

参考文献 (20) 引言 MP3播放器的设计是利用MFC应用程序、媒体控制接口MIC 的基本知识而设计的。 1.1 MFC简介 MFC是Visual C++是核心。MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFC AppWizard 向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。这些函数,必须通过类定义对象才能使用[1]。 1.2 MCI简介 MCI(Media Control Interface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不

信息与电气工程学院CDIO项目设计说明书(2013 /2014学年第一学期) 项目名称:电子信息工程一级项目 专业班级:信息(三)班 学生姓名: 学号: 指导教师: 设计成绩: 2013年12月13日 音乐播放器设计报告

1.设计 1.1设计目的 1.为了更好的学习一个系统设计,善于利用所学知识应用到实践中。 2.培养综合运用所学知识独立完成汇编程序。 3.学会分析问题,解决问题能力。 4.可以把软件设计和书本的知识详解,以及对软件设计的实践应用。 1.2设计内容 1.通过proteus来设计一个音乐播放器,利用8255A,8253和实现电路的综合连接。 2.根据电路的设计,使用汇编语言来编写音乐播放器的实现代码。然后通过按键来实现对高低电平的输入和输出,这样就可以在播放器输出音乐的功能。 2.需求分析 2.1流程图 1.本设计流程是,当需要播放歌曲时,先把程序装入电路中实现电路的控制。 2.当需要播放一首歌曲时,通过电路按键实现控制输入。

2.2发声功能原理 本项目的音乐播放器使用8086中央处理器、74LS373地址锁存器、74LS138译码器、可编程定时器/计数器8253和可编程并行接口8255A来实现。8086中央处理器输出地址/数据码AD0-AD7,将AD0-AD7输入74LS373地址锁存器输出A0-A7,再将A3-A7和A0通过74LS138译码器进行译码输出作为8253和8255A的片选信号,A1和A2作为控制8255A和8253的片内寻址信号;8255A用来控制按键的输入;8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。 2.3项目仿真图 3.主要设计编程过程 3.1定义过程 先定义8255A控制地址,然后定义A,B,C靠的地址,再利用根据8253A计时器特点设计计数器地址。 CORT EQU 00F6H ;8255A控制口地址 PB_A EQU 00F0H ;8255A的A口地址 PB_B EQU 00F2H ;8255A的B口地址 PB_C EQU 00F4H ;8255A的C口地址 COTR EQU 00FEH ;8253A控制口地址

数字电路与逻辑设计综合设计实验报告 实验名称:简易音乐播放器 姓名:

班级:班 班内序号:27 一、设计任务要求 设计制作一个简易乐曲播放器。 1)播放器内预存3首乐曲; 2)播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式; 3)顺序播放:按内部给定的顺序依次播放3首乐曲; 4)随机播放:随机产生一个顺序播放3首乐曲; 5)用数码管显示当前播放乐曲的顺序号; 6)设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放; 7)设置Next和Previous键,按Next键可以听下一首,按Previous键回到本首开始; 8)选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲; 9)选做:自拟其它功能。

二、系统设计 1)设计思路 首先音乐有音高和节拍两个因素。音高可以通过对时钟信号不同的分频得到不同频率的信号进而发出不同的音,节拍可以定义一个音符计数器,计数器的每一个值对应一个音高。对播放的控制包括播放/暂停、复位、上一首、下一首、本首重放、顺序播放/随机播放,用一个状态机,共播放和暂停两个状态,另外歌曲的切换以及暂停都是利用音符计数器赋不同的值或保持不变来实现。音高的显示是通过不同的音符对应不同的点阵row和col的值来实现的。歌曲号是通过音符计数器的值来得出并送到数码管显示的。播放、暂停、顺序、随机这些的显示是通过对状态和模式变量的判别进而送到LED显示的。 2)总体框图 50M

3)分块设计 共分为9个模块。Div1,div2,div3都是用来分频的,分别是将50mhz变为1mhz,将1mhz变为4hz,将1mhz变为2hz。Rand模块用来产生随机数,用于随机播放模式。Keycontrol是核心模块,用来实现顺序播放、随机播放、播放/暂停、上一首、下一首、本首重放、复位、显示顺序或随机播放状态、显示播放/暂停态。Melody模块是将音符计数器的每一个值与一个音高相对应,即记录曲谱。Index模块是用melody模块传来的音高信号通过查表得到它所对应的音高的分频数,然后将这个分频数送给speaker模块,以发出不同的音,另外对应不同的音它还对点阵进行不同的输出,进而显示出音高。Speaker模块接收index模块送来的分频数,利用分频数对时钟信号进行分频,进而发出不同的音,另外它还接收keycontrol模块送来的暂停态的标志,以保证在暂停态的时候不发出声音。Shownumber模块通过对音符计数器值的判断确定现在播放的是哪首歌,进而输出不同的歌曲号。

相关主题
相关文档 最新文档