微型计算机技术及应用1.docx

上传人:b****5 文档编号:12182320 上传时间:2023-04-17 格式:DOCX 页数:15 大小:192.71KB
下载 相关 举报
微型计算机技术及应用1.docx_第1页
第1页 / 共15页
微型计算机技术及应用1.docx_第2页
第2页 / 共15页
微型计算机技术及应用1.docx_第3页
第3页 / 共15页
微型计算机技术及应用1.docx_第4页
第4页 / 共15页
微型计算机技术及应用1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微型计算机技术及应用1.docx

《微型计算机技术及应用1.docx》由会员分享,可在线阅读,更多相关《微型计算机技术及应用1.docx(15页珍藏版)》请在冰豆网上搜索。

微型计算机技术及应用1.docx

微型计算机技术及应用1

实验题目:

计算机仿真电子琴

一、课程设计的目的与要求

1、设计目的

本课程的课程设计是通信专业学生学习完《微型计算机技术及应用》课程后,进行的一次以汇编语言为主,硬件微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本设计为辅的综合训练。

本课程设计的目的在于加深学生对课本理论知识的理解

2、设计要求

从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:

1)掌握汇编语言程序设计的基本方法。

2)进一步理解各种接口电路的应用。

例如8255并行接口,8253定时器等。

3)掌握利用PC机扬声器发出不同频率声音的方法。

3、主要技术指标

编写程序

1)在程序运行时使PC即成为一架可弹奏的电子琴。

当按下数字键1-8时,依次发出1,2,3,4,5,6,7,I这八个音调。

按下CTRL+C或者回车则退出电子琴状态。

2)在程序运行时使PC自动按要求提示演奏乐曲。

二、课程设计分析

图1.扬声器工作原理图示

图2.主程序工作流程图

图3.乐曲演奏子程序工作流程图图4.电子琴子程序工作流程图

图5.扬声器工作流程图

三、课程设计的结果

1、实验代码

DATASEGMENT

INFO1DB0AH,0DH,'WELCOMEYOUTOCOMEHERE!

$'

DB0AH,0DH,'THISISAMUSICPROGRAM!

$'

DB0AH,0DH,'PLEASESELECLT!

$'

INFO4DB0AH,0DH,'INPUTERROR!

$'

INFO5DB0AH,0DH,'PLEASEINPUTAGAIN!

$'

MUSLISTDB0AH,0DH,'========================='

DB0AH,0DH,'Press1HuanLeSong'

DB0AH,0DH,'Press2KaiXin'

DB0AH,0DH,'Press3XiaoBuWuQu'

DB0AH,0DH,'Press4Wonderful'

DB0AH,0DH,'Press5SCALEPLAY'

DB0AH,0DH,'Press6EXIT'

DB0AH,0DH,'========================='

DB0AH,0DH,'$'

MUS_FRQ1DW330,330,350,393,393,350,330,294

DW262,262,294,330,330,294,294

DW330,330,350,393,393,350,330,294

DW262,262,294,330,294,262,262

DW294,294,330,262,294,330,350,330,262

DW294,330,350,330,262,262,294,393

DW330,330,350,393,393,350,330,294

DW262,262,294,330,294,262,262,-1

MUS_TIM1DW8DUP(100)

DW7DUP(100),200

DW8DUP(100)

DW7DUP(100),200

DW5DUP(100),50,50,2DUP(100)

DW100,50,50,4DUP(100),200

DW8DUP(100)

DW7DUP(100),200

MUS_FRQ2DW330,294,262,294,3DUP(330)

DW3DUP(294),330,392,392

DW330,294,262,294,4DUP(330)

DW294,294,330,294,262,-1

MUS_TIM2DW6DUP(100),200

DW2DUP(100,100,200)

DW8DUP(100)

DW4DUP(100),400

MUS_FRQ3DW392,262,294,330,350,392,262,262

DW440,350,392,440,494,524,262,262

DW350,392,350,330,294,330

DW350,330,294,262,294,330,294,262,247,262,-1

MUS_TIM3DW200,4DUP(100),200,200,200

DW200,4DUP(100),200,200,200

DW200,4DUP(100),200

DW4DUP(100),200,4DUP(100),400

MUS_FRQ4DW330,392,330,294,330,392,330,394,330

DW330,392,330,294,262,294,330,392,294

DW262,262,220,196,196,220,262,294,330,262,-1

MUS_TIM4DW3DUP(200),100,100,200,100,100,400

DW2DUP(200,200,100,100),400

DW3DUP(200,100,100),400

TABLEDW262,294,330,349,392,440,494,525

NUMBDB0AH,0DH,'Keyboardnumber1~8keysplaynotesofthescale'

DB0AH,0DH,'EnterorCtrl+Ctoexit'

DB0AH,0DH,'$'

DATAENDS

STACKSEGMENTPARASTACK'STACK'

STADB200DUP('STACK')

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACK

MOVSS,AX

SHOWMACROB

MOVDX,OFFSETB

MOVAH,09H

INT21H

ENDM

SHOWINFO1

LOP:

SHOWMUSLIST

MOVAH,01H

INT21H

CMPAL,36H

JZRETU

CMPAL,31H

JNZB0

CALLMUSIC1

JMPEXIT1

B0:

CMPAL,32H

JNZC0

CALLMUSIC2

JMPEXIT1

C0:

CMPAL,33H

JNZD0

CALLMUSIC3

JMPEXIT1

D0:

CMPAL,34H

JNZE0

CALLMUSIC4

JMPEXIT1

E0:

CMPAL,35H

JNZEXIT

SHOWNUMB

CALLMUSIC5

EXIT1:

SHOWINFO5

JMPLOP

EXIT:

SHOWINFO4

SHOWINFO5

JMPLOP

RETU:

MOVAX,4C00H

INT21H

MUSIC1PROC

LEASI,MUS_FRQ1

LEABP,DS:

MUS_TIM1

FREQ1:

MOVDI,[SI]

CMPDI,-1

JEEND_MUS1

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPFREQ1

END_MUS1:

RET

MUSIC1ENDP

MUSIC2PROC

LEASI,MUS_FRQ2

LEABP,DS:

MUS_TIM2

FREQ2:

MOVDI,[SI]

CMPDI,-1

JEEND_MUS2

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPFREQ2

END_MUS2:

RET

MUSIC2ENDP

MUSIC3PROC

LEASI,MUS_FRQ3

LEABP,DS:

MUS_TIM3

FREQ3:

MOVDI,[SI]

CMPDI,-1

JEEND_MUS3

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPFREQ3

END_MUS3:

RET

MUSIC3ENDP

MUSIC4PROC

LEASI,MUS_FRQ4

LEABP,DS:

MUS_TIM4

FREQ4:

MOVDI,[SI]

CMPDI,-1

JEEND_MUS4

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPFREQ4

END_MUS4:

RET

MUSIC4ENDP

MUSIC5PROCNEAR

PUSHAX

PUSHBX

PUSHCX

LOP5:

MOVAH,01H

INT21H

CMPAL,0DH

JEEXIT5

CMPAL,31H

JBLOP5

CMPAL,38H

JALOP5

ANDAX,0FH

SHLAX,1

SUBAX,2

MOVSI,AX

MOVBX,OFFSETTABLE

MOVDI,[BX][SI]

MOVBX,100

CALLGENSOUND

JMPLOP5

EXIT5:

POPCX

POPBX

POPAX

RET

MUSIC5ENDP

GENSOUNDPROC

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI

MOVAL,0B6H

OUT43H,AL

MOVDX,12H

MOVAX,533H*896

DIVDI

OUT42H,AL

MOVAL,AH

OUT42H,AL

INAL,61H

MOVAH,AL

ORAL,3

OUT61H,AL

PUSHAX

WAIT1:

MOVCX,1200

DELA1:

INAL,61H

ANDAL,10H

CMPAL,AH

JEDELA1

MOVAH,AL

LOOPDELA1

DECBX

JNZWAIT1

POPAX

MOVAL,AH

OUT61H,AL

POPDI

POPDX

POPCX

POPBX

POPAX

RET

GENSOUNDENDP

CODEENDS

ENDSTART

2、实验现象

1.进入DOS后在DOS界面(图6)进行汇编链接并生成可执行文件.exe

图6.DOS调试界面

2.双击可执行文件KS.exe(这里我把程序取名为KS)进入操作界面如图7所示

图7.操作界面初始界面

图8.按数字键5后进入电子琴界面

图9.按回车后退出电子琴界面

3.在进行操作的时候只要在键盘上按1-4这四个数字键就可以任意听取歌曲1—歌曲4,按数字键5时进入电子琴界面,这时候1-8分别表示音乐CDEFGABC这几个音符。

按回车后退出电子琴操作界面,这时候按6退出程序。

四、课程设计的心得与体会

通过整整两个星期的摸索和编程,查资料,终于把课程设计完成了,我们小组的成员一起讨论问题,分析问题,发现问题,解决问题,也收获了不少,我们的编程技术都有所提高,我们的体会就是:

要提高自己的编程能力,你必须亲自去体验、去设计、编辑、编译、调试、运行。

当然设计时用流程图,这也很重要,这样整个思路就很清晰,而且是按照软硬件语言的逻辑顺序进行,就很方便。

设计过程可以分模块,不要一开始就想把所有的功能都实现了,应该一个模块一个模块的实现,再总的连起来,实现最后的总模块。

因此,微机实验这种形式的课程设计是很好也是很有必要的,使我们对微机实验有了更深刻的理解。

五、参考文献

[1]王忠民.微型计算机原理(第二版).西安:

西安电子科技大学出版社,2007年

[2]马春燕.微机原理与接口技术实验与学习辅导.北京:

电子工业出版社.2007年

 

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1