最新音乐演奏汇编语言程序设计Word文件下载.docx
- 文档编号:7816444
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:23
- 大小:129.50KB
最新音乐演奏汇编语言程序设计Word文件下载.docx
《最新音乐演奏汇编语言程序设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新音乐演奏汇编语言程序设计Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
这样我们在播放歌曲时,同时调用频率值和时间值就可以把相应的歌曲播放出来了。
1.2.2音乐演奏的硬件配合
我们了解到在计算机的主板上有8253、8255和蜂鸣器,同时了解到蜂鸣器的驱动是通过8255和8253共同控制的,我们通过对8253的通道2进行写数据来控制蜂鸣器的声音频率,再通过8255来控制播放时间的长短,就通过这样的巧妙配合来达到播放完整音乐的效果。
1.2.3音乐演奏的软件设计
软件设计是本设计的重点,在软件设计中,我们要给8253和8255写数据,同时还要检测键盘输入的值,并根据输入的值,执行相应的代码来控制音乐的播放。
首先我们在一开始先显示音乐菜单,然后调用DOS中21H的07中断来接收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,程序才进行相应的操作。
当键盘输入一个值后,我们首先判断输入的值是否为“e”,如果是,那就退出程序,如果不是,我们再检测输入的数是否在1-2之间,如果是,那就调用相应的播放音乐的程序,否则无动作。
在音乐播放中,我们要实时地扫描键盘是否有值输入,如果用DOS中21H的01中断肯定是不行的,因为执行这个中断程序会等待,无法继续播放音乐。
因此我们采用中断21H中的0bH,这个中断不会等待,只会检查标准输入设备上是否有字符可读。
然后我们通过检测AL中的值是否为0FFH,来判断键盘是否有值输入。
如果键盘上有键输入,那么AL中会返回一个0FFH的值,否则就会返回00H。
如果有,我们再判断这个输入的值是否为“p”,如果是,我们就停止音乐的播放,否则继续播放音乐,由于程序运行非常快,这样我们就不会感觉到音乐有停顿现象。
实现和音乐演奏的同时实时扫描键盘的功能。
当音乐开始播放后,若不输入任何指令,则该歌曲一直循环下去。
在音乐暂停后,按“c”值继续音乐播放,按“e”值退出,按“1”或“2”切歌。
然后我们调用DOS中21H的07中断来接收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,然后我们按输入的数进行相应的操作。
2.程序流程图设计及其说明
在此次设计中,我们包括了三个流程图,一个主流程图和两个子流程图,具体如下所示:
2.1主流程图说明
在主流程图的设计中,我们首先显示输入提示,然后从键盘中输入一个字符,如果那个字符不是1、2或者e,那么就继续等待,否则就要做一些操作了。
如果这个是“e”,那么就结束程序,如果在1-2之间,那么就调用音乐播放程序。
2.2音乐播放流程图说明
在音乐播放流程图中,我们设计执行播放相应的歌曲的操作,同时实时的检测键盘的输入。
如果键盘有输入,就调用字符输入及执行操作程序。
否则就继续播放歌曲。
2.3字符输入及执行操作流程图说明
在这个流程图中,我们设计了它具有输入字符同时检测的功能。
如果我们检测到输入的字符不是“p”,那么就重新返回到音乐播放流程图中,继续播放音乐,否则就暂停播放音乐。
同时等待字符再输入。
如果输入的字符是“c”,那么就继续播放歌曲,如果输入的字符是“e”,那么就退出程序。
图2音乐播放流程图
图1主流程图
图3字符输入及执行操作流程图
是
否
3.软件设计关键问题或程序段落的说明
3.1字符串显示程序
dispmacromessage;
用来调用显示字符串的宏
movdx,offsetmessage
movah,9
int21h
endm
在这个宏定义中我们调用了一个DOS中21H的09H中断,此中段的功能是在屏幕上显示一串字符。
3.2数据段与外观设计程序
stacksegmentparastack'
stack'
db100dup(0)
stackends
datasegment
menu1db'
**********songsmenu**********'
0ah,0dh,'
$'
menu2db'
*1.merry*'
menu3db'
*2.star*'
menu4db'
******************************'
menu5db'
p:
pausec:
continuee:
exit'
designersdb'
designedbytanwenanrenzhipenglinjian'
schooldb'
WHUTElectricalengineeringandautomation1105'
merry_frequencydw330,294,262,294,330,330,330,294,294,294,330,392,392
dw330,294,262,294,330,330,330,330,294,294,330,294,262,0
merry_time
dw10000,10000,10000,10000,10000,10000,50*400,10000,10000,20000,10000,10000,20000
dw10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,40000
star_frequencydw262,262,392,392,440,440,392,349,349,330,330,294,294,262
dw2dup(392,392,349,349,330,330,294)
dw262,262,392,392,440,440,392,349,349,330,330,294,294,262,0
star_timedw3dup(6dup(25*400),50*400,6dup(25*400),50*400)
dataends
codesegment
assumecs:
code,ds:
data,ss:
stack
startmain:
movax,data
movds,ax
movax,3;
bios0号调用,设置为80*25彩色
int10h
moval,0;
bios6号调用,清屏
movah,6
movdx,0819h;
bios2号调用,设置光标位置
movah,2
dispmenu1;
显示菜单
movdx,0919h
dispmenu2
movdx,0a19h
dispmenu3
movdx,0b19h
dispmenu4
movdx,0c19h
dispmenu5
movdx,0d15h
movah,09;
bios9号调用,设置颜色为红色
movbl,0ch
movcx,39
dispdesigners
movdx,0e11h
movah,09
movcx,47
dispschool
3.3音乐演奏
Moval,0b6h;
向计数器写控制字
Out43h,al;
方式3、双字节写和二进制计数方式写到控制口
Movdx,12h;
设置被除数
Movax,3280h
Divdi;
其商ax为预置值
Out42h,al;
先送LSB
Moval,ah
Out42h,al;
后送MSB
Inal,61h;
读端口原值
Movah,al
Oral,3
Out61h,al;
接通扬声器
Waitf1:
movcx,100;
扬声器开通时间,即为节拍
delay1:
Loopdelay1
在此程序段中,我们首先对8253进行设置,设置成方式3、双字节和二进制计数方式。
然后对8253写入定时数值,使得其输出一定的频率。
然后对8255写入数据,控制蜂鸣器的响时间的长短,来达到播放一首歌的目的。
4.程序调试说明、结果记录及分析
在调试的过程中,通过听取了老师的建议,我们小组在查找资料后,通过讨论在原有的程序上面增加了外观设计,最终显示结果如下图:
图4程序运行图
当输入“1”时,名为“merry”的音乐开始响起,当按下“p”时,音乐停止播放。
此时若键入“c”,继续播放暂停的音乐;
若输入“e”则退出程序。
5.课程设计收获及心得体会
本次课程设计采用小组设计的方式,本小组三位同学的任务分工如下:
XXX——主要负责主要功能程序设计与调试以及PPT的制作。
XXX——主要负责外观程序设计和课程设计说明书的完成。
XXX——主要负责音乐代码搜集和课程设计说明书的完成。
通过此次课程设计的上机与理论学习,我们小组成员均感受颇深。
此次课程设计让我们了解到编写程序的复杂性,最起码了解到编写程序时必需要很细心。
为了编写程序方便,所以需要分块分功能实现,对于这一点,我们通过画流程图就能很好地解决问题。
同时也了解到上机操作实践的重要,这样有助于书本知识的系统化,现实化,更有利于自己的查漏补缺。
书本上的知识是死的,能够在现实中运用的知识才是活的。
再者,通过这次课程设计,也促进了我们的同学之间互相学习,通过编写程序,增加了学习的积极性和趣味性。
通过课程实践,巩固加深对课堂教学内容的理解,提高学生运用汇编语言进行程序设计和动态调试程序的能力,培养同学克服困难的毅力和精神,提高学生综合解决问题的能力。
参考文献
[1]温冬蝉,沈美明.IBMPC汇编程序设计.北京:
清华大学出版社,2002.3
[2]齐志儒,高福祥.汇编语言程序设计.北京:
清华大学出版社,2001.1
[3]龚尚福.微型计算机汇编语言程序设计.西安:
西安电子科技大学出版社,2003.7
[4]朱玉龙,任文岚.汇编语言程序设计.北京:
清华大学出版社,2003.8
[5]周佩玲.微机原理与接口技术.北京:
电子工业出版社,2007.6
附录
源程序代码
dispmacromessage;
movdx,offsetmessage
movah,9
int21h
endm
designedbyXXXXXXXXX'
merry_frequencydw330,294,262,294,330,330,330,294,294,294,330,392,392
dw330,294,262,294,330,330,330,330,294,294,330,294,262,0
star_frequencydw262,262,392,392,440,440,392,349,349,330,330,294,294,262
return:
movah,07h;
等待按键选择
cmpal,'
1'
;
选择歌曲1
jzmusic1
2'
选择歌曲2
jzmusic2
e'
退出
jzexit
jnzreturn
music1:
leasi,merry_frequency;
取歌曲1音符
leabp,merry_time;
取歌曲2节拍
again1:
movdi,[si]
cmpdi,0;
0用于判断是否结束歌曲
jemusic1
movbx,[bp]
callspeaker;
调用音乐发声子程序
addsi,2;
取下一个音符
addbp,2;
取下一个节拍
movah,0bh;
扫描键盘,用0bh,不用停止歌曲播放的扫描
cmpal,0ffh;
有按键,调到暂停处理程序
jzkey1
jmpagain1;
没有按键,继续播放
exit:
jmpgame_over
music2:
leasi,star_frequency;
歌曲2的处理与歌曲1的一样
leabp,star_time
again2:
cmpdi,0
jemusic2
callspeaker
addsi,2
addbp,2
movah,0bh
cmpal,0ffh
jzkey2
jmpagain2
key1:
movah,07h
p'
按键为p,暂停
jzpause1
jnzagain1
pause1:
利用dos的07h调用等待按键来暂停歌曲
按键为e,退出
jzgame_over
c'
按键为c,继续
jzagain1
按键为2,切歌切到2
jnzpause1
key2:
movah,07h
jzpause2
jnzagain2
pause2:
jzagain2
jnzpause2
game_over:
movah,4ch
int21h
;
***********************音乐处理子程序*************************
speakerproc
pushax;
保护现场
pushbx
pushcx
pushdx
pushdi
moval,0b6h;
向计数器写控制字
out43h,al;
movdx,12h;
设置被除数
movax,3280h
divdi;
out42h,al;
moval,ah
inal,61h;
读端口原值
movah,al
oral,03h
out61h,al;
接通扬声器
wait1:
movcx,100;
扬声器开通时间,即为节拍
loopdelay1
decbx
jnzwait1
moval,ah;
写回61h端口值,关闭扬声器
out61h,al
popdi;
恢复现场
popdx
popcx
popbx
popax
ret
speakerendp
codeends
endstartmain9、《老王》教案
杨绛
教学目标:
知识与技能:
整体感知课文内容,了解文章如何刻画人物的形象。
过程与方法:
1、学习自主、合作、探究的学习方式;
2、品读课文,把握课文内容,理解老王的“苦”与“善”。
情感态度与价值观:
从课文中的人物身上,学会善待他人,关注生活中的弱势群体。
教学重点:
1、把握老王的人物形象刻画;
理解老王的“苦”与“善”;
2、领会作者思想感情及文章主旨,并让学生领悟到在与人交往中首先要付出爱。
教学难点:
1、体会老王与作者夫妇之间的相互关爱,体察作者的爱心,理解本文的主旨;
2、让学生领悟到在与人交往中首先要付出爱。
教学课时:
1课时
教学用具:
多媒体
教学过程
一、导入新课名言导入
二、知识积累(多媒体出示)
1、作者简介
2、背景介绍
3、检查预习情况
三、整体感知课文
1、老王是一个怎样的人?
(两个方面)
(1-4段)说明老王是一个的人;
(5-22段)说明老王是一个的人。
四、走近老王
速读1—4段,思考:
作者给我们介绍了什么情况?
从这些信息你读到了什么?
(从职业、家人、外貌、居住条件等方面来看)
职业:
蹬三轮车:
谋生手段艰苦
生活艰苦身体:
半瞎子:
生理缺陷
老王是一个苦人居所:
塌败小屋:
居住条件恶劣
姓名:
老王(没名):
地位低微
精神凄苦老光棍:
孤独终老单干户
受恶意攻击被人瞧不起
同学们是否注意到了,我对老王的眼睛是这样猜测的,还介绍了人们对老王的态度。
别人如何对待老王?
1、不愿坐他的车;
2、叫他“老光棍”;
3、恶意的揣测他眼睛瞎掉的原因。
五、品味老王
阅读5—22段,作者回忆了老王一生中的哪几个生活片段?
从这些片段中体现出了老王怎么样的性格特征?
带送冰快,车费减半忠厚老实,不贪钱
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 音乐 演奏 汇编语言 程序设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)