微机原理课程设计——音乐播放器
(完整word版)微机原理课程设计音乐播放器
一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。
通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。
该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
通过课程设计环节来加强对所学知识的理解和应用。
二、课程设计相关知识2.1 定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。
缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。
本实验就采用了8254,其主要功能为:(1)每片上有3 个独立的16 位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6 种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达10MHz。
主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.2 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:8254的引脚(1)D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
c音乐播放器课程设计
c 音乐播放器课程设计一、课程目标知识目标:1. 学生理解音乐播放器的基本原理,掌握与其相关的电子元件功能;2. 学生掌握音乐播放器编程的基础知识,能够运用所学编程语言实现音乐播放功能;3. 学生了解音乐播放器在生活中的应用,认识不同类型的音乐播放器。
技能目标:1. 学生能够运用所学知识,设计并制作一个简易的音乐播放器;2. 学生能够通过编程解决音乐播放过程中遇到的问题,如播放、暂停、切换歌曲等;3. 学生能够进行团队协作,共同完成音乐播放器的设计与制作。
情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐审美能力;2. 学生通过实践操作,培养动手能力、创新意识和解决问题的能力;3. 学生在团队协作中,学会相互尊重、沟通与协作,培养集体荣誉感。
课程性质:本课程为实践性课程,结合课本知识,以学生动手操作为主,培养学生实际操作能力和创新能力。
学生特点:本年级学生具备一定的电子元件知识和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:教师应注重引导学生运用所学知识解决实际问题,关注学生的个体差异,鼓励学生创新思维,培养学生团队协作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 音乐播放器原理:介绍音乐播放器的基本工作原理,包括音频信号处理、放大电路、扬声器等组成部分。
相关教材章节:第三章“音频信号处理”及第四章“放大电路与扬声器”2. 编程知识:运用课本所学编程语言,如C语言,实现音乐播放器的控制程序。
相关教材章节:第五章“C语言基础”及第七章“C语言编程实例”3. 音乐播放器设计制作:结合电子元件知识与编程技能,设计并制作一个简易的音乐播放器。
相关教材章节:第八章“电子制作实践”及第十章“综合项目设计与制作”4. 实践操作:分组进行音乐播放器的设计与制作,包括硬件连接、编程调试等环节。
相关教材章节:第十一章“实践操作与团队协作”教学内容安排与进度:第一课时:回顾音频信号处理、放大电路及扬声器等基础知识,明确音乐播放器工作原理。
音乐播放器课程设计
音乐播放器课程设计一、课程目标知识目标:1. 学生能够理解音乐播放器的基本原理和功能。
2. 学生掌握音乐播放器界面设计的基本元素和布局。
3. 学生了解音乐播放器中不同音乐格式及其特点。
技能目标:1. 学生能够使用音乐播放器软件进行音乐播放、暂停、停止等基本操作。
2. 学生能够通过音乐播放器软件对音乐进行分类、排序和搜索。
3. 学生能够运用所学知识设计和制作简单的音乐播放器界面。
情感态度价值观目标:1. 培养学生对音乐的热爱和欣赏能力,提高审美情趣。
2. 培养学生团队协作和沟通能力,学会分享和交流音乐心得。
3. 增强学生对科技产品的认识,激发创新意识和探索精神。
课程性质:本课程为信息技术与音乐相结合的综合性课程,注重实践操作和实际应用。
学生特点:六年级学生具有一定的信息技术基础和音乐素养,对新事物充满好奇,喜欢动手实践。
教学要求:结合学生特点,采用任务驱动法,引导学生自主探究和合作学习,注重理论与实践相结合,提高学生的实际操作能力和创新能力。
通过本课程的学习,使学生能够将所学知识应用于实际生活,提升音乐欣赏和信息技术素养。
二、教学内容1. 音乐播放器原理与功能- 了解音乐播放器的基本构成和原理- 掌握音乐播放器的主要功能及操作方法2. 音乐播放器界面设计- 学习音乐播放器界面设计的基本原则- 分析并模仿经典音乐播放器界面布局3. 音乐格式及特点- 介绍常见音乐格式(如MP3、WAV等)及其特点- 了解音乐格式对播放效果和文件大小的影响4. 音乐播放器操作与使用- 学习使用音乐播放器软件进行基本操作(播放、暂停、停止等)- 掌握音乐播放器的高级功能(如音乐分类、排序、搜索等)5. 设计制作音乐播放器界面- 学习运用设计软件制作音乐播放器界面- 结合团队协作,设计并展示个性化的音乐播放器界面教学大纲安排:第一课时:音乐播放器原理与功能第二课时:音乐播放器界面设计第三课时:音乐格式及特点第四课时:音乐播放器操作与使用第五课时:设计制作音乐播放器界面教学内容关联教材章节:《信息技术》六年级上册:第五章 多媒体技术应用,第三节 音乐播放器原理与使用。
音乐播放器课程设计报告
课程设计报告课程名称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)前言关于这次设计的用于多人竞赛抢答的器件,在现实生活中很常见,尤其是在随着各种智益电视节目的不断发展,越来越多的竞赛抢答器被用在了其中,这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张、活跃气氛,让观众看得更有情趣。
音乐播放器的实现及LCD显示微机原理课程设计
微机原理与接口技术课程设计报告题目:音乐播放器的实现及LCD显示学院:信息学院专业:物联网班级:2012240901学号:201224090105姓名:章杭目录一、课程设计任务及要求...............................1.1 课程设计题目.........................................................................1.2 课程设计任务及要求.............................................................二、课程设计相关知识...................................2.1 8254芯片.................................................................................2.2 8255芯片..................................................................................2.3 12864液晶................................................................................三、程序设计思路...........................................3.1 设计思路说明.......................................................................3.2 电路图连接...........................................................................四、代码程序说明...........................................五、调试结果及分析.......................................六、总结与体会...............................................一、课程设计任务及要求1.1 课程设计题目音乐播放器的实现1.2 课程设计任务及要求要求用TCP-ZK实验箱及PC机的连接实现音乐播放功能,并在12864液晶屏上显示所放音乐的歌名。
微机原理 电子音乐播放器报告
《微机原理》课程设计报告评阅成绩评阅教师评阅时间题目:电子音乐播放器专业班级:电子信息科学与技术0810 班设计学生:完成时间:2010年12月15 日湖南文理学院物理与电子科学学院设计题目电子音乐播放器设计要求利用8253作为音阶频率发生器,应先对一段音乐进行编码后存入音符表,并建好音阶表(只建一个八度即可),音符长度不能少于60个,连续播放三遍即可停止。
设计思路用频率发生器74LS393给定时/计数器8253提供一个固定频率的时钟信号,通过给8253输入计数值,以输出对应C调DOU、RUAI、MI、FA、SOU、LA、XI 、DOU(高)的不同频率。
在通过延时下一计数值的输入,控制节拍时间。
最后输入扬声器就会有对应音乐播放。
硬件设计:⑴、频率发生器74LS393的T7端输入到8253的CLOCK0端,提供15.625kHz的时钟信号,⑵、定时/计数器8253的GATE0接﹢5V,提供高电平;⑶、定时/计数器8253的OUT0接扬声器驱动模块的SIN端口;⑷、扬声器驱动模块的J5端口接扬声器的J5端口。
连接图如下框中的系统设计原理图。
程序设计:见下程序流程图。
8253的计数值N=;fifcTcTi=15625;其中=fc现。
延时下一音符的读取实而每个音符的节拍通过表中读取由其中;frequencyfi对应的C调的DOU、RUAI、MI、FA、SOU、LA、XI 、DOU(高)频率为264、297、330、352、396、440、495、528;8253的控制字端口为43H,0、1、2计时器输入端口地址分别为40H、41H、42H 。
系统设计原理图程序流程图源程序:写入8253,计时赋值延时开始三次播放结束74LS393T7YCLOCK0GATE0扬声器驱动SIN J5扬声器8253OUT0+5V定义端口号NCODE SEGMENTASSUME CS:CODEorg 1000hSTART: JMP TCONTTCONTRO EQU 0043H ;8253控制口地址0043H TCON0 EQU 0040H ;定时计数器0地址0040H TCONT: mov cx,64 ;写入计数值jixu: mov ax,64sub ax,cxmov bx,axmov al, cs:[bx+offset data1] ;查音阶表mov cs:[4000h],alcall set8253 ;调用8253设置call delay ;调用延时程序loop jixujmp tcont ;循环delay: push cx ;延时mov cx,01ffhdelay1: call delay2loop delay1pop cxretdelay2: push cxmov cx,0ffhdelay3: loop delay3pop cxretset8253: MOV DX,TCONTRO ;8253写控制字MOV AL,36HOUT DX,ALMOV DX,TCON0 ;8253定时计数器0工作在方式3MOV AL,byte ptr ds:[4000h]OUT DX,ALMOV AL,00HOUT DX,ALretdata1: db24,20,30,30,27,24,40,40,30,27,24,20,27,27,27,27,24,20,30,30,27,24,36,36,27,40,27,24,30,3 0,30,30,18,18,20,20,18,18,30,30,24,18,24,20,27,27,27,27,24,20,30,30,27,24,36,36,27,40,27 ,24,30,30,30,30CODE ENDSEND START设计总结:经过1个星期的课程设计,完成任务的效果和预想中有很大的出入,以为是一个简单的实验,也没有查阅资料,直到调试的时候,来编程,才发现有困难!即时大框架做好了,也很可能失败,很多小细节时我们不容忽视的。
电子音乐播放器课程设计
一.电子音乐播放器一、设计的任务和目的题目目的:学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
设计要求:利用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定时器装入不同的计数值,可以使其输出不同频率的波形。
当与门打开后,经过放大器放大的作用,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序,之后再将扬声器(关闭与门)即可。
dsp课程设计音乐播放器
dsp课程设计音乐播放器一、课程目标知识目标:1. 学生能够理解数字信号处理(DSP)的基本概念,掌握音乐播放器中DSP 技术的应用原理。
2. 学生能够掌握音乐播放器中音频信号的采样、量化、编码等基本知识。
3. 学生能够了解不同音频格式对音乐播放效果的影响,并学会选择合适的音频格式。
技能目标:1. 学生能够运用所学知识,设计并实现一个简单的音乐播放器。
2. 学生能够熟练使用相关软件工具进行音频信号的处理和分析。
3. 学生能够通过编程实现音乐播放器的功能,如播放、暂停、停止等。
情感态度价值观目标:1. 培养学生对数字信号处理技术的兴趣,激发他们探索科学技术的热情。
2. 培养学生的团队协作意识和创新精神,使他们能够在项目实践中相互学习、共同进步。
3. 培养学生关注音乐播放器在实际生活中的应用,提高他们将所学知识应用于解决实际问题的能力。
课程性质:本课程为实践性较强的学科,以项目为导向,注重培养学生的动手能力和创新能力。
学生特点:学生具备一定的编程基础,对音乐播放器有一定的了解,但对DSP技术及其在音乐播放器中的应用尚不熟悉。
教学要求:教师应结合学生特点,采用理论教学与实践操作相结合的方式,引导学生主动探索、积极实践,确保课程目标的达成。
同时,注重分解课程目标为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 数字信号处理基础理论:- 介绍数字信号处理的基本概念,如采样、量化、编码等。
- 分析音乐播放器中音频信号的处理流程。
2. 音乐播放器原理与设计:- 讲解音乐播放器的基本工作原理,如播放、暂停、停止等功能实现。
- 引导学生了解不同音频格式及其特点,选择合适的音频格式。
3. 音频信号处理技术:- 介绍音频信号处理的相关算法,如数字滤波器、音量调节等。
- 指导学生运用相关软件工具进行音频信号的处理和分析。
4. 编程实践:- 制定详细的编程实践计划,分解音乐播放器的设计任务。
- 引导学生使用编程语言,如C/C++、Python等,实现音乐播放器的功能。
微机原理音乐播放程序设计
实验报告(2016 / 2017 学年第二学期)课程名称微机原理与接口技术实验名称音乐播放程序设计实验时间2017 年 6 月13 日学院电子信息学院指导教师严华学生学号学院(系) 电子信息学院专业光电信息科学与工程1、实验目的通过编写程序控制8253和8255A芯片,实现一个简单的音乐播放程序。
2、实验原理我们在这次课设选择了音乐程序设计,音乐程序设计可以实现至少两首歌的可选择播放。
对于歌曲的播放我们采用的是计数器/定时器8253芯片,而对于选择哪首歌播放则是利用可编程并行接口8255A芯片来实现的。
基于8253定时计数接口芯片的工作原理,本次课设实现了音乐演奏系统程序设计。
当运行程序时,扬声器便发出优美的音乐。
首先要解决发声并发出相应音符声音的问题,由8253计数器0在初始化时用来产生一定频率的方波来使扬声器发声,再根据不同音符对应的频率写入计数初值发出相应的音符声。
对8255芯片PA0和PA1口的置0和1来控制扬声器的开关。
其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。
3、实验容A.实验环境搭建B. 编程由于选取的乐曲音符音调幅度较大,故利用表格,算出其初值计数初值= 1193180 (8253输入频率)/ 音符频率以下为程序代码#include <dos.h>#include <stdio.h>#define INIT_T2 0xb6#define PORT_T2 0x42#define CTRL_T 0x43#define PORT_PB 0x61#define DDO 4554#define DRUI 4058#define DMI 3616#define DFA 3419#define DSO 3044#define DLA 2712#define DXI 2415#define DO 2281#define RUI 2033#define MI 1811#define FA 1709#define SO 1522#define LA 1356#define XI 1208#define GDO 1140#define GRUI 1015#define GMI 905#define GFA 854#define GSO 761#define GLA 678#define GXI 604void sing(unsigned int frq,unsigned int ms) {unsigned char value;union{unsigned int divisor;unsigned char d[2];}tone;if (frq!=0){tone.divisor=frq;outportb(CTRL_T,INIT_T2); outportb(PORT_T2,tone.d[0]); outportb(PORT_T2,tone.d[1]);value=inportb(PORT_PB); outportb(PORT_PB,(value|0x03));}delay(ms);outportb(PORT_PB,(value|0xfc)); }void main(){sing(DSO,400);sing(DLA,400);sing(DO,400);sing(RUI,400);sing(MI,600);sing(RUI,200);sing(RUI,400);sing(DO,400);sing(DLA,1600);sing(0,1600);sing(DSO,400);sing(DLA,400);sing(DO,400);sing(RUI,400);sing(MI,400);sing(SO,800);sing(RUI,2000);sing(0,2000);sing(RUI,800);sing(DSO,400);sing(RUI,400);sing(RUI,400);sing(MI,400);sing(RUI,400);sing(DO,1600);sing(0,2000);sing(RUI,400);sing(RUI,400);sing(RUI,400);sing(DSO,400);sing(DLA,400);sing(DO,400);sing(DLA,2000);sing(0,2000);sing(FA,800);sing(FA,400);sing(MI,400);sing(RUI,400);sing(DO,400);sing(0,2000); sing(RUI,400); sing(RUI,400); sing(RUI,400); sing(RUI,400); sing(DSO,400); sing(DLA,400); sing(DO,400); sing(DLA,2000); sing(0,2000); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(LA,2000); sing(0,2000); sing(LA,400); sing(LA,400); sing(LA,400); sing(GDO,400); sing(LA,400); sing(LA,400); sing(SO,2000); sing(0,2000); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(LA,400); sing(GDO,400); sing(LA,2000); sing(0,800); sing(SO,400); sing(LA,400); sing(GRUI,400); sing(GMI,2800); sing(GRUI,3200); sing(0,1600); sing(SO,400); sing(LA,400); sing(GDO,400); sing(GRUI,400); sing(GMI,600); sing(GRUI,200); sing(GRUI,400); sing(GDO,400); sing(LA,3200); sing(SO,400); sing(LA,400);sing(GRUI,400); sing(GMI,600); sing(GSO,600); sing(GRUI,3600); sing(0,400); sing(GRUI,400); sing(GRUI,400); sing(SO,400); sing(GRUI,400); sing(GRUI,400); sing(GMI,400); sing(GRUI,400); sing(GDO,3200); sing(0,400); sing(GRUI,400); sing(GRUI,400); sing(GRUI,400); sing(SO,400); sing(LA,400); sing(GDO,400); sing(LA,3600); sing(0,1600); sing(LA,3200); sing(0,400); sing(GFA,400); sing(GFA,400); sing(GFA,400); sing(GMI,400); sing(GRUI,400); sing(GDO,400); sing(GMI,400); sing(GRUI,1600); sing(0,1600); sing(0,400); sing(GFA,400); sing(GFA,400); sing(GLA,400); sing(GSO,400); sing(GFA,400); sing(GMI,400); sing(GRUI,2000); sing(0,2000); sing(GRUI,400); sing(GRUI,400); sing(SO,400); sing(GRUI,400); sing(GRUI,400); sing(GMI,400); sing(GRUI,400); sing(GDO,1600); sing(0,2000);sing(GRUI,400);sing(GRUI,400);sing(SO,400);sing(LA,400);sing(GDO,400);sing(LA,3600);}运行结果如下4、实验中遇到的问题一开始程序中的#define DDO 4554语句为#define 1DO 4554,程序运行时显示编译出错,我意识到1DO有可能不符合宏名定义要求,通过查阅有关资料后发现,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线,随后修改了程序。
微机原理课程设计音乐播放器
一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。
通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。
该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
通过课程设计环节来加强对所学知识的理解和应用。
二、课程设计相关知识2.1 定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。
缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。
本实验就采用了8254,其主要功能为:(1)每片上有3 个独立的16 位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6 种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达10MHz。
主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.2 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:8254的引脚(1)D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
音乐播放器课程设计
音乐播放器课程设计一、课程目标知识目标:1. 学生理解音乐播放器的基本组成结构与功能;2. 学生掌握音乐播放器界面设计的基本原则;3. 学生了解音乐播放器中音乐格式及播放原理。
技能目标:1. 学生能够运用所学的界面设计原则,设计出美观、实用的音乐播放器界面;2. 学生能够利用相关软件或编程语言,实现音乐播放器的基本功能,如播放、暂停、切换歌曲等;3. 学生能够通过小组合作,共同完成音乐播放器的制作,提高团队协作能力。
情感态度价值观目标:1. 学生培养对音乐艺术的热爱和欣赏能力;2. 学生养成积极探索、勇于创新的学习态度,增强解决问题的信心;3. 学生通过课程学习,认识到科技与艺术的结合,提高审美观念和人文素养。
课程性质:本课程以实践操作为主,结合理论讲解,培养学生的动手能力和创新思维。
学生特点:六年级学生对音乐有一定的兴趣和认知,具备一定的计算机操作能力,喜欢探索新事物。
教学要求:教师需关注学生的个体差异,提供个性化的指导,鼓励学生积极参与课堂讨论和实践活动,以达到课程目标。
在教学过程中,注重将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 音乐播放器的基本原理- 介绍音乐播放器的发展历程;- 讲解音乐播放器的硬件与软件组成;- 分析音乐播放器的工作原理。
2. 音乐播放器界面设计原则- 探讨界面设计的基本原则,如简洁、易用、美观等;- 分析优秀音乐播放器界面的设计特点;- 学习界面设计的基本工具和方法。
3. 音乐格式及播放器功能实现- 介绍常见的音乐格式,如mp3、wav等;- 讲解音乐播放器中解码、播放、音效处理等功能的实现方法;- 学习使用编程语言或软件实现音乐播放器的功能。
4. 实践操作:音乐播放器制作- 分组讨论,确定音乐播放器的主题和功能;- 设计并制作音乐播放器界面;- 编程实现音乐播放器的基本功能;- 测试、优化音乐播放器。
教学内容依据课程目标,结合教材,确保科学性和系统性。
51单片机毕业课程设计音乐播放器
51单片机毕业课程设计音乐播放器本文档旨在提供关于51单片机毕业课程设计的音乐播放器的详细内容。
音乐播放器是一种通过使用51单片机来实现的设备,它可以播放音乐文件并提供一些基本的控制功能。
设计概述功能要求音乐播放器的主要功能要求包括:1. 播放音乐文件:能够读取存储器中的音乐文件,并将其播放出来。
2. 控制功能:提供基本的控制功能,如播放、暂停、下一曲和音量调节等。
3. 显示功能:在显示屏上显示当前播放的音乐信息,如歌曲名、艺术家和播放进度等。
硬件组成音乐播放器的硬件组成包括:1. 51单片机:作为主控芯片,负责控制整个系统。
2. 存储器:用于存放音乐文件。
3. 音频模块:用于将数字音频信号转换为模拟音频信号输出。
4. 控制模块:包括按钮、旋钮等,用于用户控制音乐播放器的操作。
5. 显示屏:用于显示当前播放的音乐信息。
软件实现音乐播放器的软件实现包括以下几个方面:1. 文件系统:实现对存储器中音乐文件的读取和管理。
2. 音频解码:将读取的音乐文件进行解码,并将解码后的音频数据传递给音频模块输出。
3. 用户界面:通过用户界面与用户进行交互,接受用户的控制指令。
4. 显示管理:管理显示屏的内容,实时显示当前播放的音乐信息。
设计步骤1. 硬件搭建:按照硬件组成部分的描述,搭建音乐播放器的硬件平台。
2. 软件编写:实现音乐播放器的软件功能,包括文件系统、音频解码、用户界面和显示管理等。
3. 调试测试:进行软硬件的调试和测试,确保音乐播放器的各项功能正常运行。
4. 完善优化:在实际测试中发现问题,进一步完善和优化音乐播放器的功能和性能。
5. 文档撰写:完成毕业课程设计文档的撰写,详细描述音乐播放器的设计思路、实现过程和测试结果。
总结通过本文档,你可以了解到51单片机毕业课程设计音乐播放器的完整设计内容,包括设计概述、硬件组成、软件实现和设计步骤等方面的内容。
这将帮助你更好地理解音乐播放器的原理和实现方法,为你的毕业课程设计提供一定的参考和指导。
《微机原理与应用》课程设计-电子音乐播放器模板
电子音乐播放器一、课程设计的目的和意义学习和掌握计算机中常用接口电路的应用和设计技术,学会针对不同的要求设计汇编程序代码,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计要求利用8254作为音阶频率发生器,应先对至少两段音乐进行编码后存入音符表,并建立好音阶表,每段音符长度不能少于60个,每首连续播放3遍后,自动播放下一段音乐,几段音乐播完后,循环播放,直到有键盘输入任意字符时停止,并且使用8255作为控制开关的并行输入接口,输入开关选择的音乐控制信号。
三、设计总框图四、设计设计思路说明:电子音乐播放器属于接口电路的连接使用,本设计是以8254芯片为核心的发生系统。
8086CPU 在形成系统总线后,通过和8254及8255的连接使用可以很好的驱动扬声器发音。
系统初始化后,8255通过B 通道,从控制开关读取所需的控制字,并送入8086CPU 中进行判断,选择不同的播放音乐。
使8254的通过0号计数器工作在“频率发生器”方式3,向发生器发出不同频率的方波。
当给定不同的计数初值时可以使扬声器发出不同频率的音响。
五、程序流程图开始 读取音符频率是1H 吗? N 是2H 吗? N 是4H 吗? Y Y N 键盘是否输入? 结束播放song1 播放song2 播放song3 Y N Y播放音乐 读取选择信号 CX=0 N Y六、接口电路原理图1、8254的基本知识8254占用4个端口,3个定时器各占1个,控制端口占1 个。
8254的内部结构如图所示,它主要包括以下几个主要部分:8254的内部结构(1).数据总线缓冲器实现8254与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8254的控制信息、数据信息以及CPU从8254读取的状态信息,包括某时刻的实时计数值。
微机原理电子音乐课程设计
成绩:课程设计报告学院:题目:电子音乐专业:---------------班级:姓名:学号:指导教师:实验时间:电子音乐1.设计题目分析8254和8255是计算机中经常使用的两块芯片,在计算机中担负着相当重要的作用,8254 用作计数器,8255 可作为接口芯片。
这两块芯片可以通过汇编语言编程写入,改变它们的工作状态,实现某些特别的功能。
本课题是作为扬声器发声基准时钟,8254计数器0设置为工作方式3,用信号源1MHZ驱动扬声器产生音乐。
2.总体方案设计分析1、8254和 8255的连接。
(1)8254:计数器,用于产生一定频率的波形,是音频信号的来源。
其中芯片是否工作取决于其片选信号GATE0,输出的频率大小受控于编程时写入的计数器初值。
(2)8255:通用可编程并口芯片,这里用来做两个开关:一是用于控制与门,二是控制8254 的GATE0 引脚从而控制它的输出。
只有两个开关同时打开,扬声器才有可能发声。
(3)扬声器的驱动。
从结构图上可以看出,要使扬声器发出声音,需要满足以下几个条件:一是 8255 的 D0 和D1位必须置1,从而打开开关二是8254必须输出满足音频频率的波形。
只要通过对这两个芯片编程,控制其状态,使它们满足了这两个条件,扬声器就可以发声了。
2、系统中几个关键部分的实现。
(1)声音频率的变化。
声音频率的变化主要利用8254实现。
8254是在 PC/AT 以及以后系统中使用的一块可编程计数器。
该芯片包含3个独立但结构相同的计数电路,分别被称为0#、1#、2#计数器。
8254 占用 4 个地址,在 PC 机中的地址为40H~43H,其中 43H 对应 8254 的控制字,40H~42H 分别对应0#~3#计数器。
在 PC 机中,主要利用8254的2#计数器功能。
2#计数器是产生音频信号的关键器件,它的CLK0端为时钟输入信号,接入了 1MHz 的固定重复频率脉冲,在GATE0 端加入高电平且将 0#计数器设置为工作方式3,在 OUT0端口即可输出一定频率的方波,其频率为1MHz除以置入的计数分频初值。
音乐播放器课程设计
目录一、设计要求 (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跟地址线。
微机原理课程设计-音乐播放器
WAIT1: MOV CX,6 DELAY1:LOOP DELAY1
DEC BX JNZ WAIT1
;设循环次数 6 ;循环 BX 次,即传进来的节拍时间
POP POP POP POP POP RET SPEAKER
DI DX CX BX AX
ENDP
;恢复堆栈
;_______歌曲乐谱_____________
回顾起此次微机原理课程设计,至今我组成员仍感慨颇多。从理论到实践, 在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西, 同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过 的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论
知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结 论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在 设计的过程中遇到问题,可以说得是困难重重,这毕竟是我们第一次做硬件设计, 难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对 以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说 8255A 芯片的使用, PROTUES 软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后, 我们把以前所学过的知识又重新温故了一遍,起到了课程设计的预期效果。
MOV AL,10110110B OUT 46H,AL
;对计数器写控制字
MOV DX,00H MOV AX,5000 DIV DI OUT 44H,AL 8253 的通道 2 端口 MOV AL,AH OUT 44H,AL
;设置被除数 ;(DI)=频率,商→AL,余数→AH ;先送 LSB 最低有效位,44H 为
音乐播放器课程设计报告
目录一、设计任务要求 ................................................................................................ - 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首音乐。
c课程设计音乐播放器
c 课程设计音乐播放器一、教学目标本课程的目标是让学生掌握音乐播放器的制作原理和技巧,学会使用C语言进行程序设计,培养学生的编程能力和逻辑思维能力。
具体的学习目标包括:1.知识目标:学生需要了解音乐播放器的基本原理,掌握C语言的基本语法和数据结构,熟悉音乐文件的处理方法和音效控制技术。
2.技能目标:学生能够运用C语言编写音乐播放器程序,进行音频文件的播放、暂停、停止、跳转等操作,调整音量大小和音效效果,实现歌词同步和专辑封面显示等功能。
3.情感态度价值观目标:学生通过制作音乐播放器,培养对编程和音乐的兴趣,提高创新意识和团队合作能力,增强自信心和自我成就感。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.音乐播放器的基本原理:介绍音乐播放器的工作原理,包括音频解码、音量控制、音效处理等模块。
2.C语言基础知识:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生编写音乐播放器程序打下基础。
3.音乐文件处理:介绍音乐文件的常见格式和结构,讲解如何读取、解析和播放音乐文件。
4.音效控制技术:讲解如何在音乐播放器中实现音量调整、音效效果等功能。
5.歌词同步和专辑封面显示:介绍如何实现歌词同步播放和专辑封面显示功能,提高音乐播放器的用户体验。
6.音乐播放器程序设计:引导学生运用所学知识,分组设计和实现一个简单音乐播放器程序。
三、教学方法为了激发学生的学习兴趣和主动性,本课程采用以下教学方法:1.讲授法:讲解音乐播放器的基本原理、C语言基础知识、音乐文件处理方法等,为学生提供理论支持。
2.案例分析法:分析实际的音乐播放器案例,引导学生学会分析问题、解决问题,提高编程能力。
3.实验法:分组进行音乐播放器程序设计,让学生动手实践,培养学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享编程心得和解决问题的方法,促进团队合作和交流。
四、教学资源为了支持教学内容和教学方法的实施,本课程准备以下教学资源:1.教材:选用权威、实用的C语言编程教材,为学生提供系统的学习资料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.课程设计目的1.通过D/A装换器产生模拟信号,使PC机作为简易音乐播放器。
2.了解利用数模转换器产生音乐的基本方法。
二.课程设计任务设计并实现一个键控音乐播放器。
要求:(1)自己选用合适的芯片,不少于两种。
(2)自行设计电路并使用汇编语言编写程序完成键控音乐播放器功能。
(3)该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
三、总体设计方案1、总体设计方案一所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。
2、总体设计方案二可以使用0832(数模转换器)来产生频率,原理图:提出这个方案是因为我想产生模拟信号,来驱动扬声器,这样产生的声音更加圆润感觉更连续,效果更好点。
我们想把一个周期的波形分成32份,然后每份给8253一个值让他转换成模拟信号,不同的频率可以用8253计数器控制,比如要产生261Hz的频率,使用1MHz的话,周期就为1/261=3.83ms,分成32份,每份间隔时间就是3.83ms/32=0.12ms,换句话说就是送计数器0的初值为1M/261/32=120次。
3、各个音符的对应频率表:音符频率/HZ 半周期/us 音符频率/HZ 半周期/us低1DO 262 1908 #4FA# 740 0676#1DO# 277 1805 中5SO 784 0638低2RE 294 1700 #5SO# 831 0602#2RE# 311 1608 中6LA 880 0568低3M 330 1516 #6LA# 932 0536低4FA 349 1433 中7SI 988 0506#4FA# 370 1350 高1DO 1046 0478低5SO 392 1276 #DO# 1109 0451#5SO# 415 1205 高2RE 1175 0426低6LA 440 1136 #2RE# 1245 0402#6LA# 466 1072 高3M 1318 0372低7SI 494 1012 高4FA 1397 0358中1DO 523 0956 #4FA# 1480 0338#1DO# 554 0903 高5SO 1568 0319中2RE 578 0842 #5S0# 1661 0292#2RE# 622 0804 高6LA 1760 0284中3M 659 0759 #6LA# 1865 0268中4FA 698 0716 高7SI 1976 0253四.部分电路设计及功能解说1、频率发生电路使用8253产生音符频率。
8253采用方式3,产生方波信号,根据输入计数初值的不同产生不同频率的方波信号来驱动扬声器。
设某音符频率为fHz,而CLK脉冲是1MHz,则计数初值N=1M/f。
8253的控制端口为28BH,控制字为36H。
2、扬声器开关控制电路使用8255并行接口芯片来控制扬声器的开和关,PC0始终接低电平,PA0和8253的OUT0接在与门上,这样只有PA0=1时扬声器才有可能开通,否则不发声。
关闭的方法是,从PC口读入数据再从PA口输出;而开扬声器时只要在输出PA口数据前对数据进行一个取反操作就可以了。
五.硬件接线图六.软件设计流程图1、总流程图 输出说明是‘1’?开始读取按键是‘2’?是‘3’?是‘0’?结束NNNYY 选择无效播放曲3播放曲2播放曲1Y Y Y 程序总流程图2、音乐播放子程序流程图播音流程图七.程序段功能汇总1、MAIN程序MAIN程序是总程序,输出说明,等待用户按键并读取键值。
根据不同的按键选择调用播音子程序播放不同的歌曲。
2、PLAY子程序PLAY子程序是播音子程序,SI指向音节表中的频率,BP指向音节表中的时间。
从SI的指向的音节表中取一个频率,只要不是-1,即有效就再读取时间,然后计算计数初值送入计数器,产生各种频率。
开启扬声器,根据所取的时间调用若干次延时子程序。
这段时间扬声器就发出该频率的声音,延时结束,就关闭扬声器,调用音节之间的小延时程序。
最后修改SI和BP,指向下一个频率,重复上面的工作。
3、DELAY子程序和DELAY_OFF子程序两个都是子程序,采用空操作循环多次的方法,只是第二个延时时间较短,大概为5ms。
八.程序清单SSEG SEGMENT PARA STACK 'stack'dw 100h dup(0) ;Resize the stack by changing the number '100'SSEG ENDSDSEG SEGMENT;TO DO: Add your program's data hereINFO1 DB 0DH,0AH,'--------------------------',0DH,0AH,'THERE ARE 3 SONGS:',0DH,0AH,0DH,0AH,'$' INFO2 DB '1.HAPPY BIRTHDAY',0DH,0AH,'$'INFO3 DB '2.SHEEP',0DH,0AH,'$'INFO4 DB '3.RIVER',0DH,0AH,'$'INFO5 DB '0.EXIT',0DH,0AH,'$'INFO6 DB 'YOU HAVE CHOSEN :$'INFO7 DB 'THANK YOU FOR YOUR USE',0DH,0AH,'$'INFO8 DB '---------------------------',0DH,0AH,'PRESS THE KEY TO SELECT SONG!',0DH,0AH,'$' INFO9 DB 0DH,0AH,'-------------------',0DH,0AH,'|INVALIDSELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$'FREG1 DW 2 dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349 ;曲1的频率DW 330,294,466,266,440,349,392,349,-1TIME1 DW 1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4 ;曲1的时间FREG2 DW 330,294,262,294,3 DUP(330) ;曲2的频率DW 3 DUP(294),330,392,392DW 330,294,262,294,4 DUP(330)DW 294,294,330,294,262, -1TIME2 DW 6 DUP(1),2 ;曲2的时间DW 2 DUP(1,1,2)DW 12 DUP(1),4FREG3 DW 330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294 ;曲3的频率DW 262,262,220,196,220,262,294,332,262, -1TIME3 DW 3 DUP(2),1,1,2,1,1,4 ;曲3的时间DW 2 DUP(2,2,1,1),4DW 3 DUP(2,1,1,1),4DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG, ss:SSEGINIT PROC ;Initialize proceduremov ax, dsegmov ds, axmov es, ax;TO DO: Add your initialize code here (as your requirement)ret ;return to the MAIN procedureINIT ENDPMAIN PROC ;Here is your program entry pointcall INIT ;call the INIT procedure to initialize the program ;**TO DO: Add your main code here**RE: MOV DX,28BH ;关闭扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALLEA DX,INFO1 ;输出说明信息MOV AH,09HINT 21HLEA DX,INFO2INT 21HLEA DX,INFO3INT 21HLEA DX,INFO4INT 21HLEA DX,INFO5INT 21HLEA DX,INFO8INT 21HMOV AH,01H ;读取按键INT 21HCMP AL,'1' ;根据不同的按键播放不同的曲子JE MUSIC1CMP AL,'2'JE MUSIC2CMP AL,'3'JE MUSIC3CMP AL,'0'JE EXITLEA DX,INFO9 ;无效选择,输出错误提示MOV AH,09HINT 21HJMP REMUSIC1:MOV SI,OFFSET FREG1 ;指向曲1的表MOV BP,OFFSET TIME1CALL PLAYJMP REMUSIC2:MOV SI,OFFSET FREG2 ;指向曲2的表MOV BP,OFFSET TIME2CALL PLAYJMP REMUSIC3:MOV SI,OFFSET FREG3 ;指向曲3的表MOV BP,OFFSET TIME3CALL PLAYJMP REEXIT:MOV DX,28BH ;关闭扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALLEA DX,INFO7 ;输出欢迎使用信息,增加界面友好度MOV AH,09HINT 21Hmov ax, 4c00h ;The end of the program, return to the systemint 21hMAIN ENDP;TO DO: Add other procedures(PROC) here (as your requirement);THE PROGRAMME OF PLAYING THE MUSICPLAY PROC ;PLAY子程序,功能上面介绍过L1: MOV BX,DS:[SI] ;取频率CMP BX,-1 ;看是否有效JE L0 ;无效就退出MOV CX,DS:[BP] ;读取时间MOV DL,CL ;保存时间ADD DL,30HMOV AH,02HINT 21HMOV DX,0FH ;计算计数初值,1M的十六进制为0F4240H MOV AX,4240HDIV BXMOV BX,AXMOV DX,283H ;设置计数器工作方式MOV AL,36HOUT DX,ALMOV DX,280H ;输入计数初值MOV AX,BXOUT DX,ALMOV AL,AHOUT DX,ALMOV DX,28BH ;开扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXNOT ALMOV DX,288HOUT DX,ALROD:CALL DELAY ;延时LOOP RODMOV DX,28BH ;关扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALCALL DELAY_OFF ;音节间延时ADD SI,2ADD BP,2JMP L1L0: RETPLAY ENDPDELAY PROC ;延时子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV BX,09FHLL1:MOV CX,0FFFFH ;循环这么多次LOP: LOOP LOPDEC BXJNZ LL1POP DXPOP CXPOP BXPOP AXRETDELAY ENDPDELAY_OFF PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV BX,0FHLL2:MOV CX,0CFFFHLOP2: LOOP LOP2DEC BXJNZ LL2POP DXPOP CXPOP BXPOP AXRETDELAY_OFF ENDPCSEG ENDS;TO DO: Add other segments here (as your requirement) END MAIN九.试验结果和分析1、试验结果:程序初始运行界面如果按错了键,会出现如下界面如果选择正确,将出现如下界面:2、分析这是按照方案一做的结果,按1~3分别播放“生日快乐”等歌,但由于本组人对音乐都是外行,各音阶频率的排序和延时时间搭配不好,导致音乐严重走调,但基本能听出不是噪音。