微机课设报告 打字游戏汇编语言的设计Word格式.docx

上传人:b****5 文档编号:8401679 上传时间:2023-05-11 格式:DOCX 页数:18 大小:101.35KB
下载 相关 举报
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第1页
第1页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第2页
第2页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第3页
第3页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第4页
第4页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第5页
第5页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第6页
第6页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第7页
第7页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第8页
第8页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第9页
第9页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第10页
第10页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第11页
第11页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第12页
第12页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第13页
第13页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第14页
第14页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第15页
第15页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第16页
第16页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第17页
第17页 / 共18页
微机课设报告 打字游戏汇编语言的设计Word格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机课设报告 打字游戏汇编语言的设计Word格式.docx

《微机课设报告 打字游戏汇编语言的设计Word格式.docx》由会员分享,可在线阅读,更多相关《微机课设报告 打字游戏汇编语言的设计Word格式.docx(18页珍藏版)》请在冰点文库上搜索。

微机课设报告 打字游戏汇编语言的设计Word格式.docx

1、音乐播放选择

从键盘上输入“1”,则播放“新年好”;

从键盘上输入“q”,则退出;

从键盘上输入其它字符,则等待重新输入。

2、电子琴演奏界面

音符的频率表

音名

q

w

e

r

t

y

u

a

s

d

f

g

h

j

音符

1

2

3

4

5

6

7

频率

131

147

165

175

196

220

247

262

294

330

349

392

440

494

z

x

c

v

b

n

m

523

587

659

698

784

880

988

1046

1175

1318

1397

1568

1760

1975

通过Tn来设时间值,然后通过发声程序play1来播放音乐。

通过键盘控制扬声器发出各种音符声音,使计算机键盘变成钢琴键盘,这是可以用它来演奏各种简单的声音。

弹奏时对应乐谱上的q音符,按下1,程序将接收到的1键的频率为262Hz送入play2程序中。

(二)流程图

三、程序源代码

;

数据段定义

datasegment;

数据定义段

assumeds:

data;

建立数据段寄存器寻址

msg_1db'

<

---Welcome--->

>

$'

0dh,0ah;

定义字节

msg_2db0dh,0ah,'

Hereyoucanpressbelowkeystoenjoymusic:

$'

msg_3db0dh,0ah,'

SuperLL:

q-w-e-r-t-y-u$'

msg_4db0dh,0ah,'

LM:

a-s-d-f-g-h-j$'

msg_5db0dh,0ah,'

MM:

z-x-c-v-b-n-m$'

msg_6db0dh,0ah,'

HM:

1-2-3-4-5-6-7$'

msg_7db0dh,0ah,'

Youcanpress'

'

Esc'

toexit.$'

msg_8db0dh,0ah,'

*'

toplaymusic!

msg_9db0dh,0ah,'

Press1youcanplaymusic'

xinnianhao'

msg_10db0dh,0ah,'

Press"

q"

exit"

*"

msg_21db0dh,0ah,'

note_tdw131,147,165,175,196,220,247;

重低音

dw262,294,330,349,392,440,494;

低音

dw523,587,659,698,784,880,988;

中音

dw1046,1175,1318,1397,1568,1760,1975;

高音

dw0;

休止符0

'

1'

'

2'

3'

4'

5'

6'

7'

;

从低到高

key_tdb'

q'

w'

e'

r'

t'

y'

u'

重低音

db'

a'

s'

d'

f'

g'

h'

j'

z'

x'

c'

v'

b'

n'

m'

0'

xinnianhao

music_n1db'

0

music_d1db4,4,8,8,4,4,8,8,4,4,8,8,4,4,16,4,4

db8,8,4,4,8,8,4,4,8,8,4,4,32

jiepaidb?

;

节拍变量定义

speeddb2;

播放速度控制

jiangedb1;

音符间隔停顿时间

dataends;

数据定义段结束

/*-------------------------------------------------------------------------------------------*/

代码段定义

codesegment;

代码定义段

assumecs:

code;

建立代码段寄存器寻址

字符显示

showmacrostr;

宏定义,输入参数:

字符串str

leadx,str;

装入str的有效地址

movah,09h;

调用中断21,09h显示字符串

int21h

endm;

宏定义结束

主函数

mainprocfar;

主函数过程定义

movax,data;

取数据段地址

movds,ax;

装载数据段寄存器ds,使之指向当前数据段

showmsg_21

showmsg_1;

调用宏,显示字符串

showmsg_2

showmsg_3

showmsg_4

showmsg_5

showmsg_6

showmsg_7

showmsg_8

movbx,0;

设定查表数组下标初值

按键扫描

key_scan:

moval,6

movjiepai,al;

初始化节拍

movbx,0000h;

初始化指针

movah,00h;

利用bios的16号中断,扫描键盘按键

int16h;

AL中返回按键的ASCII码

cmpal,1bh;

判断是否为Esc键

jzexit;

是退出键就退出

cmpal,'

判断是否为p键

jzplay;

是p键就playmusic

lookup:

cmpkey_t[bx],al;

取出对应频率值

jenext

incbx;

指针+1

jmplookup

next:

shlbx,1;

指针×

2,计算频率表指针

movcx,note_t[bx];

取得对应数组下标值的频率值

callbeep;

调用固定频率子程序

jmpkey_scan;

否则继续扫描

/*-------------------------------------------------------------------------------------------*/

exit:

;

退出

movah,4ch;

调用中断21,4ch退出系统

int21h

音乐播放菜单

play:

showmsg_9

showmsg_10

input:

int16h;

判断是否为Enter键

jzstart;

是'

键就退到主菜单

;

判断是否为数字1

jznext6;

键就播放相对应的歌曲

jmpinput;

否则继续扫描按键

next6:

callplay_m1

start:

callmain

音乐播放程序1

play_m1procnear

next5:

movbx,0

next3:

moval,music_n1[bx];

取出music频率值

pushax

moval,music_d1[bx];

取出music节拍

movjiepai,al

popax

cmpal,0;

是否为音乐结束标志符

jeinput;

是则退出play

pushbx;

保存bx,bx为music频率指针

look1:

查表取出对应频率值的指针bx

jenext1;

找到就beep

incbx;

andbx,0ffh

jmplook1;

未找到则继续查找

next1:

shlbx,1;

cmpcx,0

jenext4

callbeep;

调用固定频率子程序

callpause;

调用停顿时间

popbx;

获得music指针

继续取得下一个音符

jmpnext3

next4:

callnobeep

callpause;

popbx;

继续取得下一个音符

jmpnext3

play_m1endp

mainendp;

主函数过程结束

固定频率响

beepprocnear

movdx,0012h

movax,34dch

divcx;

ax为所得分频值

out42h,al;

输出频率值,低8位

moval,ah

输出频率值,高8位

callspk_on;

开启蜂鸣器

movah,00h;

取时钟计数值

int1ah

moval,jiepai;

18.2次为1000ms,2次约为100ms

addal,speed

cbw;

al值转为16位ax

addax,dx;

加上当前时钟计数值,得到计数终值

movbx,ax;

计数终值置入bx

delay1:

movah,00h

int1ah;

cmpbx,dx;

到终值吗?

jnzdelay1;

未到,继续延时

callspk_off;

关闭蜂鸣器

ret

beependp

nobeepprocnear

callspk_off;

movah,00h;

cbw;

addax,dx;

movbx,ax;

delay2:

cmpbx,dx;

jnzdelay2;

nobeependp

pauseprocnear

moval,jiange;

delay3:

jnzdelay3;

pauseendp

spk_onprocnear

pushax;

保存ax的值

inal,61h;

获取61h端口的当前值

oral,03h;

把61h端口低二位置1,即打开蜂鸣器

out61h,al;

输出数据到61h端口

popax;

恢复ax的值

spk_onendp

spk_offprocnear

保存ax的值

inal,61h;

获取61h端口的当前值

andal,0fch;

把61h端口低二位置0,即关闭蜂鸣器

popax;

spk_offendp

codeends;

代码段结束

endmain;

主程序结束

四、调试过程,运行结果和出现的问题及解决。

1、调试结果(见下图)

2、在调试中碰到问题

(1)源程序出现了语法错误,导致编译的时候不能顺利地通过,也不能产生obj和exe文件。

(2)可执行文件的图面大小总是满屏,经过对程序的修改,最终实现了小界面的形式。

(3)出现音乐不符现象,是连接错误。

五、课程设计心得

书本知识不经过实践永远只能是纸上谈兵,通过几天的学习,反复的核对书本知识,结合实际的对程序的调试,从而加强对微机原理的了解,使我认识到,只有落实到具体的动手操作,并把书本知识和实际问题结合,才能真正的提高自己的能力。

几天的课程设计,不仅学习了微机原理这门课,也印证了在其他科目上学习到的知识,比如单片机课程中学习到得东西,与微机原理相比,有很多的共通点,也有很多的差异,学习的过程,不仅仅是为了课程设计,同时还迷上了这门课,在一堆码中找到解决问题的真谛,学习到得,不仅仅是课程设计可以体现的。

在设计的过程中,遇到了很多的问题,翻书都不能解决,通过幻灯片回忆鲍老师讲课的过程,很多东西都能浮现,在实验课上鲍老师给的讲解也给了我很多的帮助,希望以后会有更多像鲍老师一样讲课的老师,能让我学的轻松。

还有很多的不解关于微机原理,这门课虽然结束了,但是这们技术甚至于艺术,在以后的人生还会出现,当下次考验来临的时候,我希望自己可以做的比这次好。

六、成绩单

电子与信息工程系课程设计成绩单

课程名称:

指导教师:

姓名

性别

学号

综合成绩

成绩等级

程序运行情况

(占总成绩20%)

□能正确运行□基本能正确运行□能运行但结果不完善

(20分)(15分)(10分)

程序功能的完善程度

(占总成绩10%)

□完善□基本完善□不完善

(10分)(8分)(5分)

程序结构的合理性

□合理□基本合理□不太合理

对问题的答辩情况

(占总成绩40%)

□概念正确有创新□能正确回答所有问题□基本能正确回答

(40分)(35分)(30分)

□部分问题回答概念不清晰

(20分)

学生的工作态度与独立工作能力

□工作态度认真能独立完成任务□工作态度认真但独立性较差

(10分)(8分)

□工作态度基本认真但缺乏独立性

(5分)

设计报告的规范性

□符合规范□基本符合规范□规范性较差

优秀:

90分~100分良好:

80分~89分中等:

70~79分及格:

60~69分不及格0分~59分

电子与信息工程系计算机与信息技术实验中心制表

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2