模拟音乐播放器
- 格式:doc
- 大小:992.00 KB
- 文档页数:34
课程设计任务书2009 ~2010学年第一学期一、课程设计题目:模拟音乐播放器二、课程设计内容用PC机或实验箱提供的8253、喇叭等做一个音乐播放器。
事先将至少两段音频编码编入程序中,可以通过菜单或者键盘选择要播放的音乐片段。
三、进度安排1.学习掌握计算机控制扬声器进行音乐演奏的原理及电路结构,学习音乐演奏的编程方法(1.18—1.19)2.动手编程并调试(1.20---1.25)3.编写编写课程设计报告。
(1.26-1.27)4、课程设计答辩。
(1.28)四、基本要求1、完成设计要求的功能,可用键盘选择乐曲,让喇叭按节奏放出连续音乐2、提交合格的课程设计报告课程负责人签名:年月日课程设计分工安排项目设计成绩评定表模拟音乐播放器摘要利用DVCC实验箱提供的8253定时器、8255并行接口、喇叭以及8259中断,实现音乐播放功能,并能自主选择播放歌曲。
所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关与曲目的选择,用8259实现播放曲目的切换,达到播放音乐的功能。
关键词:DVCC 8253定时器 8255并行接口 8259中断喇叭音乐播放Analog music playerABSTRACTExperiments using DVCC provided by the 8253 box timer, 8255 parallel port, speaker and 8259 disrupted the music playback function, and can choose play songs. All music is from various different frequencies of scale and the length of its duration to achieve. Different music is arranged by the various scales according to a certain period of time to form their own players, there will be various musical scales and their duration of existence of the data segment, and then choose different according to different key values of scale and timetable, and then use the counter generate the scale frequency. We learned there are counters to generate a variety of frequencies, so we mainly produce various musical notes used counter 8253, with 8255 parallel interface to control the speaker of the switch with the choice of tracks, playing tracks by 8259 to achieve the switching function to play music .Key words:DVCC 8253 8255 8259 Internal Speaker music目录摘要 (I)ABSTRACT (II)1 项目概述 (8)1.1设计内容 (8)1.2设计思路 (8)1.3关键技术分析 (9)2 重要基础知识 (10)2.1定时器/计数器8253 (10)2.1.1 8253基本功能 (10)2.1.2 8253内部结构 (10)2.1.3 8253引脚分析 (11)2.1.4 8253控制字 (12)2.1.5 8253工作方式 (12)2.2并行接口8255A (13)2.2.1 8255A内部结构 (13)2.2.2 8255A引脚分析 (14)2.2.3 8255A工作方式 (15)2.2.4 8255A控制字 (15)2.3中断控制器8259A (16)2.3.1 8259A内部结构 (16)2.3.2 8259A中断向量表 (16)2.3.3 8259A控制字 (17)3 项目总设计 (19)3.1硬件设计 (19)3.2软件设计 (22)3.2.1 总程序设计 (22)3.2.2 自主选歌程序设计 (23)3.2.2 音乐播放功能程序设计 (24)参考文献 (25)心得体会 (26)附录1:答辩记录表 (27)附录2:系统程序代码 (28)附录3:音符频率表 (34)1 项目概述1.1设计内容利用PC机与DVCC实验箱提供的8253、8255、8259、喇叭等做一个音乐播放器。
事先将至少两段音频编码编入程序中,可以通过按键或中断选择要播放的音乐。
所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关与曲目的选择,用8259实现播放曲目的切换,达到播放音乐的功能。
1.2设计思路1.发声系统发声系统以8253的2号计数器为核心,系统初始化时,2号计数器工作在‘方波发生器’方式,改变计数初值,OUT2输出的方波就可使扬声器发出不同频率的音响。
2.演奏单音符一个音符对应一个频率,将与一个频率对应的计数初值写入2号计数器,扬声器就发出相应的音调。
3.控制音符的演奏时间音符的演奏时间即节拍,节拍不同,每个音符演奏时间也不同。
可为每个音符规定一个单位时间和一个调试参数N,单位时间*N=音符的演唱时间,改变N就可控制音符的演奏时间了。
4.曲目的自主选择利用8255并行接口来控制扬声器的开关与曲目的选择,利用8259实现播放曲目的切换。
1.3关键技术分析1.音符的设定每个音符有两个参数,一个是音阶,一个是音高。
需要确定每个音符的音阶和音高值。
2.设置两个音乐文件可以事先将每个音乐文件的音阶和音高放在一个数据表里面,在程序运行的时候因此从中读取数据就可以了。
3.声音的输出本项目在DVCC实验箱上通过8086控制8253输出不同的频率,然后将生成的频率信号输出到喇叭的输入口,再设定其延续的时间,即可生成不同的乐音片段。
4.音频的生成根据音乐符号的不同,需要生成不同的频率。
根据需要设定要计时器/控制器的作用。
5.曲目的自主选择根据8255与8259实现自主选择播放的歌曲。
8255连接按键,如果该按键输入高电平,则播放改按键对应的曲目或关闭扬声器;8259利用边沿触发方式,产生一次中断则切换播放曲目。
2 重要基础知识2.1定时器/计数器82532.1.1 8253基本功能●具有三个相互独立的16位计数器通道●每个通道都可设定以6种工作方式之一进行计数/定时●每个计数器都可设为按二进制或BCD码计数●具有计数和定时功能,基于减1计数工作●定时器减为0后,可自动装入定时常数初值,并产生输出信号●在减1操作中,任何时刻计数器的值都可由CPU经计数输出寄存器读取2.1.2 8253内部结构●整体内部结构如下图:图2.1 825整体内部结构● 各计数器的内部结构如下图:图2.2 8253整体内部结构2.1.3 8253引脚分析● 8253引脚分布如下图所示:图2.3 8253引脚分布● 8253与CPU 的接口: 1. 8 位数据线:D0 ~ D7 2. 寻址控制线:A0、A0、/CS数据线控制线电源线87 6 5 4 3 2 1 22 23 19 20 21 24 12Intel 82539 11 10 15 14 13 18 16 17CLK 0GA TE 0 OUT 0CLK 1GA TE 1OUT 1CLK 2GA TE 2 OUT 2计数器0 计数器1计数器23.读写控制线:/RD、/WR8253与外设的接口:注: 三个独立的计数器/定时器1.时钟输入:CLK2.输入门控:GATE3.波形输出:OUT2.1.4 8253控制字8253控制字如下图所示:图2.4 8253控制字2.1.5 8253工作方式1.方式0:计数结束产生中断方式当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
2.方式1:可编程单次脉冲方式当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
3.方式2:频率发生器方式当初值装入时,OUT变为高;计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数周期。
4.方式3:方波发生器当装入初值后,在GATE上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT输出低电平。
2.2并行接口8255A2.2.1 8255A内部结构8255A内部结构如下图所示:图2.5 8255A内部结构2.2.2 8255A引脚分析8255A的引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。
1.面向CPU的引脚信号及功能•D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;•RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;•CS:片选,输入,用来决定芯片是否被选中;•RD:读信号,输入,控制8255A将数据或状态信息送给CPU;•WR:写信号,输入,控制CPU将数据或控制信息送到8255A;•A1,A O:内部口地址的选择,输入。
这两个引脚上的信号组合决定对 8255A内部的哪一个口或寄存器进行操作。
8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。
•CS,RD,WR,A1,A0这几个信号的组合决定了8255A的所有具体操作:表2-1 8255A的操作功能表2.面向外设的引脚信号及功能•PA0~PA7:A组数据信号,用来连接外设;•PB0~PB7:B组数据信号,用来连接外设;•PC0~PC7:C组数据信号,用来连接外设或者作为控制信号。