当前位置:首页 > 汇编程序课程设计报告乐曲程序的设计与实现-武汉理工
武汉理工大学《IBM-PC汇编语言程序设计课程设计》
学 号:
课 程 设 计
题 目 学 院 专 业 班 级 姓 名 指导教师
乐曲程序的设计与实现 计算机科学与技术学院 计算机科学与技术专业
2010 年 1 月 15 日
武汉理工大学《IBM-PC汇编语言程序设计课程设计》
课程设计任务书
学生姓名: 专业班级:计算机科学与技术 指导教师: 工作单位:计算机科学与技术学院 题目: 乐曲程序的设计与实现 初始条件:
理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的
理解,已掌握了汇编语言程序设计的基本方法和技巧。
实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了
汇编语言程序的调试方法。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体
要求)
进一步理解和掌握程序直接控制I/O方式,掌握计算机发声程序的设计。具体的设计任务及要求:
1.采用位触发方式编写程序,使计算机发出音响并奏出《两只老虎》的乐曲。
1) 通过查阅相关资料,进一步理解程序直接控制I/O方式和位触发方式控制声音的工作
原理。
2) 一首乐曲是由不同频率和节拍的音调组成,因此控制脉冲的频率和持续时间是编写乐
曲程序的关键。根据已知的音符频率对照表,给出乐曲的频率表;设二分音符持续时间为0.5秒(50*10ms),50作为2拍的计数值,给出乐曲的节拍时间表; 3) 编写程序并调试通过。
2.进一步学习利用定时器产生声音的方法,使计算机奏出乐曲(例如《两只老虎》等)。
在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。
阅读资料: 1)《IBM—PC汇编语言程序设计实验教程》3.1节 2)《IBM—PC汇编语言程序设计(第2版)》10.4节,10.5节
时间安排:
设计安排一周:周1、周2:完成系统分析及设计。
周3、周4:完成程序调试,和验收。 周5:撰写课程设计报告。
指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日
武汉理工大学《IBM-PC汇编语言程序设计课程设计》
1设计内容及要求
1.1.采用位触发方式编写程序,使计算机发出音响并奏出《两只老虎》的乐曲。 1.2.根据已知的音符频率对照表,给出乐曲的频率表。
1.3.设二分音符持续时间为0.5秒(50*10ms),50作为2拍的计数值,给出乐曲的节
拍时间表。
2设计中使用的关键技术和方法
2.1.在8253/54定时器内部有3个独立工作的计数器:Count0,Count1,Count2,
端口地址分别为40H、41H和42H。其中Count2用来控制发声器发声。设装入计数器2的计数器初值为x则IBM中的BEEP子程序能在Mode3下产生频率为1.19318MHz/x的声音。
8253/54内部还有一个公用的控制寄存器,端口地址为43H。
三个计数器是分别编程的,对任一个计数器编程时,首先将控制字节写入寇埴寄存器。控制字节各位含义如下: SC1 SC0 RL1 RL0 M2 M1 M0 BCD 0 二进制 00 计数器锁存操作 1 BCD码 01 只读/写 LSB 10 只读/写 MSB 000 Mode0 11 读/写LSB,,MSB 001 Mode1 x10 Mode2 x11 Mode3 00 选择count0 100 Mode4 01 选择count1 101 Mode5 10 选择count2 11 无效
其次,向Count2送入一个计数初值,指定发声频率。
武汉理工大学《IBM-PC汇编语言程序设计课程设计》
2.2.扬声器驱动方式
7 6 5 4 3 2 1 0 61H 1.193MHz PB0 PB1 Count2 CLK2 OUT2 GATE2 VCC &
如图所示,GATE2与端口61h的PB0相连,当PB0=1时,GATE2获得高电平,使定时器可以在Mode3下工作。定时器的OUT2与端口61h的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器电路。
2.3.80x86 PC的时间延迟μ
IBM采用了一种利用硬件产生时间延迟的方法,即通过监控端口61h的PB4每15.08
μs触发一次,以产生一个固定不变的时间基准。
2.4.乐曲程序
乐曲是按照一定的高低、长短和强弱关系组成的已调,每个音符的音高和音长与频率和节拍有关。 音高与频率如下表 1 2 3 4 5 6 7 11 2 3 4 5 6 7 .......131 147 165 175 196 220 247 262 294 330 349 392 440 494 523 .
共分享92篇相关文档