电子琴课程设计报告电子版微机 DOCWord格式.docx

上传人:b****5 文档编号:21484372 上传时间:2023-01-30 格式:DOCX 页数:18 大小:257.82KB
下载 相关 举报
电子琴课程设计报告电子版微机 DOCWord格式.docx_第1页
第1页 / 共18页
电子琴课程设计报告电子版微机 DOCWord格式.docx_第2页
第2页 / 共18页
电子琴课程设计报告电子版微机 DOCWord格式.docx_第3页
第3页 / 共18页
电子琴课程设计报告电子版微机 DOCWord格式.docx_第4页
第4页 / 共18页
电子琴课程设计报告电子版微机 DOCWord格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

电子琴课程设计报告电子版微机 DOCWord格式.docx

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

电子琴课程设计报告电子版微机 DOCWord格式.docx

3、硬件参数及硬件接线电路图

(1)地址和初值

8255口地址:

PA口=60HPB口=61HPC口=62H控制口=63H

8253口地址:

计数器0=40H计数器1=41H计数器2=42H控制寄存器=43H

8253初值:

600Hz声音,1.19MHz/600=1983

(2)接线电路图

PC机扬声器电路以及相关接口电路:

(如图1)

图1接线电路图

4、作原理

PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。

通道1的工作方式和通道3一样,但是系统启动时设定其发出一个频率固定为18.2Hz的信号,这个信号直接送到系统中的"

中断控制器"

每一个"

Hz"

都产生一个硬件中断,一般称这个硬中断为"

IRQ0"

,对应的中断号是08H。

在定时器的控制下每隔55毫秒就要执行一个08H号中断,这个中断的主要工作就是连续地计数。

由于PC计算机的时钟晶振为1.1931816MHz,根据频率的公式:

f=1/T

则频率周期为

T=1/f

定时器的计数器为16位计数器,则最大的计数值为65536,那么其定时时间为:

t=65536*T=65536/f=0.0549254(秒)

即:

PC定时器每秒可中断18.2065次。

5、程序流程图(见图2)

图2程序流程图

三、课程设计的结果

程序开始,显示提示信息,对缓存区初始化。

按键扫描,接着调用发音子程序在把AL送缓存区,发出与按键相对应频率的声音,从而实现计算机仿真电子琴的功能。

并不停地对Esc键、Enter键、P键扫描,当Esc键或Enter键按下时,就退出程序。

当按下P时,显示播放音乐目录。

当按下数字选择键时,播放程序中预设的曲目,中途可以通过Enter键,终止音乐播放。

当检测到Q时,退出到计算机仿真电子琴演奏状态。

1、程序代码:

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

DATASEGMENT

ASSUMEDS:

DATA

STR_1DB0DH,0AH,'

<

-----WELCOMEYOUTOUSING----->

>

$'

STR_2DB0DH,0AH,'

Author:

SunFhDate:

2011/12/20$'

STR_3DB0DH,0AH,'

Thisisanelectricpiano!

$'

STR_4DB0DH,0AH,'

LOW:

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

STR_5DB0DH,0AH,'

MID:

Q-W-E-R-T-Y-U$'

STR_6DB0DH,0AH,'

HIG:

A-S-D-F-G-H-J$'

STR_7DB0DH,0AH,'

Youcanpressplayitthatlikesapiano.'

DB0DH,0AH,'

Andyoucanpress'

'

ESC'

or'

ENTER'

toEXIT.$'

STR_8DB0DH,0AH,'

What'

smore,'

youcanpress'

P'

toplaysomemusics!

STR_9DB0DH,0AH,'

PleaseselectTthemusic(Press'

Q'

toexitthisMENU):

STR_10DB0DH,0AH,'

1.ShuiShou$'

STR_11DB0DH,0AH,'

2.XinNianHao'

Youcanpress"

ENTER"

tostopplay.$'

STR_12DB0DH,0AH,'

INPUTERROR!

STR_13DB0DH,0AH,'

Pleaseinputagain!

STR_21DB0DH,0AH,'

NOTE_TDW262,294,330,349,392,440,494

DW523,587,659,698,784,880,988

DW1046,1175,1318,1397,1568,1760,1975

DW0

KEY_TDB'

1'

'

2'

3'

4'

5'

6'

7'

DB'

q'

w'

e'

r'

t'

y'

u'

a'

s'

d'

f'

g'

h'

j'

0'

MUSIC_N1DB'

0

MUSIC_D1DB8,4,4,8,4,4,6,2,4,4,4,6,2

DB4,2,2,4,4,4,2,2,4,4,4,4,4,4,16

DB8,4,4,8,4,4,4,2,2,4,4,16

DB6,2,4,4,6,2,4,4,4,4,4,2,2,16

DB6,2,4,4,4,2,2,4,2,2,4,4,4,2,2,16

MUSIC_N2DB'

MUSIC_D2DB4,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

LEADX,STR

MOVAH,09H

INT21H

ENDM

MAINPROCFAR

MOVAX,DATA

MOVDS,AX

SHOWSTR_21

SHOWSTR_1

SHOWSTR_2

SHOWSTR_3

SHOWSTR_4

SHOWSTR_5

SHOWSTR_6

SHOWSTR_7

SHOWSTR_8

MOVBX,0

KEY_SCAN:

MOVAL,6

MOVJIEPAI,AL

MOVBX,0000H

MOVAH,00H

INT16H

CMPAL,0DH

JZEXIT

CMPAL,1BH

CMPAL,'

p'

JZPLAY

LOOKUP:

CMPKEY_T[BX],AL

JENEXT

INCBX

JMPLOOKUP

NEXT:

SHLBX,1

MOVCX,NOTE_T[BX]

CALLBEEP

JMPKEY_SCAN

EXIT:

MOVAH,4CH

ERROR:

SHOWSTR_12

SHOWSTR_13

JMPPLAY

PLAY:

SHOWSTR_21

SHOWSTR_9

SHOWSTR_10

SHOWSTR_11

INPUT:

MOVAH,00H

JZSTART

CMPAL,0DH

JZEXIT

CMPAL,1BH

JZNEXT6

JZNEXT7

CALLERROR

JMPINPUT

NEXT6:

CALLPLAY_M1

NEXT7:

CALLPLAY_M2

START:

CALLMAIN

STOP:

PUSHAX

MOVAH,00H

INT16H

CMPAL,0DH

JZPLAY

RET

PLAY_M1PROCNEAR

NEXT5:

MOVBX,0

NEXT3:

MOVAL,MUSIC_N1[BX]

PUSHAX

MOVAL,MUSIC_D1[BX]

MOVJIEPAI,AL

POPAX

MOVAH,11

INT21H

CMPAL,0FFH

JZSTOP

CMPAL,0

JEINPUT

PUSHBX

MOVBX,0

LOOK1:

CMPKEY_T[BX],AL

JENEXT1

INCBX

ANDBX,0FFH

JMPLOOK1

NEXT1:

CMPCX,0

JENEXT4

CALLPAUSE

POPBX

JMPNEXT3

NEXT4:

CALLNOBEEP

PLAY_M1ENDP

IN:

JMPINPUT

PLAY_M2PROCNEAR

NEX5:

NEX3:

MOVAL,MUSIC_N2[BX]

PUSHAX

MOVAL,MUSIC_D2[BX]

JEIN

LOO1:

JENEX1

ANDBX,0FFH

JMPLOO1

NEX1:

JENEX4

JMPNEX3

NEX4:

CALLNOBEEP

PLAY_M2ENDP

MAINENDP

BEEPPROCNEAR

MOVDX,0012H

MOVAX,34DCH

DIVCX

OUT42H,AL

MOVAL,AH

CALLSPK_ON

MOVAH,00H

INT1AH

MOVAL,JIEPAI

ADDAL,SPEED

CBW

ADDAX,DX

MOVBX,AX

DELAY1:

MOVAH,00H

INT1AH

CMPBX,DX

JNZDELAY1

CALLSPK_OFF

BEEPENDP

NOBEEPPROCNEAR

CALLSPK_OFF

DELAY2:

MOVAH,00H

JNZDELAY2

NOBEEPENDP

PAUSEPROCNEAR

INT1AH

MOVAL,JIANGE

DELAY3:

JNZDELAY3

PAUSEENDP

SPK_ONPROCNEAR

INAL,61H

ORAL,03H

OUT61H,AL

POPAX

SPK_ONENDP

SPK_OFFPROCNEAR

ANDAL,0FCH

SPK_OFFENDP

CODEENDS

ENDMAIN

2、实验现象

(1)程序正常运行,如图3

图3程序正常运行

(2)音乐播放菜单(按P键),如图4

图4音乐播放菜单

(3)输入错误按键,显示错误,键盘重新输入,如图5

图5输入错误按键

(4)音乐播放终止,可以重新选择播放音乐或者返回,如图6

图6音乐终止画面

(5)返回主菜单界面(按Q键),如图7

图7返回主菜单界面

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

一个星期的课程设计,让我尝试了失败的打击,和成功的喜悦。

虽然自己查阅了很多资料,但是发信自己对知识的掌握还是不够扎实,不过自己在课程设计过程中,也学到了不少扩展的知识。

在程序汇编时候,会遇到很多问题,自己的英文不是很好,有些错误都看不明白,但是跟同学讨论学习之后,修改程序,改正错误。

让我意识到,合作是很有必要的,每个人理解的擅长的地方都不同,通过交流也会取长补短。

五、参考文献

[1]王忠民,微型计算机原理,西安:

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

[2]赵燕,何南,微机原理与应用实验指导书,大连海洋大学,2008年

[3]仇玉章,冯一兵,微计算机技术——实验与辅导,北京:

清华大学出版社,2006年

[4]朱定华,微机原理、汇编与接口技术实验教程,北京:

清华大学出版社,2007年

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

当前位置:首页 > 初中教育

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

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