微机课程设计计算机仿真电子琴.docx

上传人:b****8 文档编号:10991305 上传时间:2023-02-24 格式:DOCX 页数:17 大小:166.03KB
下载 相关 举报
微机课程设计计算机仿真电子琴.docx_第1页
第1页 / 共17页
微机课程设计计算机仿真电子琴.docx_第2页
第2页 / 共17页
微机课程设计计算机仿真电子琴.docx_第3页
第3页 / 共17页
微机课程设计计算机仿真电子琴.docx_第4页
第4页 / 共17页
微机课程设计计算机仿真电子琴.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机课程设计计算机仿真电子琴.docx

《微机课程设计计算机仿真电子琴.docx》由会员分享,可在线阅读,更多相关《微机课程设计计算机仿真电子琴.docx(17页珍藏版)》请在冰豆网上搜索。

微机课程设计计算机仿真电子琴.docx

微机课程设计计算机仿真电子琴

题目:

计算机仿真电子琴

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

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

MESG1DB0AH,0DH,'#######################'

DB0AH,0DH,'#----MUSICPROGRAMDesignByYeLinping!

-----#'

DB0AH,0DH,'#----------LetusEnjoyTheMusic!

----------#$'

MESG2DB0AH,0DH,'#######################'

DB0AH,0DH,'--->SimulatingaPiano:

PleasePress1'

DB0AH,0DH,'--->MusicStar,PleasePress2'

DB0AH,0DH,'--->TheExamplePress3'

DB0AH,0DH,'--->RETURNPleasePress4'

DB0AH,0DH,'--->EXITPRESS5'

DB0AH,0DH,'------------------------------------------'

DB0AH,0DH,'$'

MESG3DB0AH,0DH,'************PressQtoreturnmainmenu!

************'

DB0AH,0DH,'$'

ERDB01H,0DH,'INPUTERROR$'

MESG4DB0AH,0DH,'PRESSENTERTOEXIT!

$'

INFDB0AH,0DH,'PRESSA-S-D-F-G-H-J-KOR12345678'

DB0AH,0DH,'$'

MUS_FRQ1DW262,262,392,392,440,440,392

DW347,347,330,330,294,294,262

DW392,392,347,347,330,330,294

DW392,392,347,347,330,294,294

DW262,262,392,392,440,440,392

DW347,347,330,330,294,294,262,0

MUS_TIM1DW6DUP(100),200

DW7DUP(100)

DW6DUP(100),200

DW7DUP(100)

DW6DUP(100),200

DW7DUP(100)

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

DW294,294,294,330,392,392

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

DW294,294,330,294,262,262,0

MUS_TIM2DW6DUP(25),50

DW2DUP(25,25,50)

DW12DUP(25),100

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

TABLE1DW130,146,164,174,196,220,246,261

DATAENDS

STACKSEGMENTPARASTACK'STACK'

SKDB200DUP('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

SHOWMESG1

MPR:

SHOWMESG2

MOVAH,01H

INT21H

CMPAL,'1'

JNZN1

SHOWMESG3

SHOWINF

CALLPIANO

JMPEXIT

N1:

CMPAL,'2'

JNZN2

CALLMUSIC

JMPEXIT

N2:

CMPAL,'3'

JNZN3

CALLMUSIC2

JMPEXIT

N3:

CMPAL,'4'

JZEXIT

CMPAL,'5'

JZREMU

SHOWER

EXIT:

JMPMPR

REMU:

MOVAX,4C00H

INT21H

MUSICPROC

LEASI,MUS_FRQ1

LEABP,DS:

MUS_TIM1

SHOWMESG4

PA:

MOVAH,01H

INT16H

CMPAL,0DH

JNZFREQ1

JMPREMU

FREQ1:

MOVDI,[SI]

CMPDI,0

JEEND_MUS1

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPPA;FREQ1

END_MUS1:

RET

MUSICENDP

示例音乐:

MUSIC2PROC

LEASI,MUS_FRQ2

LEABP,DS:

MUS_TIM2

SHOWMESG4

PB:

MOVAH,01H

INT16H

CMPAL,0DH

JNZFREQ2

JMPREMU

FREQ2:

MOVDI,[SI]

CMPDI,0

JEEND_MUS2

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPPB

END_MUS2:

RET

MUSIC2ENDP

电子琴:

PIANOPROCNEAR

PUSHAX

PUSHBX

PUSHCX

LOP:

MOVAH,01H

INT21H

CMPAL,'Q'

JEEXIT1

CMPAL,31H

JBLOP1

CMPAL,38H

JALOP1

ANDAX,0FH

SHLAX,1

SUBAX,2

MOVSI,AX

MOVDI,TABLE[SI]

MOVBX,100

CALLGENSOUND

JMPPIANO

LOP1:

CMPAL,'A'

JNZY1

MOVAX,00H

JMPSD

Y1:

CMPAL,'S'

JNZY2

MOVAX,02

JMPSD

Y2:

CMPAL,'D'

JNZY3

MOVAX,04H

JMPSD

Y3:

CMPAL,'F'

JNZY4

MOVAX,06

JMPSD

Y4:

CMPAL,'G'

JNZY5

MOVAX,08

JMPSD

Y5:

CMPAL,'H'

JNZY6

MOVAX,10

JMPSD

Y6:

CMPAL,'J'

JNZY7

MOVAX,12

JMPSD

Y7:

CMPAL,'K'

JNZLOP

MOVAX,14

JMPSD

SD:

MOVSI,AX

MOVBX,OFFSETTABLE1

MOVDI,[BX][SI]

MOVBX,100

CALLGENSOUND

JMPLOP

EXIT1:

POPCX

POPBX

POPAX

JMPMPR

PIANOENDP

发生子程序

GENSOUNDPROC

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI

MOVAL,0B6H

OUT43H,AL

MOVDX,15H

MOVAX,533H*896

DIVDI

OUT42H,AL

MOVAL,AH

OUT42H,AL

INAL,61H

MOVAH,AL

ORAL,3

OUT61H,AL

PUSHAX

WAIT1:

MOVCX,3000

DELAY:

INAL,61H

ANDAL,10H

CMPAL,AH

JEDELAY

MOVAH,AL

LOOPDELAY

DECBX

JNZWAIT1

MOVAL,AH

OUT61H,AL

POPAX

POPDI

POPDX

POPCX

POPBX

POPAX

RET

GENSOUNDENDP

CODEENDS

ENDSTART

2、实验现象

1.进入DOS后在DOS界面(图6)运行已经编译好的文件(文件名为yelinping.exe)

图6.DOS调试界面

2.按上述步骤,出现的运行界面如下:

图7.操作界面初始界面

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

图9.按2后播放小星星

图10.按ENTER后退出播放

3.操作说明:

在主菜单界面,输入1,可以进行仿真电子琴,此时按1~8或者A-K可以发出相应的声音。

在电子琴状态下,按Q即可回到主菜单。

在主菜单下按2可以播放歌曲小星星,如果想结束可以按回车键可以退出,歌曲播放结束也可以自动回到主菜单。

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

通过这次课程设计,我完成了我的第一个算是比较大的汇编程序。

这次课程设计给我映像最深刻的是抱着书本仅仅靠书本的一些知识,而不去动手实践的话,编程的时候让我无从下手。

通过查阅资料,第一次接触到了DOS下的菜单设计。

这次设计我努力让我设计的菜单更加美观,实用,更人性化。

每一次的调试,我在程序大体上已经实现基本需要的功能之后,不断的完善程序,不断地增强程序的功能。

例如:

在电子琴仿真的功能方面,我在1—8这几个按键的基础上,增加了A、S、D、F、G、H、J、K这几个按键,实现低音段按键。

在播放歌曲的时候,增加ENTER键退出播放。

在输入的按键在菜单提示在外时,增加错误提示。

五、参考文献

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

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

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

电子工业出版社.2007年

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

当前位置:首页 > IT计算机 > 互联网

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

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