2013电子毕业实习音乐播放器

合集下载

数电实验报告-音乐播放器

数电实验报告-音乐播放器

实验课题:简易乐曲播放器学院:班级:姓名:学号:班内序号:一、设计课题要求 (2)二、设计思路和总体框图 (2)三、分块电路设计 (4)四、仿真波形 (6)五、源程序 (7)六、功能说明 (20)七、所用元器件情况 (20)八、故障及问题分析 (21)九、总结和结论 (22)十、参考文献 (22)一设计课题的任务要求设计制作一个简易乐曲播放器:1. 播放器内预存3 首乐曲;2. 播放模式:顺序播放、随机播放,并用数码管或LED 显示当前播放模式;顺序播放:按内部给定的顺序依次播放3 首乐曲;随机播放:随机产生一个顺序播放3 首乐曲;3. 用数码管显示当前播放乐曲的顺序号;4. 设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;5. 设置Next 和Previous 键,按Next 键可以听下一首,按Previous 键回到本首开始;6. 选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;7. 选做:自拟其它功能。

二设计思路和总体框图设计思路:组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素。

乐曲的12平均律规定:每2个八度音之间的频率相差1倍。

在2个八度音之间,又可分为12个半音,每两个半音的频率比为2开12次方。

另外,音符A (简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1至高音1之间每个音符的频率,如下表所示。

产生各音符所需的频率可用分频器实现。

本次实验使用的是MAXⅡ实验板,时钟频率为50MHz,计算出各个音符对应的分频系数,进行50%占空比的分频,即可得到各音符对应的频率。

对于节拍,如果将一拍的长度定为1秒,则1/4拍的时间为1/4秒,为其提供一个4Hz的时钟频率即可产生出1/4拍的效果了。

若需要半拍,只需将该音符记录两次就可以了。

产生节拍时钟也用分频器实现,本次实验中时钟频率为5Hz。

音乐播放器实验报告

音乐播放器实验报告

一定的物理实件(扬声器),就产生了一定频率的声音。若改变输出 方波的频率,产生的声音随之改变。通过控制输出方波的时间长短, 声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样 的节拍,单片机就可以产生电子音乐。音乐的播放模式及选择可以 通过按键的输入得以实现。在本次设计中将蜂鸣器连接到 AT89C52 的 P3^7 接口处。
③时钟振荡电路 AT89C51 中有一个用于构成内部振荡器的高增益反向放大器,引 脚 XTAL1 和 XTAL2 分别是该放大器的输入和输出端。
④蜂鸣器播放 声音是通过振动产生的。单片机对某一引脚以一定的频率循环
置 1 置 0,该引脚便产生一定频率的方波,方波通过放大,作用于
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

(完整版)c#音乐播放器毕业课程设计

(完整版)c#音乐播放器毕业课程设计

软件实训(可视化程序设计)课程设计(学年论文)说明书课题名称:音乐播放器学生学号:专业班级:2011级电信02 班学生姓名:李慕学生成绩:指导教师:沈斌课题工作时间:2014.12.22 至2013.12.28武汉工程大学教务处制填写说明:1. 一、二、三项由指导教师在课程设计(学年论文)开始前填写并交由学生保管;2. 四、五两项由学生在完成课程设计后填写,并将此表与课程设计一同装订成册交给指导教师;3. 成绩评定由指导教师按评定标准评分。

4. 此表格填写好后与正文一同装订成册。

一、课程设计的任务或学年论文的基本要求:本课程是一门理论与实践结合性很强的课程。

在本课程的学习和实践过程中,学生以解决实际问题的实例为主线,展开各个环节。

本课程将使学生在一定的时间内,尝试软件开发的过程,培养和提高学生的逻辑思维、抽象思维和统筹规划能力,为今后从事电信专业背景的软件开发工作打下基础。

本实训课程的主要任务如下:1、在实践过程中,使学生进一步巩固《可视化程序设计》课程所学知识,更加深入地了解可视化程序设计(C#)的主要技术特点以及Visual studio的强大功能;2、指导学生利用获取信息的手段进一步获取新知识,以解决实训过程中遇到的技术难点,从中提高自学能力;3、按照软件开发的基本要求引导学生完成实训课题,以便学生了解软件开发的几个重要环节;4、提高学生的编程技术,使程序的编写更趋于专业化,为从业打下良好的基础;5、培养学生分工协作的团队精神。

实训题目可以是学生自选题目或教师指定题目。

学生自选题目必须写出开题报告,经教师审核通过后方可作为正式选题。

每个题目必须由两个学生一组共同完成,每组组员之间必须要有明确的分工,并独立完成各自的设计任务,最后组内联调、共同整理项目文档。

实训内容涉及:算法、可视化界面及数据库管理等方面,具体内容如下:1.需求分析说明项目(课题)的设计目标、功能和性能需求2. 开发工具和开发环境简单介绍应用与此项目开发的开发工具和环境,说明选择此开发工具和环境的原因3. 总体设计说明系统总体结构和功能模块划分,系统流程图等、画出相应的框图。

电子音乐播放器的制作报告1

电子音乐播放器的制作报告1

电子音乐播放器(硬件部分)的制作报告上饶四中研究性学习高一课题组1 引言随着时代的进步和发展,MP3、MP4、MP5及手机广泛流行,其中都含有电子音乐播放器,我们很想了解播放器的工作奥秘,甚至亲手制作一部MP3。

本文就是介绍一种最简单的成本低廉的我们高中学生都能制作的电子音乐播放器的制作方法。

2 制作材料2.1制作工具:电烙铁1把、焊锡少许。

2.2制作元件:STC90c516rd+芯片(3.3元)、ULN2003芯片(0.45元)、电子蜂鸣器(0.18元)、晶掁管(0.24元)、万能电路板(1.9元)、电池盒(1.03元)、5号干电池4只(4元)、0.02单股铜丝线50CM(0.5元)、40pIC插座(0.25元)、8pIC插座(0.05元)、开关(0.1元)。

上述元件各1只。

3 主要元件介绍3.1 STC90c516rd+芯片:STC89/90CR+是其中的核心(含有CPU芯片、存储器芯片、I/O接口芯片等)引脚如下图:与本次制作相的引脚如下:○1电源和时钟引脚:Vcc、GND、XTAL1、XTAL2。

○2I/O口引脚:P0、P1、P2、P3,4组8位。

3.2 ULN2003芯片:是集成达林顿管,采用极电集开路输出,输出电流大,可用来驱动步进电机,直流电机,继电器,蜂鸣器。

引脚如下图:3.3蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、报警机、电话机等电子产品中,用做发声器件。

4 制作原理:乐曲中不同的音符,实质就是不同频率的声音。

通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

电路原理图:说明:○1根据乐曲内容,用C语言写出程序,录入STC90C51RD+芯片中,芯片产生相应的方波,通过P端口输出。

○2ULN2003将微弱的电流放大输出驱动蜂鸣器发声。

5 制作步骤○1将两个IC座安放在电路板的适当位置;一定要特别注意IC座上定位槽放置的方位第1脚只能位于IC座的右下角线或者左上角,而且紧靠定位槽(从焊接面看)。

电子音乐播放器的制作报告

电子音乐播放器的制作报告

电子音乐播放器的制作报告电子音乐播放器的制作报告电子音乐已经成为了现代社会生活的一部分,人们现在可以通过多种多样的方式来欣赏自己喜欢的音乐,其中最常见的方式便是使用音乐播放器。

作为一款电子产品,音乐播放器的设计与制作必须非常精细,才能满足人们对音乐播放的各种需求。

本文主要介绍了我们小组制作电子音乐播放器的过程和结果。

1.项目背景和目的本项目的背景是,我们小组需要借助这个项目的机会把课程中学到的知识用于实际项目中。

同时,我们希望能够设计一个高性价比的音乐播放器,满足人们对电子产品的需求。

2.需求分析在开始制作之前,我们进行了需求分析,确定了音乐播放器需要满足以下几个方面的要求:(1)数据存储方便:音乐播放器需要能够方便地存储音乐数据,不仅方便用户管理,同时也便于我们的设计。

(2)播放性能好:音乐播放器需要具备稳定的播放性能,播放出来的音质要好。

(3)体积小便携:在保证功能齐全的前提下,音乐播放器需要尽可能的小,便于携带。

(4)操作简单方便:对于一般用户来说,操作简单方便是我们设计音乐播放器的重要考虑。

3.设计在进行设计时,考虑到音乐播放器需要有大量的存储空间,我们使用了SD卡作为存储介质。

同时,我们采用红外遥控器来方便操作。

在音乐播放的技术实现上,我们使用一款STM32单片机来实现。

该单片机具备较强的处理能力,能够满足我们制作一个高级音乐播放器的需求。

4.关键技术4.1 存储方案通过研究市场上各类音乐播放器,我们发现SD卡存储方式是目前最为普遍的方案。

因此,我们设计的音乐播放器也采用了SD卡存储方案。

我们使用SDIO接口与单片机进行连接。

在操作上,我们使用FATFS文件系统来实现SD卡的读取与写入。

4.2 播放器实现在音乐处理方面,我们使用的是STM32内置DAC芯片,实现了音乐的数字信号转模拟信号。

同时,我们采用了WAV格式来作为音乐播放的主要格式。

在操作上,我们使用了I2S接口来与DAC芯片进行连接。

前端开发实训案例实现一个简单的音乐播放器

前端开发实训案例实现一个简单的音乐播放器

前端开发实训案例实现一个简单的音乐播放器在本案例中,我们将一步步实现一个简单的音乐播放器,通过前端开发实训的方式,让大家掌握基本的前端开发技能和工具的使用。

下面是实现过程的详细步骤。

一、准备工作在开始实现音乐播放器之前,我们需要准备一些必要的工作。

首先,我们需要一个 HTML 页面来显示播放器的界面,可以通过创建一个名为index.html的文件来实现。

然后,我们需要下载一个适合的音乐播放器的样式文件和脚本文件,可以在一些开源的网站上找到并下载。

二、项目结构在开始编写代码之前,我们需要创建一个合理的项目结构。

在该案例中,我们可以创建以下几个文件夹和文件:- css文件夹:用于存放样式文件- js文件夹:用于存放脚本文件- img文件夹:用于存放图片资源- index.html:HTML页面的入口文件三、实现播放器界面1. 引入样式文件在index.html文件的头部,使用<link>标签引入样式文件。

例如:```html<link rel="stylesheet" href="css/player.css">```2. 创建播放器容器在index.html文件的<body>标签内,创建一个用于显示音乐播放器的容器。

例如:```html<div class="player-container"><!-- 在这里添加其他播放器相关的元素 --></div>```3. 添加播放器控制按钮在播放器容器中,添加用于控制音乐播放的按钮。

例如,添加播放按钮、暂停按钮和上一首、下一首按钮:```html<div class="player-container"><button id="play-btn">播放</button><button id="pause-btn">暂停</button><button id="prev-btn">上一首</button><button id="next-btn">下一首</button></div>```4. 显示音乐信息在播放器容器中,添加显示音乐信息的元素。

电子音乐播放器课程设计

一.电子音乐播放器一、设计的任务和目的题目目的:学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

设计要求:利用8253作为音阶频率发生器,应先对一段音乐进行编码后存入音符表,并建立好音阶表(只建立一个8度即可,音阶表见附录),音符长度不能少于60个,连续播放3遍后停止。

二8253芯片介绍1 芯片介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。

8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号8253引脚图(6)方式5:硬件触发的选通信号8253引脚图如图所示,各引脚功能如下。

D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

2 控制字三.程序框图通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。

当与门打开后,经过放大器放大的作用,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序,之后再将扬声器(关闭与门)即可。

《音乐播放器》课件

远程控制
为了方便用户的使用,音乐播放器还支持远程控制功能,用户可以 通过手机、平板等设备随时随地控制音乐播放器的播放。
05
音乐播放器的市场与竞争
音乐播放器市场的现状与趋势
总结词
概述音乐播放器市场的当前规模、增长速度和主要特点。
详细描述
全球音乐播放器市场呈现出稳步增长的趋势,随着智能手机的普及和在线音乐平 台的兴起,越来越多的用户选择使用音乐播放器来聆听音乐。市场上的主流产品 包括智能音箱、耳机、便携式播放器等,其中智能音箱市场占比最大。
详细描述
音乐播放器是一种电子设备,可以通过音频输出接口将音乐信号传输到扬声器或其他音 频设备上,从而播放音乐。除了基本的播放功能,现代音乐播放器还具备多种其他功能 ,如暂停、音量调节、歌曲选择、播放列表管理、音频均衡器调节等。这些功能使得音
乐播放器成为人们日常生活中不可或缺的娱乐工具。
音乐播放器的历史与发展
和在线音乐服务,适合家庭和办公场景。
02
音乐播放器的使用与操作
音乐播放器的界面与布局
01
02
03
界面元素
介绍音乐播放器的界面布 局,包括播放控制按钮、 音量调节滑块、进度条等 。
界面风格
说明音乐播放器的界面风 格,如简洁、复古、现代 等,以及如何根据用户喜 好进行选择。
界面适应性
分析音乐播放器在不同操 作系统、设备屏幕大小和 分辨率上的适应性,以确 保良好的用户体验。
音乐播放器的未来展望
音乐播放器技术的发展趋势
人工智能与音乐播放器的结合

01
利用AI技术,实现音乐推荐、智能编辑和个性化定制等功能,
提升用户体验。
虚拟现实与音乐播放器的融合
02

智能音乐播放器的设计与实现(毕业设计)

word文档 可自由复制编辑 第1章 绪论 1.1 MP3播放器的发展沿革 MP3播放器的设计是一门集计算机技术、通信技术和数字多媒体技术于一体的综合设计。媒体在中国的宽带建设中被列为最主要的应用之一,越来越多的提供网络在线服务的运营商开始采用网络视频媒体服务解决方案,以增强在网络服务上的优势。媒体将成为未来互联网应用的主流,并将推动互联网整体架构的革新。 近年来,媒体技术在世界范围内己有应用,特别是1995年推出第一个Internet媒体播放器以来,Internet媒体应用有了爆炸性增长。互联网的发展更是决定了媒体市场的广阔前景。商业网站利用媒体上新闻、音乐直播和点播,企业和机构采用点播和媒体进行员工培训、信息发布、公司介绍等,可提高效率,节约开支。随着计算机技术、网络技术、数字多媒体技术等高科技技术的发展,媒体播放器技术也得到了迅速发展。媒体播放器的发展大致可分为两个阶段:基于PC的媒体播放器阶段和嵌入式媒体播放器阶段。 目前基于PC的MP3播放技术市场上主流的媒体技术有三种,分别是RealNetworks公司的RealMedia, Microsoft的Windows Media和Apple公司的Quicklime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议这三个关键要素在里面。 Apple公司的Quicklime是一个非常老牌的媒体技术集成,是数字媒体领域事实上的工业标准。之所以说集成这个词是因为Quicklime实际上是一个开放式的架构,包含了各种样的流式或者非流式的媒体技术。目前的最新版本支持MP4文件格式的播放。 RealNetworks公司在20世纪90年代中期首先推出了媒体技术,并随着互联网的急速发展而壮大了自身,在市场上处于主动地位,并拥有最多的用户数量。RealMedia通过基于SMIL并结合自己的RealPix和RealText技术来达到一定的交互能力和媒体控制能力,不过相比Quicklime来说还有一段距离。 Microsoft是三家之中最后进入这个市场的,但利用其操作系统的便利很快便取得了一定的市场份额。Windows Media的关键核心是MMS协议和ASF数据格式,MMS用于网络传输控制,ASF则用于媒体内容和编码方案的打包。 其实从一般的角度来看,这三种技术之间的差异并不大。总的来说,如果使用Windows服务器平台,Windows Media的费用最少。Quicklime在性能价格比上具有优势,而RealMedia则在用户数量上有优势。 目前虽然基于PC的媒体播放系统仍然占据多媒体应用的主要市场,但是它具有一个致命缺点就是,使用基于PC平台的媒体播放器的用户必须熟练掌握PC技术,并且其应用无法离开多媒体PC。 近两年随着媒体技术应用到各个领域,特别是计算机、通信、消费电子产品领域(3C产 word文档 可自由复制编辑

电子创意制作实习报告

一、实习背景随着科技的飞速发展,电子产品的应用越来越广泛。

为了更好地了解电子产品的制作过程,提高自己的动手能力和创新能力,我参加了本次电子创意制作实习。

二、实习目的1. 熟悉电子元器件的识别与使用方法;2. 掌握电子产品的制作工艺和调试方法;3. 培养创新思维和团队协作能力;4. 提高实际操作能力,为今后的工作打下基础。

三、实习内容1. 实习前期在实习前期,我们学习了电子元器件的基本知识,包括电阻、电容、二极管、三极管等。

同时,了解了各种电子元器件的符号、规格和性能。

2. 制作过程(1)电路设计:根据实习要求,我们设计了一款简易电子音乐播放器。

在设计过程中,我们学会了如何根据电路原理图选择合适的元器件,并绘制出详细的电路图。

(2)元器件焊接:在指导老师的指导下,我们学习了手工焊接的基本技巧,包括焊接前准备、焊接过程中的注意事项等。

在焊接过程中,我们按照电路图将元器件焊接在电路板上。

(3)调试与测试:焊接完成后,我们对电子音乐播放器进行了调试和测试。

通过使用示波器、万用表等工具,我们检查了电路的连接是否正确,并对音乐播放器进行了性能测试。

3. 实习总结(1)提高了动手能力:通过本次实习,我们掌握了电子元器件的识别与使用方法,学会了手工焊接和调试电子产品的技能。

(2)培养了创新思维:在设计电子音乐播放器的过程中,我们充分发挥了创新思维,提出了许多改进方案。

(3)增强了团队协作能力:在实习过程中,我们分组进行制作,相互协作,共同解决问题,增强了团队协作能力。

四、实习体会通过本次电子创意制作实习,我深刻认识到理论知识与实际操作相结合的重要性。

在今后的学习和工作中,我将不断努力,提高自己的综合素质,为我国电子产业的发展贡献自己的力量。

同时,我也明白了团队合作的重要性,只有团结一致,才能取得更好的成果。

总之,本次电子创意制作实习让我受益匪浅,不仅提高了我的专业技能,还培养了我的创新思维和团队协作能力。

在今后的学习和工作中,我将继续努力,为实现自己的职业目标而努力奋斗。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业实习报告 题目: 基于verilog实现的简易音乐播放器

学 院电子与信息工程学院 专 业 电子信息工程 班级学号 093班0910910311 姓 名 宋俊阳 指导教师 白 华 完成时间 2013.1.9 成 绩 2013年 3 月 6日 一、实习的目的、意义 1.设计一个简单的3按键的可编程音乐播放器,要求该播放器能够完成对编程运行实现播放,暂停,停止,选曲几项基本播放器常规功能。 2.利用verilog编程语言编写合适的能实现1中要求的基本具体功能的语言程序。 3.实验的目的在于让我们的认识verilog语言的特点并能够运用其完成简单的播放器功能,

让编程语言跟计算机及相关下载硬件融合完成既定任务。 4.意义是让我们在音乐播放器的相关软件设计以及最后的调试过程中体验计算机控制的神

奇魔力,还有实习成功的收获跟喜悦 二、实习的内容、安排 设计制作一个简易乐曲播放器 1.播放器内预存1首乐曲编写程序; 2.设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放; 3.设置停止键,乐曲播放过程中按该键则停止播放,再按开始键则从头开始播放; 4.播放器内预存2首乐曲; 5.设置按键选择所要播放的曲目并用数码管显示当前播放乐曲的顺序号; 6.选做:自拟其它功能。 三、实习的具体实现 1.查阅资料熟悉verilog语言并了解实验目的编写如下程序: module song(clk,beep,pause,stop,switch,seg); //定义时钟及几个功能变量 input clk,pause,switch,stop; //输入变量 output beep; //输出变量,即蜂鸣器发声 output[7:0]seg; reg[7:0] seg_r; reg beep_r; //定义几个中间变量 reg a; reg b; reg c; reg[7:0]state; reg[7:0]state1; reg[7:0]state2; reg[15:0]count,count_end; reg[23:0]count1; parameter L_5=16'd61224, L_6=16'd54545, M_1=16'd45863, M_2=16'd40864, M_3=16'd36402, M_5=16'd30612, M_6=16'd27273, H_1=16'd22956; parameter TIME = 12000000; //时钟频率 assign beep=beep_r; assign seg=seg_r;

always@(posedge pause) begin a=!a; end always@(posedge stop) begin b=!b; end always@(posedge switch) begin c=!c; end always@(posedge clk) begin

if(a==1||b==1) beep_r=1'b0; else count<=count+1'b1; if(count==count_end) begin count<=16'h0; beep_r<=!beep_r; end end

always@(posedge clk) begin if(count1 < TIME ) count1=count1+1'b1; else begin count1=24'd0; if(state1==8'd147||state2==8'd147) state=8'd0;

if(a==1&b==0) begin state=state; end if(a==0&b==0)

state=state+1'b1; if(a==0&b==1) begin state=8'd0;

end if(a==1&b==1)

state=state+1'b1; if(c==1) //曲目1 begin seg_r=8'hf9; state2=state; case(state2) 8'd0,8'd1: count_end=L_5; 8'd2,8'd3,8'd4,8'd5,8'd6,8'd7,8'd8: count_end=M_1; 8'd9,8'd10: count_end=M_3; 8'd11,8'd12,8'd13,8'd14: count_end=M_2; 8'd15: count_end=M_1; 8'd16,8'd17: count_end=M_2; 8'd18,8'd19: count_end=M_3; 8'd20,8'd21,8'd22,8'd23,8'd24: count_end=M_1; 8'd25,8'd26: count_end=M_3; 8'd27,8'd28: count_end=M_5; 8'd29,8'd30,8'd31,8'd32,8'd33: count_end=M_6; 8'd34,8'd35,8'd36,8'd37,8'd38: count_end=M_6; 8'd39,8'd40,8'd41,8'd42: count_end=M_5; 8'd43,8'd44,8'd45: count_end=M_3; 8'd46,8'd47: count_end=M_1; 8'd48,8'd49,8'd50,8'd51: count_end=M_2; 8'd52: count_end=M_1; 8'd53,8'd54: count_end=M_2; 8'd55,8'd56: count_end=M_3; 8'd57,8'd58,8'd59,8'd60: count_end=M_1; 8'd61,8'd62,8'd63: count_end=L_6; 8'd64,8'd65: count_end=M_5; 8'd66,8'd67,8'd68,8'd69: count_end=M_1; 8'd70,8'd71,8'd72,8'd73: count_end=M_1; 8'd74,8'd75: count_end=M_6; 8'd76,8'd77,8'd78,8'd79: count_end=M_5; 8'd80,8'd81,8'd82: count_end=M_3; 8'd83,8'd84: count_end=M_1; 8'd85,8'd86,8'd87,8'd88: count_end=M_2; 8'd89: count_end=M_1; 8'd90,8'd91: count_end=M_2; 8'd92,8'd93: count_end=M_6; 8'd94,8'd95,8'd96,8'd97: count_end=M_5; 8'd98,8'd99,8'd100: count_end=M_3; 8'd101,8'd102: count_end=M_5; 8'd103,8'd104,8'd105,8'd106: count_end=M_6; 8'd107,8'd108,8'd109,8'd110: count_end=M_6; 8'd111,8'd112: count_end=H_1; 8'd113,8'd114,8'd115,8'd116: count_end=M_5; 8'd117,8'd118,8'd119: count_end=M_3; 8'd120,8'd121: count_end=M_1; 8'd122,8'd123,8'd124,8'd125: count_end=M_2; 8'd126: count_end=M_1; 8'd127,8'd128: count_end=M_2; 8'd129,8'd130: count_end=M_3; 8'd131,8'd132,8'd133,8'd134: count_end=M_1; 8'd135,8'd136,8'd137: count_end=L_6; 8'd138,8'd139: count_end=M_5; 8'd140,8'd141,8'd142,8'd143: count_end=M_1; 8'd144,8'd145,8'd146,8'd147: count_end=M_1; default:count_end=16'hffff; endcase end if(c==0) //曲目2 begin seg_r=8'hc0; state=state; case(state1) 8'd0,8'd1: count_end=L_5; 8'd2,8'd3,8'd4,8'd5,8'd6,8'd7,8'd8: count_end=M_2; 8'd9,8'd10: count_end=M_1; 8'd11,8'd12,8'd13,8'd14: count_end=M_3; 8'd15: count_end=M_2; 8'd16,8'd17: count_end=M_2; 8'd18,8'd19: count_end=M_2; 8'd20,8'd21,8'd22,8'd23,8'd24: count_end=M_1; 8'd25,8'd26: count_end=M_5; 8'd27,8'd28: count_end=M_5; 8'd29,8'd30,8'd31,8'd32,8'd33: count_end=M_6; 8'd34,8'd35,8'd36,8'd37,8'd38: count_end=M_6; 8'd39,8'd40,8'd41,8'd42: count_end=M_5; 8'd43,8'd44,8'd45: count_end=M_2; 8'd46,8'd47: count_end=M_1; 8'd48,8'd49,8'd50,8'd51: count_end=M_3; 8'd52: count_end=M_2; 8'd53,8'd54: count_end=M_1; 8'd55,8'd56: count_end=M_2; 8'd57,8'd58,8'd59,8'd60: count_end=M_2; 8'd61,8'd62,8'd63: count_end=L_5; 8'd64,8'd65: count_end=M_6; 8'd66,8'd67,8'd68,8'd69: count_end=M_5; 8'd70,8'd71,8'd72,8'd73: count_end=M_5; 8'd74,8'd75: count_end=M_6; 8'd76,8'd77,8'd78,8'd79: count_end=M_3; 8'd80,8'd81,8'd82: count_end=M_2; 8'd83,8'd84: count_end=M_3; 8'd85,8'd86,8'd87,8'd88: count_end=M_1; 8'd89: count_end=M_2; 8'd90,8'd91: count_end=M_3; 8'd92,8'd93: count_end=M_2; 8'd94,8'd95,8'd96,8'd97: count_end=M_3; 8'd98,8'd99,8'd100: count_end=M_3; 8'd101,8'd102: count_end=M_5; 8'd103,8'd104,8'd105,8'd106: count_end=M_6; 8'd107,8'd108,8'd109,8'd110: count_end=M_6; 8'd111,8'd112: count_end=H_1; 8'd113,8'd114,8'd115,8'd116: count_end=M_5; 8'd117,8'd118,8'd119: count_end=M_3; 8'd120,8'd121: count_end=M_1; 8'd122,8'd123,8'd124,8'd125: count_end=M_2; 8'd126: count_end=M_1; 8'd127,8'd128: count_end=M_3; 8'd129,8'd130: count_end=M_1; 8'd131,8'd132,8'd133,8'd134: count_end=M_2;

相关文档
最新文档