I前言汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。而此次的《微机原理与接口技术(基于16位机)》的课程设计正是利用这个学期所学的汇编语言来设计一个键盘钢琴的应用程序,要求该汇编语言程序能实现键盘钢琴的功能,就是在键盘上按下自定义的按键之后,可以从主板的蜂鸣器上发出一定频率的音调,而这些音调的频率都是相应音阶的特征频率,故发出的声正好就是音乐的各个音阶声调。通过这个应用程序,按照音乐的谱子连续地按下相应按键,就可以像钢琴那样发出音乐来,但是局限于扬声器的原因,所发出的音乐没有真正的钢琴那样美妙。但是现在的一些键盘钢琴的软件已经能驱动声卡,来获得更好更逼真的钢琴音乐效果了。II中文摘要采用16位微处理器8086CPU以及86系列微型计算机的指令系统;软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP,仿真设计平台为Proteus软件。设计汇编语言程序,实现键盘钢琴功能,具体功能要求如下:(1)在键盘上自定义若干键对应钢琴键;(2)单击钢琴键,计算机发出相应音阶,发声时间自定义;(3)单击”ESC”键退出程序。关键字:16位微处理器集成环境汇编语言键盘钢琴III目录1设计意义及要求..............................................................................................................11.1设计意义.............................................................................................................................11.2设计要求.............................................................................................................................12总体方案论证..................................................................................................................22.1按键与音调频率值的对应..................................................................................................22.2扬声器的驱动分析.............................................................................................................42.3发声时间............................................................................................................................53程序设计.......................................................................................................................63.1主程序设计及其流程图....................................................................................................63.2子程序设计及其流程图....................................................................................................73.2.1计算频率值的子程序FIFRE.......................................................................................73.2.2发声子程序SOUND...................................................................................................83.2.3延时子程序DELAY.........................................................................................................94结果分析.....................................................................................................................104.1程序调试与改进..............................................................................................................104.2结果记录及分析...............................................................................................................