音乐播放器设计报告
- 格式:doc
- 大小:155.50 KB
- 文档页数:25
课程设计报告之水城攒孽创作课程设计名称:音乐播放器院系:信息工程学院学生姓名:班级:学号:成绩:指导教师:开课时间:2016-2017学年 2 学期音乐播放器一、实践的内容和要求学习WAV格式音频播放原理、数字音频接口及的相关知识。
了解模拟音频信号和数字音频信号的概念。
掌握编写音频播主要内容放器的方法。
实现音频播放,小键盘输入操纵。
本系统要做一个音乐播放器,使用通用定时器定时,用比较输出功能,输出乐谱频率的方波发生声音,对 3 首歌曲编码,其支持 WAV 格式音频播放(上键:暂停;左键:上一首;右键:下一首)。
利用硬件ARM 嵌入式开发平台、用于ARM7TDMI 的 JTAG 仿真器、PC 机 Pentium100开发实现实现音频播放。
主要实现:上一首按键:当点击上一首按键时,当前播放歌曲的上一首歌首被播放。
下一首按键:当点击下一首按键时,当前播放歌曲的下一首歌曲即被播放。
当点击停止键时,当前歌曲即会被停止。
播放界面设计:在歌曲进行播放时,界面应包含所有的按键,而且要歌曲的曲目单。
二、实践原理WAV播放器系统要求能够对mp3、wav格式的音频文件进行解码,处理起来速度是有要求的,尤其是对320Kbps的MP3格式数据流的处理,必须非常快,才干实现MP3的流畅播放,可供选择的八位机有AVR、PIC,可供选择的32位处理器有SAMSUNG、STM32、ATMEL等。
选择MCU优先考虑于拥有丰富的RAM,八位机RAM主要靠扩展,内部RAM一般在4Kbyte以内,32位机里面,SAMSUNG一般不内带RAM,也要外扩。
本实验使用了ARM7处理器,MP3解码可以有两种方法,一是通过ARM处理器软解码,通过对MP3数据格式的解析实现MP3播放,二是通过外部解码芯片直接解码。
第一种方法在解码高码率的MP3时,ARM7处理能力吃紧,而且STM32还需要外部DAC来做音频输出,所以采取第二种方法进行解码。
MP3罕见的解码芯片有VS100X系列和STA01系列,STA01需要外接DAC做音频输出,而VS1003自带DAC,且解码的文件格式包含mp3和wav,另外它还可以实现录音功能,方便以后进行功能的拓展应用。
信息与电气工程学院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控制口地址P0 EQU 00F8H ;8253A的计数器0口地址P1 EQU 00FAH ;8253A的计数器1口地址3.1音乐发声频率装入乐曲是按照一定的高低、长短和强弱关系组成的音调,在每一首乐曲中,每个音符的音高和音长与发声系统中的频率、节拍有关。
音乐播放器设计报告一.需求分析本周的实践任务是设计一个播放器,要求实现添加本地歌曲文件,播放,暂停,播放上一曲,下一曲,删除歌曲,用户注册和用户登录,保存登录用户的播放列表的功能。
二.功能简介1.主窗口(1)添加到播放列表:在列表区域单击右键中的“添加到播放列表”,弹出打开本地文件的窗口,可一次添加一首或多首歌曲到播放列表中。
(2)播放:选择歌曲,在右键菜单中播放歌曲,即可播放选中的歌曲;双击选中的歌曲也可以实现播放功能;直接点击播放器中的“◢”也可播放选中的歌曲。
(3)删除:选择要删除的歌曲,单击“删除”,即可从列表中删除此歌曲。
(4)单曲循环:选中歌曲,右键,选中“单曲循环”,即可重复播放选中的歌曲。
(5)退出:单击“退出”即可退出本系统。
(6)上一曲:单击“上一曲”即可播放选中歌曲的上一曲。
(7)下一曲:单击“下一曲”即可播放选中歌曲的下一首。
(8)保存:已经登录了的用户可单击“保存”,将当前的播放列表保存起来。
(9)登录:右键,单击登录,系统打开登录窗口。
(10)当前登录的用户:显示当前登录的用户的账号。
2.登录窗口(1)请输入账号:用户输入账号。
(2)请输入密码:用户输入密码,显示为保密内容。
(3)登录:当用户账号和密码正确时,即可登录,否则提示用户核对信息。
(4)取消:取消当前的输入。
(5)注册:系统打开注册窗口。
3.注册窗口(1)设置用户账号:用户自行设置账号,不能和其他用户使用相同的账号,出现重复时,系统给出提示信息。
(2)设置用户密码:用户自行设置密码,显示为保密内容。
(3)确认密码:用户在次输入密码,必须和初始设置的密码相同,否则,系统给出警示信息。
(4)确定:当用户账号不重复且两次输入的密码相同时,即可注册该用户。
(5)重置:取消当前的输入。
三.详细设计1.各模块功能的实现1.1主窗口(1)添加到播放列表的实现,使用openFileDialog控件,即可打开选择本地文件的窗口,将该控件的属性中的multiselect 改为true,即可实现一次添加多首歌曲的功能。
音乐播放器的实验报告音乐播放器的实验报告引言:音乐是人们生活中不可或缺的一部分,而音乐播放器作为传播音乐的工具,在现代社会中扮演着重要的角色。
本次实验的目的是研究音乐播放器的功能和性能,以及对音乐播放器的使用体验进行评估。
一、功能分析音乐播放器的功能主要包括音频播放、音频格式支持、播放列表管理、音量控制、音效调节等。
通过实验测试,我们发现该音乐播放器在这些方面表现出色。
首先,它支持多种音频格式,包括MP3、WAV、FLAC等,能够满足用户对不同音频格式的需求。
其次,播放器具备良好的播放列表管理功能,用户可以根据自己的喜好创建、编辑和删除播放列表,方便快捷地管理自己的音乐。
此外,音乐播放器还提供了音量控制和音效调节功能,用户可以根据自己的需求来调整音量大小和音频效果,提升音乐的听感。
二、性能测试为了评估音乐播放器的性能,我们进行了多项测试。
首先是音频播放质量测试,我们选择了不同类型的音频文件进行播放,并对比了不同音频播放器的音质表现。
结果显示,该音乐播放器在音频播放质量方面表现出众,音质清晰、细腻,能够还原音频本身的特点。
其次是播放稳定性测试,我们将大量音频文件添加到播放列表中,并进行循环播放测试。
结果显示,音乐播放器在长时间播放过程中没有出现卡顿、崩溃等问题,表现稳定可靠。
最后是资源占用测试,我们对音乐播放器的内存占用和CPU占用进行了测试。
结果显示,该音乐播放器在资源占用方面表现较好,占用资源较少,对设备性能的影响较小。
三、用户体验评估除了功能和性能,用户体验也是评价音乐播放器的重要指标之一。
为了评估用户体验,我们进行了用户调研和使用测试。
调研结果显示,用户对该音乐播放器的界面设计和操作方式较为满意,认为界面简洁、直观,操作便捷。
在使用测试中,用户对音乐播放器的播放速度、响应速度和界面切换速度进行了评估,结果显示,音乐播放器在这些方面表现良好,能够满足用户对流畅使用的需求。
此外,用户还对音乐播放器的搜索功能、歌词显示和背景音乐设置等进行了评价,认为这些功能丰富了用户体验,提升了音乐播放的乐趣。
课程设计报告课程名称PLD原理与应用设计题目音乐播放器专业通信工程四位抢答器摘要随着我国经济和文化事业的发展,在这个竞争激烈的社会中,知识竞赛、评选优胜,选拔人才之类的活动愈加频繁。
在很多竞争场要求有快速公正的竞争裁决,例如:证劵、股票交易及各种智力竞赛等。
在现代社会生活中,智力竞赛更是作为一种生动活泼的教育形式和方法能够引起观众极大的兴趣。
但是、在竞赛中往往是多个选手一起,分为几个小组参加比赛,针对主持人提出的问题各竞赛小组进行抢答,而抢答环节就要有一种逻辑电路抢答器作为裁判员功能、实现其比赛公平、公正的规则。
智能抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它都能客观、迅速地判别出最先获得发言权的选手。
新增了许多功能,如选手号码显示,抢按后的计时,选手得分显示等功能。
随着科技的发展,现在的抢答器向着数字化、智能化的方向发展.本设计借助于QuartusⅡ软件仿真制作了四人抢答器。
通过选手按动按键的先后,判定由哪位选手回答问题,并且实现倒计时和对选手加分的功能。
本设计分为三个模块:控制模块、计时模块、计分模块,各个模块共同作用,以实现整个设计的总体功能。
关键词:QuartusⅡ,仿真,抢答器,控制模块,计时模块,计分模块Four-way responderABSTRACTWith the development of China's economic and cultural undertakings, in this competitive society, knowledge contests, selection of superior, talents such as activities more and more frequent. In many competitive games require fast fair competition award. In the modern society life, quiz is as a kind of lively education form and the method can cause the audience interest. But, in the competition is often several players together, divided into several groups to participate in the game, against the host question carries on the competition team vies to answer first, vies to answer first link will have a logic circuit buzzer as referee function, achieve the game rules of fairness and justice.Smart responder is a kind of equipment, they are widely used in various competitions, vies to answer first, it can be objective, quickly won the voice discriminant out first. Added many features, such as the contestant number display, rob after pressing time, players score shows, and other functions. With the development of science and technology, now the responder toward digital, intelligent direction.This design with the aid of Quartus Ⅱsoftware simulation produced four responder. Through the player has to press a button, decide which players to answer the question, and can realize the function of the countdown and the player points. This design is divided into three modules: control module, timing module, scoring module, each module combination, to achieve the over all function of the whole design.KEY WORDS: QuartusⅡ,Simulation ,Answer four device,Control,Timing,Scoring目录前言 (1)第1章绪论 (2)1.1 抢答器系统图 (2)1.2 抢答器设计要求 (2)1.3 基本功能 (3)第2章模块设计 (4)2.1 主控制模块 (4)2.1.1 主要功能 (4)2.1.2 代码编写 (4)2.1.3 仿真波形及其分析 (6)2.2计时模块 (7)2.2.1 主要功能 (7)2.2.2 代码编写 (7)2.2.3 仿真波形及其分析 (8)2.3 计分模块 (9)2.3.1 主要功能 (9)2.3.2 代码编写 (9)2.3.3 仿真波形及其分析 (12)第3章顶层电路 (13)3.1 电路图 (13)3.2 抢答器工作原理 (14)3.2.1 各个端口的含义 (14)3.2.2 操作流程及相应波形图 (14)结论 (16)谢辞 (17)参考文献 (18)前言关于这次设计的用于多人竞赛抢答的器件,在现实生活中很常见,尤其是在随着各种智益电视节目的不断发展,越来越多的竞赛抢答器被用在了其中,这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张、活跃气氛,让观众看得更有情趣。
目录一、课题的介绍和课题的任务二、设计的要求三、系统的分析和系统中功能的设计四、系统的实现及调试五、系统的使用说明六、总结七、程序主要源代码一、课题的介绍和课题的任务音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。
它涵盖了各种音乐格式的播放工具,比如:MP3播放器,WMA播放器,MP4播放器等。
它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。
利用MFC应用程序、媒体控制接口MIC的基本知识,设计一个MP3播放器。
要求能够播放常用Windows 音频格式的文件;实现播放控制:播放、暂停、清空播放列表、音量增减、添加歌曲等功能;实现从本地磁盘加入文件,然后对其进行播放。
二、设计的要求系统模块功能图:流程图:二、系统的分析和系统中功能的设计该播放器分为六大功能模块;1、背景图片:音乐播放器的背景图片。
2序中,将文件进行播放。
3、播放/暂停功能:本地磁盘音乐文件添加完毕,单击播放按钮开始播放音乐,直至播放完毕,单击按钮便可以暂停音乐的播放,再次单击按钮时继续播放。
4、播放列表功能:显示添加的歌曲5、清空播放列表功能:清除播放列表中的全部歌曲。
6、音量功能:控制音量的大小四、系统的实现及调试//说明:主要介绍系统编码的实现以及编码中遇到的问题和解决方法。
界面用动态链接库来实现,播放功能用mciSendCommand函数来实现,用外壳函数数来打开文件选项。
定义三3个类两个对话框类CInfoDlg和CEasyPlayerDlg 一个常用类MCI MCI类用来控制播放功能有以下函数Pause:暂态正在播放的音乐Play:播放Stop:停止播放Load:加载播放的音乐GetMediaString:获取播放的时间进度…CInfoDlg:用于查询歌曲的详细信息CEasyPlayerDlg:用于和用户进行交互他有以下函数:CEasyPlayerDlg::OnBtnPlay();单击播放按钮的单击事件。
电子音乐播放器的制作报告电子音乐播放器的制作报告电子音乐已经成为了现代社会生活的一部分,人们现在可以通过多种多样的方式来欣赏自己喜欢的音乐,其中最常见的方式便是使用音乐播放器。
作为一款电子产品,音乐播放器的设计与制作必须非常精细,才能满足人们对音乐播放的各种需求。
本文主要介绍了我们小组制作电子音乐播放器的过程和结果。
1.项目背景和目的本项目的背景是,我们小组需要借助这个项目的机会把课程中学到的知识用于实际项目中。
同时,我们希望能够设计一个高性价比的音乐播放器,满足人们对电子产品的需求。
2.需求分析在开始制作之前,我们进行了需求分析,确定了音乐播放器需要满足以下几个方面的要求:(1)数据存储方便:音乐播放器需要能够方便地存储音乐数据,不仅方便用户管理,同时也便于我们的设计。
(2)播放性能好:音乐播放器需要具备稳定的播放性能,播放出来的音质要好。
(3)体积小便携:在保证功能齐全的前提下,音乐播放器需要尽可能的小,便于携带。
(4)操作简单方便:对于一般用户来说,操作简单方便是我们设计音乐播放器的重要考虑。
3.设计在进行设计时,考虑到音乐播放器需要有大量的存储空间,我们使用了SD卡作为存储介质。
同时,我们采用红外遥控器来方便操作。
在音乐播放的技术实现上,我们使用一款STM32单片机来实现。
该单片机具备较强的处理能力,能够满足我们制作一个高级音乐播放器的需求。
4.关键技术4.1 存储方案通过研究市场上各类音乐播放器,我们发现SD卡存储方式是目前最为普遍的方案。
因此,我们设计的音乐播放器也采用了SD卡存储方案。
我们使用SDIO接口与单片机进行连接。
在操作上,我们使用FATFS文件系统来实现SD卡的读取与写入。
4.2 播放器实现在音乐处理方面,我们使用的是STM32内置DAC芯片,实现了音乐的数字信号转模拟信号。
同时,我们采用了WAV格式来作为音乐播放的主要格式。
在操作上,我们使用了I2S接口来与DAC芯片进行连接。
基于java的音乐播放器课程设计报告第一篇:基于java的音乐播放器课程设计报告Java课程设计报告题目:java音乐播放器姓名学号院系班级专业任课教师1.设计内容及要求能够实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加多首歌曲目录一个简单的基于java语言的音乐播放器,菜单栏:文件,播放控制和播放列表,文件菜单包含打开、循环和退出三个菜单项;播放控制菜单包含播放、暂停和停止三个菜单项,播放列表菜单则是当向里面添加歌曲之后才能够查看到里面所包含的歌曲目录。
当播放歌曲时,可以调节音量大小或者设置是否静音;可以查看当前播放音乐的相关属性,如:歌曲名,歌手,发布时间,所属专辑等等。
2.需求分析1、时间跟踪条:根据歌曲播放的进度,控制条自动进行追踪,用户可以随时了解歌曲的播放进度2、音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设置3、属性查询键:通过该控键,用户可以查看当前播放音乐的相属性,获取关于该歌曲的用户所需的相关信息。
4、菜单栏:①文件:打开:用户通过该菜单项打开本地音乐文件,听任何用户想听的歌曲循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲退出:退出音乐播放器,及退出该程序②播放控制:播放:选择歌曲之后,通过点击播放菜单项启动播放器播放音乐暂停:暂停当前正在播放的音乐停止:停止当前正在播放的音乐③播放列表:当用户通过文件打开本地音乐文件后,及相当于在播放列表里面添加了歌曲,及形成相应的歌曲播放目录3.总体设计结合需求分析来看,整个设计包含了简单的菜单栏,根据用户需求设置了三个简单的实现基本操作的菜单,分别是:文件,播放控制,播放列表;根据具体的操作每个菜单还包含了相应的菜单项,文件:打开,循环,退出;播放控制:播放,暂停,停止;播放列表则没有菜单项,该菜单就是用来显示或者查看相应的歌曲目录的。
该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音乐播放窗口里面用户可以进行相关的音乐播放的控制操作。
实验报告课程名称:数字系统设计实验指导老师:成绩:_____________实验名称:音乐播放器设计实验实验类型:设计型一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求实验目的:(1)掌握音符产生的方法,了解DDS技术的应用;(2)了解AC97音频接口电路的应用;(3)掌握系统“自顶而下”的设计方法。
实验要求:(1)可以播放四首乐曲,设置play、next、reset三个按键。
按play键播放当前乐曲,按键next播放下一首乐曲。
(2)LED0指示播放情况(播放时点亮),LED2和LED3指示当前乐曲序号。
2、个性化要求(1)用键盘上的三个按键P、N、Esc控制乐曲的播放。
(2)用SVGA显示乐曲的播放波形。
二、实验内容和原理本次实验共可分成mcu、song_reader、note_player、codec_conditioner和ac97_if五个子模块。
如下图:1、mcu模块接受按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song)。
2、song_reader模块根据mcu的要求,逐个取出音符{note,duration}送给note_player 模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。
3、note_player模块接收到需播放的音符,在音符的持续时间内,以48Hz速率送出该音符的正弦波样品给AC97音频接口模块。
当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。
4、codec_conditioner、ac97_if模块负责与AC97音频系统接口工作。
另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。
设计原理:1、主控制模块mcu的设计根据设计要求,模块mcu的工作流程图如下图所示。
音乐播放器的实验报告音乐播放器的实验报告引言:音乐是人们生活中不可或缺的一部分,而音乐播放器是我们享受音乐的重要工具。
本次实验旨在研究音乐播放器的功能和性能,以及对用户体验的影响。
一、音乐播放器的功能音乐播放器作为一种多媒体设备,具备多种功能,包括音乐播放、音量调节、音乐列表管理、音效设置等。
在本次实验中,我们主要关注以下几个功能。
1. 音乐播放:音乐播放器应能够播放多种格式的音乐文件,如mp3、wav等,并提供播放控制按钮,如播放、暂停、上一曲、下一曲等。
2. 音量调节:音乐播放器应具备音量调节功能,用户可以通过按钮或滑动条来调节音量大小,以满足个人需求。
3. 音乐列表管理:音乐播放器应能够管理音乐文件,包括添加、删除、排序等操作。
用户可以根据自己的喜好创建不同的音乐列表,并随时切换。
4. 音效设置:音乐播放器应提供音效设置选项,如均衡器、重低音增强等。
用户可以根据自己的喜好来调整音效,以获得更好的音乐体验。
二、音乐播放器的性能音乐播放器的性能对于用户体验至关重要。
在本次实验中,我们主要关注以下几个性能指标。
1. 音质:音乐播放器应能够提供高质量的音乐播放效果。
我们通过对比不同音乐播放器的音质差异,评估其音质性能。
2. 响应速度:音乐播放器的响应速度应尽可能快,以提供流畅的用户体验。
我们通过测试不同音乐播放器的响应速度,评估其性能表现。
3. 耗电量:音乐播放器应尽可能降低耗电量,以延长电池寿命。
我们通过测试不同音乐播放器的耗电量,评估其节能性能。
4. 兼容性:音乐播放器应具备良好的兼容性,能够播放各种格式的音乐文件,并适配不同操作系统和设备。
我们通过测试不同音乐播放器的兼容性,评估其性能表现。
三、音乐播放器对用户体验的影响音乐播放器的功能和性能直接影响用户体验。
在本次实验中,我们通过用户调查和实际体验,评估不同音乐播放器对用户体验的影响。
1. 用户调查:我们设计了问卷调查,收集用户对不同音乐播放器的评价和意见。
一、实验目的1. 熟悉音乐播放器的基本原理和设计方法。
2. 掌握音乐播放器软件的开发流程和关键技术。
3. 培养学生的动手实践能力和团队协作精神。
二、实验环境1. 操作系统:Windows 102. 开发工具:Java Development Kit (JDK) 1.83. 开发环境:Eclipse IDE for Java Developers4. 音乐格式:MP3、WAV等三、实验内容1. 音乐播放器功能需求分析2. 音乐播放器系统设计3. 音乐播放器软件实现4. 音乐播放器测试与优化四、实验步骤1. 功能需求分析音乐播放器应具备以下功能:(1)播放音乐:支持MP3、WAV等音乐格式;(2)播放列表:支持添加、删除、排序音乐列表;(3)音量控制:支持音量调节;(4)播放模式:支持顺序播放、随机播放、单曲循环;(5)播放进度:显示当前播放时间和总时长;(6)播放界面:简洁、美观、易用。
2. 系统设计(1)模块划分音乐播放器系统分为以下模块:①音乐播放模块:负责播放音乐、控制播放进度、音量等;②播放列表模块:负责管理音乐列表、添加、删除、排序音乐;③用户界面模块:负责显示播放界面、交互操作等。
(2)技术选型①音乐播放模块:采用Java Media Framework (JMF) 进行音乐播放;②播放列表模块:使用ArrayList存储音乐信息;③用户界面模块:采用Swing组件实现。
3. 软件实现(1)音乐播放模块①导入JMF库,创建播放器实例;②设置播放器播放源(音乐文件);③实现播放、暂停、停止、音量调节等功能;④实现播放进度显示。
(2)播放列表模块①创建播放列表类,继承ArrayList;②添加、删除、排序音乐列表;③实现音乐列表的遍历和查找。
(3)用户界面模块①设计播放界面布局,包括播放按钮、进度条、音量条等;②实现播放器与用户界面的交互操作;③实现播放器功能的调用。
4. 测试与优化(1)功能测试①测试播放音乐功能,确保支持多种音乐格式;②测试播放列表功能,确保添加、删除、排序操作正常;③测试播放模式功能,确保顺序播放、随机播放、单曲循环正常;④测试音量控制功能,确保音量调节正常;⑤测试播放进度显示功能,确保播放时间与总时长准确。
一、实验目的1. 了解音乐播放器的基本原理和组成。
2. 掌握音乐播放器的电路设计方法。
3. 熟悉音乐播放器中常用元器件的性能和应用。
4. 提高动手能力和实际操作技能。
二、实验原理音乐播放器是一种将数字音频信号转换为模拟音频信号,并通过扬声器播放出来的设备。
其基本原理如下:1. 数字音频信号:音乐播放器接收的数字音频信号通常为MP3、WMA等格式,这些格式经过压缩处理后存储在存储介质上。
2. 数字信号解码:音乐播放器内部有一个数字信号解码器,将数字音频信号解码成模拟音频信号。
3. 模拟信号放大:解码后的模拟音频信号需要经过放大器放大,以便驱动扬声器发声。
4. 扬声器发声:放大后的模拟音频信号通过扬声器发声,实现音乐播放。
三、实验内容1. 音乐播放器电路设计2. 元器件选型与测试3. 音乐播放器组装与调试四、实验步骤1. 音乐播放器电路设计(1)确定音乐播放器功能:根据需求确定音乐播放器功能,如播放、暂停、切换曲目等。
(2)选择主控芯片:根据功能需求选择合适的主控芯片,如ESP8266、STM32等。
(3)设计电路原理图:根据主控芯片和功能需求,设计电路原理图,包括数字信号解码、模拟信号放大、按键、显示屏等模块。
(4)绘制PCB板图:根据电路原理图,绘制PCB板图,确定元器件布局和走线。
2. 元器件选型与测试(1)主控芯片:根据电路设计,选择合适的主控芯片,如ESP8266。
(2)数字信号解码芯片:根据电路设计,选择合适的数字信号解码芯片,如DAC芯片。
(3)模拟信号放大芯片:根据电路设计,选择合适的模拟信号放大芯片,如运算放大器。
(4)按键、显示屏等元器件:根据电路设计,选择合适的按键、显示屏等元器件。
(5)测试元器件:对所选元器件进行测试,确保其性能符合设计要求。
3. 音乐播放器组装与调试(1)焊接PCB板:根据PCB板图,焊接元器件,完成音乐播放器组装。
(2)调试电路:检查电路连接是否正确,调整电路参数,确保电路正常工作。
音乐播放器摘要本设计是一个音乐播放器,由节拍发生器、歌曲存储器、译码器、分频器四部分组成。
能够连续播放或选曲播放预存在ROM里的4首歌曲。
该播放器用Quartus II仿真软件设计并测试功能正常,下载到试验箱验证成功。
关键词:音乐播放器,节拍发生器,存储器,译码器,分频器目录前言 (3)第1章系统原理 (6)1.1音乐编码 (6)1.1.1编码原理 (6)1.1.2编码参照表 (6)1.2设计原理 (7)第2章系统工作过程 (8)2.1.1 工作原理 (8)2.1.2仿真分析 (9)2.2 歌曲存储器 (9)2.2.1 工作原理 (9)2.2.2 歌曲编码 (10)2.2.2 ROM定制 (14)2.3 译码器电路设计 (16)2.3.1 译码器工作原理 (16)2.3.2 仿真分析 (17)2.4 分频器电路设计 (17)2.4.1 工作原理 (17)2.4.2 仿真分析 (20)第3章下载验证 (21)3.1 引脚锁定设置 (21)3.1.1 器件选择 (21)3.1.2 引脚分配 (21)3.2 配置文件下载 (22)3.3 硬件测试 (22)结论 (23)参考文献 (24)前言世界上第一片FPGA由美国Xilinx公司于1985年率先推出。
进入21世纪之后,以FPGA为核心的单片系统(SOC)和可编程系统(SOPC)有了显著的发展,单片FPGA的集成规模已达到几百万门,其工作速度已超过300MHz。
FPGA在结构上已经实现了复杂系统所需要的主要功能,并将多种功能集成在一片FPGA器件中,如嵌入式存储器、嵌入式乘法器、嵌入式处理器、高速I/O缓冲器、外置存储器接口和实现数字信号处理的DSP等功能。
随着FPGA性能的不断完善,FPGA器件的种类日益丰富,受到世界范围内电子设计人员的普遍欢迎,并占据了较大的市场,其生产厂家也由原来的Xilinx公司一家增加到Altera、Actel、lattice等十几家公司。
目录一、设计要求 (1)二、设计目的 (1)三、设计的具体实现 (1)3.1 系统概述 (1)3.2单元电路设计 (1)3.2.1 8086中央处理器 (1)3.2.2 74LS373地址锁存电路 (5)3.2.3 74LS138 译码电路 (6)3.2.4 定时/计数器8253A (7)3.3 软件程序设计和调试 (13)四、结论与展望 (17)五、心得体会及建议 (17)六、附录 (18)七、参考文献 (19)电子音乐播放器设计报告一、设计要求利用8253作为音频频率发生器,应先对一段音乐进行编码后存入音符表,并建立好音阶表(只建立一个8度即可,音阶表见附录),音符长度不能少于60个,连续播放3遍后停止。
具体要求如下:1、系统硬件电路设计:根据所选题目和所用的接口电路芯片设计出完整的系统硬件电路,并进行电路连接和调试。
2、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。
二、设计目的本课程设计培养学生运用该课程的理论知识和技术知识解决工程实际问题的能力,学习微机系统设计的方法;学生通过对实验室系统的实际调试,进一步培养并提高了科学实验的能力。
因此,本课程设计为学生提供一个良好的理论联系实际的机会和场所,有利于为学生树立微机整体的概念,同时加强了学生编制和调试程序的能力,进一步培养学生的独立工作能力。
因此,课程设计是教学计划中必不可少的重要一环。
三、设计的具体实现1.系统概述该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码电路、定时/计数器8253A来实现功能。
8086中央处理器输出地址码A16-A19和数据AD0-AD15,将AD0-AD7输入地址锁存器输出A0-A7,再将A0-A7通过译码器进行译码输出作为8253的片选信号,8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。
2.单元电路设计2.1 8086中央处理器8086中央处理器是Intel系列的16位微处理器,有16根数据线和20跟地址线。
目录一、设计任务要求 ................................................................................................ - 2 -1、课程设计题目 ............................................................................................. - 2 -2、工程设计总述 ............................................................................................. - 4 -二、选择器件 .......................................................................................................... - 4 -三、功能模块 .......................................................................................................... - 4 -1.分频器(div) ............................................................................................... - 4 -2、计数器(notetabs)................................................................................... - 6 -3、选择模块(choice)................................................................................... - 7 -4、数据翻译模块(tontaba): ...................................................................... - 9 -5、译码器模块(deled) .............................................................................. - 10 -6、数控分频器模块(speakera)................................................................ - 14 -7、乐谱数据ROM(四个模块)................................................................. - 15 -四、总体设计电路图 ............................................................................................ - 21 -1、顶层设计的电路原理图 ........................................................................... - 21 -2、顶层设计的仿真结果: ........................................................................... - 22 -3、电路的顶层文件管脚分配图 ................................................................... - 22 -五、心得体会 ........................................................................................................ - 22 -音乐播放器课程设计一、设计任务要求1、课程设计题目设计一个乐曲演奏电路,能够自动播放2首音乐。
音乐播放器概要设计报告1.引言1.1 概述概述:音乐播放器作为一种常见的多媒体播放设备,已经成为人们日常生活中不可或缺的一部分。
随着科技的不断发展和进步,音乐播放器在功能和设计上也得到了不断的改进和优化。
本报告旨在对音乐播放器的概要设计进行详细的介绍和分析,包括功能介绍、用户界面设计以及音乐文件管理等方面。
通过对音乐播放器的概要设计进行全面的分析和评估,旨在为今后的音乐播放器设计和开发提供参考和借鉴,进一步推动音乐播放器行业的发展和进步。
1.2文章结构文章结构部分内容如下:1.2 文章结构本文主要分为三个部分,即引言、正文和结论。
引言部分主要概述本篇文章的主题,介绍文章的结构和目的。
正文部分主要详细介绍音乐播放器的功能介绍、用户界面设计和音乐文件管理等内容。
结论部分对本文的内容进行总结,并提出设计优化建议,展望未来音乐播放器的发展方向。
通过以上三个部分的分析和讨论,读者将对音乐播放器的概要设计有一个全面的了解。
1.3 目的:本报告旨在对音乐播放器的概要设计进行全面的描述和分析。
通过介绍音乐播放器的功能特点、用户界面设计和音乐文件管理等方面的内容,旨在为读者提供全面的了解。
同时也旨在总结现有设计的优点和不足之处,为未来音乐播放器的设计和优化提供参考。
此外,还希望通过本报告展望未来音乐播放器的发展方向,为相关领域的研究和实践提供借鉴和启示。
2.正文2.1 音乐播放器功能介绍音乐播放器作为一种音频播放软件,主要功能是能够播放各种格式的音乐文件,如MP3、WAV、FLAC等。
除了基本的播放功能外,现代音乐播放器还具备许多附加功能,例如创建播放列表、收藏喜爱的歌曲、跳转到指定位置、调整音量、音效调节、歌词显示、定时关闭等。
另外,一些高级的音乐播放器还支持在线音乐的播放和下载,提供音乐推荐功能,以及与社交媒体平台的互联功能,帮助用户发现和分享音乐内容。
总的来说,音乐播放器的功能范围已经远远超出了最初的音频播放,成为了一个多功能的音乐娱乐平台。
一、实验项目名称基于单片机的音乐播放器二、实验目的Ⅰ设计方案设计一个基于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。
实验报告课程名称:数字系统设计实验1 指导老师:成绩:__________________ 实验名称:音乐播放实验实验类型:设计型同组学生姓名:_ 无一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求1、掌握音符产生的方法,了解DDS技术的应用。
2、了解AC97音频接口电路的应用。
3、掌握系统“自顶而下”的设计方法。
二、实验内容和原理i实验内容:设计一个音乐播放器ii实验原理:系统划分为主控制器(mcu)、乐曲读取(song_reader)、音符播放器(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块。
系统图如下:mcu接收按键信息,通知song_reader是否要播放(play)以及播放播放哪一首歌曲(song)。
song_reader模块根据mcu要求逐个取出音符{note,duration}送给note_player,乐曲播放完毕回复(song_done)给mcu。
note_player接收音符后以48kHz速率送出该音符的正弦波样品给AV97音频接口模块。
当一个音符播放结束,向song_reader回复note_done。
codec_conditioner、ac97_if负责与AC97接口工作。
另外,按键处理模块完成输入同步化、防颤动和脉冲变换等功能。
三、主要仪器设备带modelsim和ISE 的PC机,XUP Virtex-II Pro 开发系统一套四、设计过程1.音符播放器(note_player)的设计主要任务有:●从song_reader模块接收所需播放的音符信息{note,duration};●根据note值找出DDS的相位增量;●以48khz的速率从sine rom取出正弦样品送给AC97接口模块;●当一个音符播放完毕,向song_rom模块索取新的音符。
信息与电气工程学院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控制口地址P0 EQU 00F8H ;8253A的计数器0口地址P1 EQU 00FAH ;8253A的计数器1口地址3.1音乐发声频率装入乐曲是按照一定的高低、长短和强弱关系组成的音调,在每一首乐曲中,每个音符的音高和音长与发声系统中的频率、节拍有关。
可参考下表:音名 C D E F G A B C D E F G A B C唱名 1 2 3 4 5 6 7 1 2 3 4 5 6 7 i频率(HZ)131 147 165 175 196 220 247 262 294 330 349 392 440 492 523其中,低音阶从低音C(131HZ)到中央C(262HZ),高音阶从中央C(262HZ)到高音C(523HZ)。
组成乐曲的音符的频率值和持续时间是乐曲程序发声所必需的两组数据,频率可以查上表,音符的持续时间根据乐曲的速度及每个音符的节拍数来确定。
在4/4拍中,四分音符为一拍,每小节四拍,全音符持续四拍,二分音符持续二拍,四分音符持续一拍,八分音符持续半拍。
如果给全音符分配1秒(100*10ms)的时间,则二分音符持续时间为0.5秒,四分音符持续时间为0.25秒,八分音符持续时间为0.125秒。
知道了音调及频率、时间的关系后,可以按照乐曲的乐谱将每个音符的频率和持续时间定义为两个数据表,然后编写程序依次取出表中的频率值和时间值。
3.3初始化8255A和8253A该发生程序是在修改BEEP发声程序的基础上,以实现为8088/86编写一个任意频率和任意持续时间的通用发声程序,然后根据程序检测按键功能和测试接口正常运行。
CODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV DX,CORTMOV AL,82H ;方式0OUT DX, AL ;A口为输出,B口为输入,C口为输出 MOV DX,COTR ;初始化8253MOV AL,36H ;定时器0、方式3OUT DX,AL3.4按键消抖LP: MOV DX, PB_C ;C口置零MOV AL,0HOUT DX,ALLOOA: MOV AL,00HOUT PB_A,AL ;A口置零LOOB: IN AL,PB_BAND AL,0FHCMP AL,0FHJNZ NEXTJZ LOOANEXT: CALL DELAYIN AL,PB_BAND AL,0FHCMP AL,0FHJZ LOOB ;没有键按下跳转RE: MOV BL,3 ;行数MOV BH,3 ;列数MOV AL,0FEHMOV CL,0FHMOV CH,0H ;起始键号03.5 按键扫描通过程序检测按键的是否正常的输入,以确定正常的输入信号,可以进行发声。
LOOP1: OUT PB_A,AL ;A行输出ROL AL,1 ;准备扫描下一行MOV AH,ALIN AL,PB_BAND AL,CLCMP AL,CLJNZ LOOP2 ;有键按下跳转ADD CH,BHMOV AL,AHDEC BLJNZ LOOP1 ;行末扫完跳转继续JMP RELOOP2: INC CHROR AL,1JC LOOP2 ;无按键按下跳转MOV AL,CH ;找到按键,比配CMP AL,1JZ KEY1CMP AL,2JZ KEY2CMP AL,3JZ KEY3CMP AL,4JZ KEY4CMP AL,5JZ KEY5CMP AL,6JZ KEY6CMP AL,7JZ KEY7CMP AL,8JZ KEY8JMP KEY93.6设置播放音乐利用8086设置程序,控制播放音乐,设置输入时钟频率,调用延迟子程序,实现判断音乐的判断以及输出。
PLAY1 PROC NEARW: MOV DX,01H ;输入时钟频率:100KHzMOV AX,86A0HDIV WORD PTR [SI] ;取出频率值计算初值MOV DX,P0OUT DX,AL ;装入初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序 CALL DALLY1ADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否结束JE LP ;放音结束,停止IN AL,PB_BCMP AL,0FFHJE LPJMP WPLAY1 ENDPPLAY2 PROC NEARZ: MOV DX,01H ;输入时钟频率:100KHzMOV AX,86A0HDIV WORD PTR [SI] ;取出频率值计算初值MOV DX,P0OUT DX,AL ;装入初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序 CALL DALLYADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否结束JE LP ;放音结束,停止IN AL,PB_BCMP AL,0FFHJE LPJMP ZPLAY2 ENDPPLAY3 PROC NEARK: MOV DX,01H ;输入时钟频率:100KHzMOV AX,86A0HDIV WORD PTR [SI] ;取出频率值计算初值MOV DX,P0OUT DX,AL ;装入初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序 CALL DALLY2ADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否结束JE LP ;放音结束,停止IN AL,PB_BCMP AL,0FFHJE LPJMP KPLAY3 ENDP3.8调试程序执行过程程序调试步骤如下:1)建立汇编源程序.2)建立连接。
3)编译为目标文件4)调试。
5)不通过,重新修改(语句错误、音调频率不准、音调节拍不符合)6)重新修改、调试。
7)正确运行。
4.设计心得通过查找资料,利用汇编语言来设计音乐播放器过程中,我体会到了很多意想不到的过程,首先是成功的喜悦,由于刚刚才开始学习汇编言语,还不能够很熟练的编写汇编的控制语言,以及对8255A和8253A的功能了解也不是非常深入,但是在设计的过程中我从中学到了更多的知识,更加的巩固了我对课本知识的熟练掌握。
其次,我通过设计我可以把理论和实践很好的相结合,也是以一种对知识的掌握的转换目的,加深和优化系统性的学习结构。
对于Proteus、emu8086等实用软件的使用更加熟练,这会为以后的应用提供一个更好的学习机会。
这次的项目设计是设计用九个按键控制扬声器播放出音乐,这九首音乐各不相同,每次按下一个键就会有一首音乐播放。
最后就是,自己动手丰衣足食,只有通过不断的学习,不断的实践就可以更好的去掌握所需知识,才能从基础逐渐的深入,才能不断的创新。
参考文献[1]王元珍,曹忠升,韩宗芬编著.80x86 汇编语言程序设计[M].湖北:华中科技大学出版社,2005年4月.[2]王成端,李晓波编著.汇编语言程序设计[M].北京:高等教育出版社,2003年8月.[3]孙琦,郑硕编著.汇编语言程序设计复习与考试指导(第二版)[M].北京:高等教育出版社,2006年7月.[4] 沈美明,温冬婵.IBM—PC汇编语言程序设计(第2版)[M]. 北京:清华大学出版社,2001年8月.[5] 阎石 . 数字电子技术基础 .高等教育出版社 . 2006年5月[6] 王忠民. 微型计算机原理. 西安电子科技大学出版社. 2007年6月附录: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控制口地址P0 EQU 00F8H ;8253A的计数器0口地址P1 EQU 00FAH ;8253A的计数器1口地址STACK SEGMENT STACKDW 256 DUP(?)STACK ENDSDATA SEGMENTF1 DW 393,661,589,525,525,525,525,525,495,441,525,525,393DW 393,393,661,589,525,525,525,525,525,495,441,525,525, 589,393DW 393,393,441,441,393,393,393,525,525,589,661,525,589, 589,589DW 589,525,393,441,495,589,525,0T1 DB 4,3,1,2,2,2,2,2,2,2,1,1,4,4,4,3,1,2,2,2,2,2,2,2,1,1,4,4, DB 3,1,2,2,2,1,1,2,2,2,4,2,3,1,2,2,2,5,3,1,2,2,2,5F2 DW 371,495,495,495,624,556,495,556,624DW 495,495,624,742,833,833,833,742,624DW 624,495,556,495,556,624,495,416,416,371DW 495,833,742,624,624,495,556,495,556,833DW 742,624,624,742,833,990,742,624,624,495DW 556,495,556,624,495,416,416,371,495,0T2 DB 4,6,2,4,4,6,2,4,4DB 6,2,4,4,12,1,3,6,2DB 4,4,6,2,4,4,6,2,4,4DB 12,4,6,2,4,4,6,2,4,4DB 6,2,4,4,12,4,6,2,4,4DB 6,2,4,4,6,2,4,4,12F3 DW 2 DUP(262,294,330,262)DW 2 DUP(330,349,392)DW 2 DUP(392,440,392,349,330,262)DW 2 DUP(294,196,262)DW 10 DUP(-1),0T3 DB 8 DUP(2)DB 2 DUP(1,2,3)DB 12 DUP(1)DB 6 DUP(2)DB 10 DUP(2)F4 DW 371,330,495,416,416,371,330,312,330,278,416,278,278,330,371,330,556, DW441,441,416,441,278,312,330,371,65535,416,441,495,495,495,556,330,DW65535,495,312,371,330,65535,371,416,278,441,416,441,441,495,371,0T4 DB 2,2,4,4,2,2,2,2,2,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,6,2,2, DB 2,2,2,2,2,4,2,2,2,2,2,2,2,2,4,4,2,2,2,2,2,6F5 DW 661,742,742,833,833,833,833,742,833,833,990,990,495,495DW833,742,742,742,742,742,742,990,990,495,495,742,661,661,661,495,495,8 83,883,742,556,495DW661,742,833,833,833,833,742,833,833,990,990,495,495,883,DW742,742,742,661,742,742,990,990,495,495,742,661,661,495,495,833,833,7 42,661,661,0T5 DB 3,1,4,2,2,2,1,1,1,1,2,2,1,1DB 2,1,3,1,1,1,1,2,2,1,1,2,1,1DB 2,1,1,2,2,2,2,8,4,4,2,2,2,1DB 1,1,1,2,2,1,1,3,1,2,1,1,1,1DB 2,2,1,1,3,1,2,1,1,1,2,2,1,6F6 DW 393,525,525,525,393,589,495,525DW 393,525,700,700,661,589,525,589,525,495,525,589DW 393,525,525,525,393,589,495,525DW 393,525,661,786,661,525,441,589,661,525,0T6 DB 4,3,1,8,4,3,1,8DB 4,3,1,4,3,1,2,1,1,3,1,8DB 4,3,1,8,4,3,1,8DB 4,3,1,4,3,1,4,3,1,8F7 DW 661,589,661,589,589,525,589,589DW 525,495,525,495,441,495,330,330,65535,441DW 495,525,525,525,525,495,525,589,589,589,525,589,661DW 65535,661,589,661,589,589,525,589,589DW 589,661,700,661,589,589,661,661,661,441,65535,44DW 495,525,495,441,525,525,495,525,589,525,495,589,589DW 525,525,441,441,441,441,0T7 DB 2,2,3,1,2,1,1,4DB 2,2,2,2,2,1,1,4,2DB 1,1,2,1,1,2,1,1,2,2,1,2,1,8DB 1,2,2,3,1,2,1,1,4DB 2,2,2,1,1,2,1,1,1,3,2DB 1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,2,1,1,8F8 DW 441,441,495,441,589,556,441,441,495,441,664DW 589,441,441,882,742,589,556,495,65535,786,786,742, 589,664,589,0T8 DB 2,2,4,4,4,8,2,2,4,4,4,8,2,2,4,4,4,4,8,4,2,2,4,4,4,8 F9 DW 441,661,589,441,661,589,495,742,742,742,786,661,589,661,661,556,495,441DW 441,441,661,661,742,661,589,65535,589,495,742,661,661, 441,661,589,441,661,589,495,742DW 742,742,786,661,589,661,661,556,495,441,441,441,742, 661,742,661,589DW 65535,589,495,441,495,589,65535,661,661,742,589,661, 589,589,0T9 DB 2,2,4,2,2,4,2,2,2,1,1,2,2,2,2,2,1,1DB 3,1,2,1,1,2,5,2,2,2,2,2,2,2,2,4,2,2,4,2,2DB 2,1,1,2,2,2,2,2,1,1,3,1,2,1,1,2,5DB 2,2,2,2,2,5,3,1,2,2,1,1,5,4DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV DX,CORTMOV AL,82H ;方式0OUT DX, AL ;A口为输出,B口为输入,C口为输出 MOV DX,COTR ;初始化8253MOV AL,36H ;定时器0、方式3OUT DX,ALLP: MOV DX, PB_C ;C口置零MOV AL,0HOUT DX,ALLOOA: MOV AL,00HOUT PB_A,AL ;A口置零LOOB: IN AL,PB_BAND AL,0FHCMP AL,0FHJNZ NEXTJZ LOOANEXT: CALL DELAYIN AL,PB_BAND AL,0FHCMP AL,0FHJZ LOOB ;没有键按下跳转RE: MOV BL,3 ;行数MOV BH,3 ;列数MOV AL,0FEHMOV CL,0FHMOV CH,0H ;起始键号0LOOP1: OUT PB_A,AL ;A行输出ROL AL,1 ;准备扫描下一行MOV AH,ALIN AL,PB_BAND AL,CLCMP AL,CLJNZ LOOP2 ;有键按下跳转ADD CH,BHMOV AL,AHDEC BLJNZ LOOP1 ;行末扫完跳转继续 JMP RELOOP2: INC CHROR AL,1JC LOOP2 ;无按键按下跳转 MOV AL,CH ;找到按键,比配CMP AL,1JZ KEY1CMP AL,2JZ KEY2CMP AL,3JZ KEY3JZ KEY4CMP AL,5JZ KEY5CMP AL,6JZ KEY6CMP AL,7JZ KEY7CMP AL,8JZ KEY8JMP KEY9KEY1: MOV DX, PB_C ;C0给高电平,开始放音 MOV AL,01HOUT DX,ALMOV SI,OFFSET F1 ;装入频率表起始地址MOV DI,OFFSET T1 ;装入时间表起始地址CALL PLAY1KEY2: MOV DX, PB_C ;C0给高电平,开始放音 MOV AL,01HOUT DX,ALMOV SI,OFFSET F2MOV DI,OFFSET T2CALL PLAY1KEY3: MOV DX, PB_C ;C0给高电平,开始放音OUT DX,ALMOV SI,OFFSET F3MOV DI,OFFSET T3CALL PLAY2KEY4: MOV DX, PB_C ;C0给高电平,开始放音 MOV AL,01HOUT DX,ALMOV SI,OFFSET F4MOV DI,OFFSET T4CALL PLAY1KEY5: MOV DX, PB_C ;C0给高电平,开始放音MOV AL,01HOUT DX,ALMOV SI,OFFSET F5MOV DI,OFFSET T5CALL PLAY2KEY6: MOV DX, PB_C ;C0给高电平,开始放音 MOV AL,01HOUT DX,ALMOV SI,OFFSET F6MOV DI,OFFSET T6CALL PLAY2KEY7: MOV DX, PB_C ;C0给高电平,开始放音 MOV AL,01HOUT DX,ALMOV SI,OFFSET F7MOV DI,OFFSET T7CALL PLAY2KEY8: MOV DX, PB_C ;C0给高电平,开始放音 MOV AL,01HOUT DX,ALMOV SI,OFFSET F8 ;装入频率表起始地址MOV DI,OFFSET T8 ;装入时间表起始地址CALL PLAY1KEY9: MOV DX, PB_C ;GATE0给高电平,开始放音MOV AL,01HOUT DX,ALMOV SI,OFFSET F9 ;装入频率表起始地址MOV DI,OFFSET T9 ;装入时间表起始地址CALL PLAY3MAIN ENDPDALLY PROC NEAR ;节拍延时子程序D0:MOV CX,0010HD1:MOV AX,0300HD2:DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALLY ENDPDALLY1 PROC NEAR ;节拍延时子程序1 D01:MOV CX,0010HD02:MOV AX,0200HD03:DEC AXJNZ D03LOOP D02DEC DLJNZ D01RETDALLY1 ENDPDALLY2 PROC NEAR ;节拍延时子程序2 D11:MOV CX,0010HD12:MOV AX,02A0HD13:DEC AXJNZ D13LOOP D12DEC DLJNZ D11RETDALLY2 ENDPDELAY PROC NEAR ;按键延时子程序PUSH BXPUSH AXPUSH CXMOV CX,0FHW1: MOV AX,00FFHW2: DEC AXJNZ W2LOOP W1POP CXPOP AXPOP BXRETDELAY ENDPPLAY1 PROC NEARW: MOV DX,01H ;输入时钟频率:100KHzMOV AX,86A0HDIV WORD PTR [SI] ;取出频率值计算初值MOV DX,P0OUT DX,AL ;装入初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序 CALL DALLY1ADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否结束JE LP ;放音结束,停止IN AL,PB_BCMP AL,0FFHJE LPJMP WPLAY1 ENDPPLAY2 PROC NEARZ: MOV DX,01H ;输入时钟频率:100KHzMOV AX,86A0HDIV WORD PTR [SI] ;取出频率值计算初值MOV DX,P0OUT DX,AL ;装入初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序 CALL DALLYADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否结束JE LP ;放音结束,停止IN AL,PB_BCMP AL,0FFHJE LPJMP ZPLAY2 ENDPPLAY3 PROC NEARK: MOV DX,01H ;输入时钟频率:100KHzMOV AX,86A0HDIV WORD PTR [SI] ;取出频率值计算初值MOV DX,P0OUT DX,AL ;装入初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序 CALL DALLY2ADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否结束JE LP ;放音结束,停止IN AL,PB_BCMP AL,0FFHJE LPJMP KPLAY3 ENDPCODE ENDSEND START。