1、微机应用系统 课程设计报告 题 目: 电子音乐播放器 专业班级: 电子信息科学与技术 1001 班 设计学生: 完成时间: 2012 年 6 月 27 日 评阅成绩 评阅教师 评阅时间 设计题目 电子音乐播放器 设 计 要 求 利用 8253 作为音阶频率发生器,应先对一段音乐进行编码后存入音符表, 并建好音阶表(只建一个八度即可) ,音符长度不能少于 60 个,连续播放三遍即 可停止。 设 计 思 路 系统以 8253 为核心。系统初始化时,8253 工作在“方波发生器”方式,初 值为二进制数,写入顺序为先低后高,经过简单滤波以后,送至扬声器。改变计 时器的初值就可以使扬声器发出不同频率的音
2、响。 设计程序时,数据段设置两张“表” 。一张是频率表,将与音符对应的频率 值依次写入表中,另一张是时间表,依次存放每个音符的单位时间。当然,频率 表和时间表的表项要一一对应,不能错位,频率表最后一个表项为 0,作为重复 演唱或停止演唱的标志。在接通扬声器的情况下,依次取出频率表中的频率值, 转换成计数初值写入计数器,依次取出时间表中的单位时间,然后再调用延时子 程序即可得到延时时间,也就是音符演奏时间。 通过给 8253 定时器装入不同的计数值,可以使其输出不同频率的波形,便 可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入 一段延时程序,之后再将扬声器即可。 MUSI
3、C 子程序是音乐子程序,SI 指向曲中的频率,BP 指向曲中的时间节拍。 从 SI 的指向的音节表中取一个频率,只要不是 0,即有效就再读取时间,然后调 用 SPEAKER 子程序,计算计数初值送入计数器,产生各种频率信号,再送至扬声 器,根据所取的时间调用若干次延时子程序。这段时间扬声器就发出该频率的声 音,延时结束,再修改 SI 和 BP,指向下一个频率,重复上面的工作。播放三次 音乐后自动停止。 各个音符的对应频率表: 音符 频率/HZ 半周期/us 音符 频率/HZ 半周期/us 低 1DO 262 1908 #4FA# 740 0676 #1DO# 277 1805 中 5SO 78
4、4 0638 低 2RE 294 1700 #5SO# 831 0602 #2RE# 311 1608 中 6LA 880 0568 低 3MI 330 1516 #6LA# 932 0536 低 4FA 349 1433 中 7SI 988 0506 #4FA# 370 1350 高 1DO 1046 0478 低 5SO 392 1276 #1DO# 1109 0451 #5SO# 415 1205 高 2RE 1175 0426 低 6LA 440 1136 #2RE# 1245 0402 #6LA# 466 1072 高 3MI 1318 0372 低 7SI 494 1012 高 4
5、FA 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 中 3MI 659 0759 #6LA# 1865 0268 中 4FA 698 0716 高 7SI 1976 0253 硬件连接: 定时/计数器 8253A 芯片模块的 CLK2 接 CLK4,提供频率 375000HZ。 定时/计数器 8253A 芯片模块的 GATE2 接5V,提供高电平。 定时/计数器 8253A 芯片模块的 CS 接 CS0。 定时/计数器 8253A 芯片模块的 OUT2 接喇叭的输入端,喇叭的输出端接低电 平。 系 统 设 计 原 理 图 程 序 流 程 图 调用 MUSIC 子程序 取各音符频率设置 取各音符时间设置 读取频率 频率=0 Y N 开始 调用 SPEAKER 程序 读取时间节拍 TIME 计算机计数次数 送计算 器,产生频率信号,再送 至扬声器发出声音 延时 结束 源程序: CODE SEGMENT ASSUME CS:CODE ORG 100H ;首地址 START:MOV CX,3 ;设置歌曲重复播放次数 LOOP $ MUSI