- 27
- 0
- 约 10页
- 2015-07-22 发布于云南
- 举报
《汇编语言程序设计》
课程设计报告
题目: 模拟电子琴(音乐播放项目子程序)
指导老师:
学生姓名: 学 号:
专 业:
班 级:
2011年6月20日
程序设计任务:
1.1题目:模拟电子琴
1.2要求:设计一个可模拟发声的电子琴程序,并实现功能,附加显示。
(二) 课题背景:
2.1汇编语言的优点:
汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。
设计一个可模拟发声的电子琴程序,作为音乐播放项目的子程序。
2.3程序设计目的:
利用汇编功能实现一个小的电子琴程序,主要功能是根据键盘上的按键发出不同的音符,并记录播放每个音符。每个音符由它的音调和频率以及时间来决定。
运行环境:
硬件:8086以上CPU,内存256M以上。
软件:WINDOWS操作系统,MASM,LINK汇编编译链接件。
(四)程序概要设计:
4.1课程设计基础知识(附图):
8253A内部结构:
4.2程序设计思想:
音乐发声是根据频率和它的延时实现的,不同的音符有不同的频率和时间,根据任务要求先设计一个可视菜单,应用系统显示功能,设置一定的显示方式,在对每个音符1-8定义应有的频率和时间,插入发声子程序,利用DOS功能输入相应数字发出相应的音,整个程序利用栈来实现,这样就做成了一个简单的模拟电子琴程序。
1.系统概述
1.1系统方案综述
从系统实现的功能上来看,简易电子琴的课程设计主要分为手动弹奏乐曲和自动播放音乐两大部分组成。手动弹奏乐曲是根据PC机硬件键盘设置功能键并通过不同频率使其发出不同的声音就,即音阶,自动播放音乐则是通过中断的方法来实现。
从系统硬件结构上来看,我们主要使用到
从系统软件设计角度来看,将电子琴的课程设计采用程序模块化设计方法,将程序分为主程序、键盘扫描程序模块、中断发音程序模块等等。此外,采用程序设计思想,将中断定时方式与外部按键查询方式相结合,实现手动弹奏乐曲和自动播放音乐两部分的切换和启动。
从音乐产生原理方面来看,通过控制8253芯片定时器的定时时间产生不同频率的音频脉冲,从而驱动蜂鸣器发出不同音乐的声音。用软件延时来控制发音时间的长短,控制节拍。把音乐的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中,由程序查表得到定时常数和延时常数,分别用来控制8253定时器芯片产生的脉冲频率和发出该音频脉冲的持续时间。
因此,我们可以综合上述的方案设计原理,从软件和硬件两大部分进行有计划有步骤的系统分析和设计。
总设计图参见附件。
1.2系统设计思路
(1)手动弹奏乐曲和自动播放音乐用PC机键盘来实现。手动弹奏乐曲中PC机键盘的8个键分别设置不同的音符,同时用一个键作为中断控制程序的控制键,通过其可实现手动弹奏乐曲与播放音乐之间的切换。
(2)软件的设计主要包括PC机键盘扫描、音乐播放程序和手动弹奏程序。
此次程序设计主要分为两大块:手动弹奏乐曲程序和自动播放程序。两者之间用功能转换程序对其进行结合,并实现各功能的控制。
(四)程序设计流程图:
程序设计功能图:
原创力文档

文档评论(0)