1、 目录目录 摘要 . 1 绪论 . 2 1 设计思路 . 3 2 乐理知识 . 4 2.1 乐理知识简述 4 2.2 音符与频率的关系 4 3 设计原理 . 4 3.1 8259A 的功能 . 5 3.2 8253 的功能 . 6 3.3 发声原理 8 3.4 DOS 功能调用 11 3.4.1 1 号功能调用 11 3.4.2 2 号功能调用 11 3.4.3 9 号功能调用 12 3.4.4 10 号功能调用 . 12 3.4.5 16 号功能调用 . 13 3.5 子程序调用 . 14 4 程序 13 4.1 程序流程图 . 13 4.2 程序代码 . 14 4.3 程序的运行 . 20
2、 结束语 23 致谢 24 参考文献 24 1 摘要摘要 用计算机来解决实际问题,需要编写程序。程序是由指令组成的,一条条指令规定了计 算机究竟要执行什么样的操作,计算机只要按编写的顺序执行完程序中的指令,问题也就解 决了。 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制 硬件的语言。 本设计是基于汇编语言与接口技术的音乐盒设计。依据 PC 机系统发声的基本原理,制 作成多功能音乐盒。 该音乐盒主要实现的功能有: 1、程运行后首先在屏幕上显示出乐曲菜单,制作者姓名。 2、用键盘键 A、B、C 选择相应的乐曲。 3、输入错误时要有适当提示,并允许重新输入。 4、选择
3、 Q 键后可以正常退出程序。 5、允许中断。可以在没有听完整首歌曲时人为中断听下一首歌曲,或退出。 本设计利用 8255A、8253 的工作原理发声。用 masm、link 软件对音乐盒源程序进行调 试。 关键词:汇编语言 计算机接口技术 音乐盒 8253 8255A 2 绪论绪论 编写程序的语言有三种:高级语言,汇编语言和机器语言。机器语言是一种面向机器的 程序设计语言。指令系统是机器语言的基础,其指令是由 0 和 1 构成的二进制代码串,其编 写的程序可以被计算机直接识别,直接执行。一般说来,机器言程序的执行速度快,占用的 内存空间小。汇编又称为符号语言,实际上是一种符号化的机器语言。汇编
4、语言比机器语言 直观,容易记忆和理解,用汇编语言编写的程序也比机器语言程序易读、易检查、易修改。 汇编语言程序设计在微机应用中占有重要地位.一般来说,凡是在微机中涉及与硬件电路有关 的应用系统,如微机控制系统中的检测和控制部分,仪器仪表中的计算机控制和数据处理部分, 家用电器的计算机控制部分等,其应用程序部分都是用汇编语言来编写的。 在计算机系统中除了 CPU 以及基本硬件之外,还有各种外部设备,比如显示器、键盘、 打印机、磁盘驱动器、光盘驱动器等。这些外部设备需要与 CPU 进行大量的信息交换,根据 CPU 的要求进行各种操作。进行信息交换时,由于各种原因(比如电平、时序等的不同),这 些外
5、部设备不能与 CPU 直接相连,它们之间的信息交换必须经过一个中间电路,也就是接口 电路才能实现。 本设计是基于汇编基础上,利用接口电路中的 8253,8255 功能使电脑发声而设计的音 乐盒。 音乐盒的主要功能是,根据按键不同,而选择播放不同的歌曲,和退出等操作。 3 1 1 设计思路设计思路 PC 的扬声器驱动系统如图 1-1 所示。 图 1-1 PC 的扬声驱动系统 扬声器的发声是由输出寄存器(即 8255A 的 PB 口)的两位进行控制的。 输出寄存器的端口地址 为 61H。 扬声器发声最简单的方式:直接对端口 61H 的 D1 位交替输出 0 或 1 (同时 61H 的 D0 位清
6、0) , 使扬声器交替地通与断,推动扬声器发声。 由于扬声器总是随时可用的,因此 CPU 可用直接 I/O 方式对其进行操作。 8253 定时计数器的计数通道 2 用于提供系统的扬声器音频信号,但 8253 计数器通道 2 输出 的方波受 8255A PB0 输出高电平时才允许计数通道 2 的方波输出。该方波又与 PB1 相与后送 扬声器的驱动电路,去驱动扬声器发声。一般情况下,可让 PB0 输出高电平,通过对 8253 编程设置方波输出频率以控制发声频率。通过控制 8255A PB1 输出以控制发声时间。 8253 计数值的计算方法为: 计数值时钟频率音符频率(时钟频率1.19318 MHz1234DCH) 所以利用 8255 和 8253 来制作音乐盒,详细步骤见下面设计原理部分. 4 2 2 乐理知识乐理知识 2.1 2.1 乐理知识简述乐理知识简述 1 2 3 4 5 6 7 do re mi fa sol la si 七个音不都一样高,而是从左到右一个比一个高上去的,一这七个音为基础,在它们的上方 或下方加圆点来表明更