电子乐曲的播放设计剖析

上传人:枫** 文档编号:508085888 上传时间:2023-05-30 格式:DOCX 页数:28 大小:245.72KB
返回 下载 相关 举报
电子乐曲的播放设计剖析_第1页
第1页 / 共28页
电子乐曲的播放设计剖析_第2页
第2页 / 共28页
电子乐曲的播放设计剖析_第3页
第3页 / 共28页
电子乐曲的播放设计剖析_第4页
第4页 / 共28页
电子乐曲的播放设计剖析_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《电子乐曲的播放设计剖析》由会员分享,可在线阅读,更多相关《电子乐曲的播放设计剖析(28页珍藏版)》请在金锄头文库上搜索。

1、目录摘要 21 任务分析 31.1任务要求 31.2 任务分析 31.2.1 PC机扬声系统原理 31.2.2 8253的基本知识31.2.3 乐曲演奏原理82 设计方案 103 设计实现 124 程序调试过程 23结束语 26参考文献 27附录 28摘要近几十年来,从结构复杂、功能简单、运算速度慢、只有专家才会使用的 电子管计算机到到集成数百万晶体管、功能强大、价格便宜、普及到千万家的 微型计算机,计算机科学飞速发展。尽管计算机发展迅速,但基本原理没有改 变,计算机体系结构上还是遵循冯诺依曼的思想。汇编语言是计算机能够提供给用户使用的最快而有效的语言,也是能够利 用计算机所有特性并能直接控制

2、硬件的唯一语言。借助于汇编程序,计算机本 身可以自动地把 汇编源程序翻译成用机器语言表示的目的程序,从而实现了程 序设计工作的部分自动化。本课程设计是以8086微处理机、8253、8255A等芯片为核心,通过汇编语 言实现在PC喇叭上播放一段音乐。关键词 :微机原理、汇编语言、电子乐曲播放电子乐曲的播放设计1 任务分析1.1 任务要求使用汇编语言设计一个在计算机上运行的音乐演奏程序,按大写字母“A”,演奏乐曲1;按大写字母“ B,演奏乐曲2;按大写字母“ C,演 奏乐曲3;按“Q键,退出。1.2 任务分析分析该任务,主要解决两个问题,一是 PC机扬声器发声,演奏一段音乐;二是通过分支结构实现不

3、同乐曲的选择。1.2.1 PC机扬声系统原理PC机扬声系统原理为:它以计数器 8253为核心,编程使其工作在方式 3(方波发生器),输出端 out 经过滤波之后送至扬声器,改变计数初值 就可以使扬声器发出不同频率的声音。1.2.2 8253 的基本知识在微机及控制系统中,经常要用到定时信号。如系统的日历时钟,动态 存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询 等。定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU执行延迟子程序的时间就是定时时间。缺点:执行延迟时,CPU直被占用,降低了 CPU的效率。硬件定时:用计数器 / 定时器作为主要硬件,在软件

4、简单指令的控制下 产生精确的时间延迟。突出优点为计数时不占用CPU时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU效率。作为定时器可用8253或者8254,二者功能基本相同,只是工作的最高频率不一样。本实验就采用了 8253-5,其主要功能为:(1) 每片上有3个独立的16位的减计数器通道。(2) 对于每个计数器,都可以单独作为定时器或计数器使用,并且都可 以按照二进制或十进制来计数。(3) 每个通道都有6种工作方式,都可以通过程序设置或改变。(4) 每个计数器的速率可高达5MHz主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数 通道 0#、1#、2#:内部

5、结构如下图1:Dt * DoRn 五一Ao Al 读/写逻辑控制宇寄存器1图1内部结构內毂据星8253外部引脚:8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。8253芯片的24个引脚分为两组,一组面向 CPU另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下图2:数据线彳DoBi *Ds * Ds * D6-*-*Dt 控制蠟更一 WR A oA.l CS *电源Vcc 地一.日TH 212223器2124121 543 067911 111 1114CLKD GATZO oirroCLK1 GATE10UT1CLK2 *GATE2 0UT2计数器号计数器1

6、号计数器2号图2 8253的引脚(1) D7D0双向、三态数据线引脚,与系统的数据线连接,传送控 制、数据及状态信息。(2) RD来自于CPU勺读控制信号输入引脚,低电平有效。(3) WR来自于CPU勺写控制信号输入引脚,低电平有效。(4) CS芯片选择信号输入引脚,低电平有效。(5) A1、A0:地址信号输入引脚,用以选择 8253芯片的通道及控制字 寄存器。(6) VCC及 GND +5V电源及接地引脚。(7) CLKi: i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,力卩 在CLK引脚的输入时钟信号的频率不得高于 2.6MHZ即时钟周期不能小于 380ns。(8) GATE

7、i: i=0,1,2,第i个通道的门控信号输入引脚,门控信号的 作用与通道的工作方式有关。(9) OUTi : i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信 号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或 作为向CPU发出的中断请求信号。8253端口地址如图3:/CS/RTAVRA1A2寄存器选择与操作01000写入计数器純01001写入计数器#101010写入计数器您01011肓入控制寄存器0g100读计数器#000101读计数器粗00110復计数器魏001q无按作f二态)1冥XXX票止1三态J011XX无操作(二态)图3 8253 端口地址x 11力式3

8、100右式4101右式58253控制字如图4:00计数器锁存命令一 01只读冯低呂位,高呂位自动置D一 1Q只读肯高呂位低余位自动置0一 11先写低3位,后写高3位图4 8253控制字说明:(1) 8253每个通道对输入CLK按二进制或二十进制从预置值开始减 1 计数,减到o时从OUT俞出一个信号。8253编程时先写控制字,再写时间常数。8253工作方式:(1)方式0:计数结束产生中断方式当写入控制字后,OUT变为低电平,当写入初值后立即开始计数, 当计数结束时,变成高电平。(2) 方式 1:可编程单次脉冲方式当初值装入后且GATES低变高时,OUT变为低电平,计数结束变 为高电平。(3) 方

9、式 2:频率发生器方式当初值装入时,OUT变为高;计数结束,OUT变为低。该方式下如 果计数未结束,但GATE为低时,立即停止计数,强制 OUT变高,当GATE? 变高时,便启动一次新的计数周期。(4) 方式 3:方波发生器当装入初值后,在GATEh升沿启动计数,OUT输出高电平; 当计 数完成一半时,OUT输出低电平。方式3与方式2的工作方式类似,也是在 初始化完成后能重复循环计数,只是输出的波形不同。(5) 方式 4:软件出发选通方式进入工作方式4, OUTi输出高电平。 装入计数值n后,如果GATE 为高电平,则立即开始减“ 1”计数,直到计数值减到“ 0”为止,OUTi输 出宽度为一个

10、CLKi周期的负脉冲。由软件装入的计数值只有一次有效,如 果要继续操作,必须重新置入计数初值n。如果在操作的过程中,GATE变 为无效,则停止减“1”计数,到GATE?次有效时,重新从初值开始减 “1”计数。(6) 方式 5:硬件触发方式计数进入工作方式5,OUTi输出高电平, 硬件触发信号由GATE端引 入。因此,开始时GAT前输入为0,装入计数初值n后,减“1”计数并 不工作,一定要等到硬件触发信号由 GATES引入一个正阶跃信号,减“ 1” 计数才会开始,待计数值计到“ 0”, OUTi 将输出负脉冲,其宽度固定为 一个 CLKi 周期,表示定时时间到或计数次数到。1.2.3 乐曲演奏原

11、理所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。不 同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶 和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间 表,再使用计数器产生该音阶频率。设计程序时,数据段设这两张 “表”,一张是频率表,将与音符对应 的频率值依次写入表中,另一张是时间表,依次存放每个音符的演奏时间。 当然频率表项和时间表项要一一对应,不能错位,频率表的最后一个表项为 -1 ,作为重复演唱或者停止演唱的标志。在接通扬声器的情况下,依次取出 频率表中的频率值,转换成计数初值写入 2 号计数器,然后取出时间表中音 符的演奏时间。CPU通过

12、对定时器的通道2 (端口地址为42H进行编程,使其I/O寄 存器接收一个控制声音频率的16位计数值,端口 61H的最低位控制通道2 门控的开断。以产生特殊的音响。对于不同频率时,定时器的计数初值可 算出来:N=41A1C0FH 频率在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对 哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节, 是二进制码还是BCD码。其位组合的格式如下:当通道 2 用于发声时,采用的是方式 3,在方式 3下,输出线为“ 1” 和为“ 0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。 产生指定频率声音的程序段如下:MOV AL ,

13、0B6HOUT 43H , AL; 43H为8254的控制字端口MOV DX , 41HDIV DIMOV AX , 0A1C0HDI ) =频率OUT 42H , AL; 42H为 8254 的通道 2 端口MOV AL , AHOUT 42H , AL从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。送到扬声 器的信号还受到了从并行接口芯片 8255 (端口地址为61H)来的双重控制, 端口 61H的最低位控制通道2的门控开断,以产生特殊的音频信号,端口 61H的PB0位和定时器的输出信号同时作为与门的输入,PB0位可由程序决定 为0还是为1。当PB0是 1时,才能使扬声器发出声音。控

14、制音长的时间可 以简单地通过反复执行指令来得到。由 17(N-1)+5+4*T=0.01 和 8086主频 4.76MHz可计算出执行2801次LOOP旨令约需要10ms的时间。因此用10ms 的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长了。实现程序 如下:IN AL , 61HMOV AH , ALOR AL , 1OUT 61H , AL ; 开扬声器WAIT: MOV CX, 2801DELAY: LOOP DELAYDEC BXJNZ WAITMOV AL , AHOUT 61H, AL ; 关扬声器2设计方案图5主程序流程图MUSIC子程序流程图如图6:图6MUSIC子程序流程图MUSIC子程序:MUSIC子程序是播音子程序,SI指向音节表中的频率,BP 指向音节表中的时间。从SI的指向的音节表中取一个频率,只要不是-1,即有 效就再读取时间,然后计算计数初值送入计数器,产生各种频率。开启扬声 器,根据所取的时间调用若干次延时子程序。这段时间扬声器

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号