课程设计任务书
学生姓名: 刘沛 专业班级: 电气0901 指导教师: 张 锐 工作单位: 自动化学院 题 目: 计算机电子琴软件软件设计 初始条件:
1.用于调试程序的IBM兼容PC机一台;
2.安装DOS/WIN98操作系统或运行于DOS/ WIN98兼容方式;
3. EDIT 等文本编辑器输入80x86汇编程序,MASM 5.0编译及链接程序。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体
要求)
1.使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹奏功或演奏。其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。 2.说明书撰写格式应符合《课程设计说明书统一书写格式》。 时间安排:
1.程序框图设计,3天 2.编程,4天 3.调试,3天 4.编写设计报告,4天
指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日
目录
摘要································································I 1 设计任务和思路····················································1 1.1设计任务······················································1 1.2设计思路······················································1 2更件部分工作原理··················································2 2.1 8255工作原理·················································2 2.2 8253工作原理·················································2 3程序流程图························································4 3.1主程序流程图··················································4 3.2演奏子程序流程················································5 3.3音乐播放子程序流程············································6 3.4弹奏子程序流程图··············································6 3.5发音子程序流程图 ·············································7 4各部分功能实现说明················································7 4.1 发音部分功能实现··············································7 4.2 变调功能的实现················································8 4.3 弹奏功能的实现················································8 4.4演奏功能的实现················································9 4.4.1歌曲选择功能实现········································9 4.4.2 音乐播放功能实现········································9 5 程序运行结果·····················································10 结束语·····························································12 参考文献···························································13 附录 程序清单······················································14 成绩评定表·························································19
武汉理工大学《微机原理与接口技术》课程设计说明书
摘要
汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。利用汇编语言能够直接访问与硬件相关的存储器或I/O端口,从而最大限度地发挥硬件的功能。本文主要介绍了利用汇编语言设计一个运行于计算机的电子琴软件,软件能够实现弹奏,演奏的功能,当按下弹奏键时,实现弹奏功能,发出音符对应频率的声音,按下演奏键时,实现演奏功能,播放预存的音乐,按下指定的音调选择按键后,选择低音,中音或高音,则分别用低音,中音或高音进行弹奏或演奏。首先介绍了PC机内扬声器的控制电路,接着介绍了相关接口芯片8255和8253的内部结构和工作原理,接着讲述了各部分功能的具体实现方法。
关键词:汇编语言,8255,8253,扬声器
Ⅰ
武汉理工大学《微机原理与接口技术》课程设计说明书
计算机电子琴软件设计
1 设计任务和思路
1.1设计任务
使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹奏功能或演奏功能。其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。软件预想功能为:按数字1-8为弹奏功能;按字母p为演奏功能;按d选择低音,按z选择中意,按g选择高音。
1.2设计思路
电子琴的设计实际上就是要设计一个程序,能够通过该程序控制
PC机内扬
声器的发声规律,按下相应的按键后,扬声器能发出指定频率的声音。PC机内的扬声器是通过并行接口芯片8255和定时芯片8253来控制发音的,其电路连接方式如下图所示。
8255A PB1 PB0 1.19318MHZ CLK2 8253 GATE2 OUT2 & 图1 PC机内扬声器控制电路
扬声器
由图可知,扬声器是由8253通道2产生的方波信号和8255的PB1 相与后驱动发声的,且通道2的门信号由8255的PB0提供,要想让扬声器发声,PB0和PB1必须同时为高电平,因此,可以通过对8255的PB0和PB1的设置来控制扬声器的开通和关断,而其发音频率可以通过对8253通道2的计数初值的设置来控制。所设计程序的任务就是要通过对按键的判断来设置8255的PB0和PB1输出电平的高低,以及8253通道2计数初值的设置。计数初值N=时钟频率/音阶频率.各音阶的频率如下表所示。
表1 各音符频率表 音符 1 2 3 4 5 6 7 频率(低) 131 147 165 175 196 220 247 频率(中) 262 294 330 349 392 440 494 频率(高) 524 588 660 698 784 880 988
1
武汉理工大学《微机原理与接口技术》课程设计说明书
2硬件部分工作原理
2.1 8255工作原理
8255的内部结构图如图2所示,它有3个数据端口,分为两组,A组由A口和C口高四位组成,B组由B口和C口低四位组成。其方式控制字如图3所示。
图2 8255内部结构图
D7 D6 D5 D4 D3 D2 D1 D0 1 方式控制字的B组 A组工作方式 特征位 工作方式 0 0——方式0 0——方式0 0 1——方式1 1——方式1 1 ?——方式2 A口 PC7?PC4 B口 PC3?PC0 输入/输出 输入/输出 输入/输出 输入/输出 1——输入 1——输入 1——输入 1——输入 0——输出 0——输出 0——输出 0——输出 图3 8255方式控制字
PC机内8255的A口,B口,C口和控制口的端口地址分别为:60H,61H,62H,63H。
2.2 8253工作原理
8253芯片中有3个计数通道,称为通道0,1,2,它们与外部电路相连的信号
2