课程设计用计算机演奏音乐,汇编课程设计-音乐演奏程序设计.doc

汇编课程设计-音乐演奏程序设计

目 录

一 概述2

二 总体方案设计4

三 详细设计8

四 程序的调试与运行结果说明13

五 课程设计总结14

参考文献15

一 概述

汇编语言是计算机能够提供给用户使用的最快而有效的语言,也是能够利用计算机所有特性并能直接控制硬件的唯一语言。借助于汇编程序,计算机本身可以自动地把 汇编源程序翻译成用机器语言表示的目的程序,从而实现了程序设计工作的部分自动化。

1课程设计的目的

掌握一些程序设计的基本方法,要指导主程序,子程序以及推栈段的使用,.了解通用发声程序.了解与掌握定时.计数.音乐.频率.时间之间的关系,学会用发声程序的设计方法,学会用汇编语言编辑音乐程序.

2课程设计的要求

1、需要的基本知识与技能。

具备汇编语言设计、编写、调试和运行程序的方法和技巧。在PC机上运行汇编程序需要经过以下几个阶段:

编辑源程序。利用文本编辑工具编辑源程序,生成一个汇编语言的纯文本文件。文件的扩展名为.ASM

汇编源程序。用汇编器汇编源程序生成目标代码文件,目标代码文件的扩展名是.OBJ,汇编器还可以生成列表文件和交叉参考文件。汇编器相当于高级语言中的编译器。汇编语言按照汇编语言的语法检查源程序,如果源程序语法有错误,汇编器就不生成目标代码文件,这时,必须重新编辑源程序,修改语法错误。当发现源程序有的行含有不确定因素,汇编器会给出警告信,但按却省处理方法生成目标代码文件。此时,可以重新编辑源程序,消去不确定因素。

连接目标程序。利用连接器连接目标代码程序和库函数代码生成可执行程序文件。一般单个模块的连接可以顺利地生成可执行程序文件。当多个模块连接,或者库函数连接时,如果在目标代码中找不到所需的连接信息,连接器就会发生错误提示信息,而不是生成可执行文件。这时,这就要重新编辑源程序,并汇编程序。

调试可执行程序。程序的动态调试是在形成可执行文件后,针对可执行程序进行的。DEBUG是简单的动态调试工具,利用调试工具动态的调试程序,找出程序中的问题,那么就要重新编辑,汇编源程序。

2、尚未掌握的知识点。

有时在程序中定义了较多的 宏,或者可以把自己编译中常用的宏定义建立一个独立的文件,这个只包含若干定义宏文件的文件可称为宏库,通常用扩展名MAC或INC来表示。当应用程序中需要用到宏库中的宏定义时,只需要用语句说明。

有时汇编语言程序需要连续重复地完成相同或者几乎完全相同的一组代码,这时,可使用重复汇编。汇编程序把重复模块代码重复几次,每次重复把重复块中的哑元用自变量表中的一项取代,下一次取代一次,重复次数由自变量表中的自变量个数来确定。条件汇编中,汇编程序能够根据条件把一段源程序或者把它排去在外,这里用到条件伪操作。条件伪操作可以用在宏定义体内,也可以用在宏定义体外,并且可以嵌套任意次。

模块化程序设计方法是按照各部分程序所实现的不同功能把程序划分成为多个模板。各个模板在明确各自的功能和相互间的约定后,就可以编制和调试程序,最后把它们连接起来形成一个大程序,子程序结构是模块化程序设计的基础。子程序相当于高级语言中的过程和函数。在一个程序的不同部分,往往就要用到类似的程序段,这写程序段的功能个结构形式都相同,只是有的变量赋值不同,此时就可以把这些程序写成子程序形式,以便需要时调拥它。

计算机中有一个可编程时间间隔定时器8253/54,它能根据程序提供的计数值和工作模式,产生各种计数/定时脉冲,提供给系统的各个部分使用。先要设定控制字,以选择计数器,确定工作模式和计数的值。每个计数器由3个外引腿与外部联系,在对任一个计数妻编程时,首先将控制字节写入控制寄存器。控制字的作用是告诉8253/54选择那一个计数器工作,要求输入什么样的脉冲波形。另外对其初始化工作好包括,向选定计数器送一个初值。PC机上的大多数I/O都是主板的8255的可编程外围接口芯便管理的,PPI包括三个8位寄存器,两个用于输入功能,一个用于输出功能。利用CPU产生延迟时间是最常用的方法,但是对于不同的计算机,它们产生的延迟时间都是不一样的。

组成乐曲的每个音符的频率和持续时间是乐曲程序发声所需要的两个数据。音符的持续时间是根据乐曲的速度及每个音符的节拍来确定的。在4/4中,四分音符为一拍,每小节四拍,全音符持续四拍,四分音符持续一拍,八分音符持续半拍等。

3、教师对本题目所提出的要求等。

(1)重视实验方案设计 

(2)认真作好实验准备

(3)仔细观测实验现象,如实记录实验数据

(4)分析故障原因,精心排除故障

二 总体方案设计

主程序流程图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值