音乐盒Word格式.docx

上传人:b****5 文档编号:16338754 上传时间:2022-11-23 格式:DOCX 页数:15 大小:343.93KB
下载 相关 举报
音乐盒Word格式.docx_第1页
第1页 / 共15页
音乐盒Word格式.docx_第2页
第2页 / 共15页
音乐盒Word格式.docx_第3页
第3页 / 共15页
音乐盒Word格式.docx_第4页
第4页 / 共15页
音乐盒Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

音乐盒Word格式.docx

《音乐盒Word格式.docx》由会员分享,可在线阅读,更多相关《音乐盒Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

音乐盒Word格式.docx

3、了解利用数模转换器产生音乐的基本方法

二、设备与环境

PC兼容机、Windows操作系统、HQFC集成开发环境、TPC-386EM实验箱。

三、设计内容

(一)设计原理图

8255芯片:

8253的内部结构如图所示

8253的控制字

8253的控制字用于选择哪个计数器通道工作,三个通道可同时工作,但是要分别进行初始化;

用于规定读/写操作格式或类型,8253可以有8位的计数值或16位的计数值,可以按二进制计数或按二—十进制计数;

用于选择工作方式,8253共有六种工作方式。

8253是由主机编程设定的,通过把一个8位的控制字写入8253的控制字寄存器,使8253按照某种给定的方式工作。

控制字的定义如图3-2b所示。

8253计数值的计算方法为:

计数值=时钟频率÷

音符频率(时钟频率=1.19318MHz=1234DCH)

扬声器发声电路图:

(二)、总体设计

1、程序运行后首先在屏幕上显示出乐曲菜单,制作者姓名。

2、用键盘键A、B、C选择相应的乐曲。

3、输入错误时要有适当提示,并允许重新输入。

4、选择Q键后可以正常退出程序。

5、允许中断。

可以在没有听完整首歌曲时人为中断听下一首歌曲,或退出。

(三)、详细设计

在电子琴实验的基础上进行改进,同样利用8255的C口输出,设置8254计时器0方式3,先读写低字节,再读写高字节。

编写演奏乐曲需要把与音符所对应的频率放在FREQ表中,把与音符所对应的节拍(延时次数值)放在TIME表中。

然后由主程序控制,逐一按音符的频率和节拍值,使扬声器发出声音。

当与音符对应的频率值为0时,停止演奏。

子程序PLAY的功能是使扬声器发出声音,演奏乐曲。

由DI指定音符的频率,BX指定与音符对应的节拍。

SI指向频率表FREQ,BP指向节拍表TIME。

频率表以0结尾,用于作为程序结束的条件:

如果取来的频率值为0,则程序结束。

扬声器发声,通过设定并行接口电路8255的PC0、PC1的值进行控制,PC0、PC1为11扬声器;

PC0、PC1为00关扬声器。

四、程序流程图

五、实物接线图

六、设计结果

(一)运行结果

(一)实验结果分析

如图程序运行显示歌曲列表,通过选择A,B或C播放相应曲目,在当前歌曲播放过程中,随时可以选择另一首曲目进行播放,或者直接输入Q退出程序。

如果当前曲目播放完毕则提示请再次输入,若输入的命令非A,B或C,则提示输入有误!

七、程序代码

DATASEGMENT

io8255cEQU28ah

io8255ctlEQU28bh

io8253aEQU280h

io8253bEQU283h

STR1DB0DH,0AH,'

welcomyoucometohere!

STR2DB0DH,0AH,'

thisisamusicprogram!

$'

STR3DB0DH,0AH,'

pleaseselect!

STR4DB0DH,0AH,'

inputerror!

STR5DB0DH,0AH,'

pleaseinputagain!

STR6DB0DH,0AH,'

Ashaonianzhuangzhibuyanchou$'

STR7DB0DH,0AH,'

Bwoniuyuhuangliniao$'

STR8DB0DH,0AH,'

Cmeilidetonghua$'

STR9DB0DH,0AH,'

QEXIT$'

FREQ1DW294,392,392,294,330,262,220,262,196,262,262,220,262,294,330,392,294,294

DW294,392,392,294,330,262,220,262,220,196,196,220,262,294,330,

220,196,196

DW392,392,392,330,392,440,392,330,440,440,392,330,294,392,294,

330,262,220

DW392,220,262,220,392,440,392,330,392,294,392,392,392,330,392,440,440,

392

DW330,440,440,392,440,392,330,294,294,392,294,330,262,220,196,220,262,

220,294,262,294,220,196

DW392,294,330,262,220,196,220,262,220,294,262,294,220,196,196,0

TIME1DW250,250,370,60,60,250,120,120,500,190,60,120,120,250,120,120,500,500

DW25,25,37,6,6,25,12,12,50,19,6,12,12,12,25,12,50,50

DW190,60,120,60,60,370,120,120,120,60,60,120,500,120,60,60,120,120

DW190,60,250,120,120,60,60,60,60,500,190,60,120,60,60,120,250,120

DW120,120,120,60,60,60,60,120,250,120,60,60,120,120,190,60,250,120,120,

60,60,120,500

DW120,60,60,120,120,190,60,250,120,120,60,60,120,500,500

FREQ2DW392,392,392,392,330,392,262,440,392,392,392,392,392,330,294,262,330,294

DW294,330,392,392,392,330,330,294,262,262,294,330,262,262,220,196,220,

196

DW392,392,392,330,392,262,440,392,392,392,392,392,330,294,262,330,294

DW262,330,294,294,330,392,392,330,330,294,262,262,294,330,262,262,220

DW196,392,392,392,392,330,294,262,440,392,392,440,262,294,262,294,330,

294,262,0

TIME2DW60,120,6,120,60,60,120,120,250,60,120,60,120,60,60,120,120,250

DW190,60,120,60,60,120,60,60,120,120,190,60,120,60,60,120,120,250

DW60,120,60,120,60,60,120,120,250,60,120,60,120,60,60,120,120,250

DW120,120,120,120,120,60,60,120,120,190,60,120,60,60

DW120,120,250,60,120,60,120,60,60,120,120,120,60,60,120,120,120,120,

250,250,500

FREQ3DW220,330,247,220,262,294,262,330,220,440,392,440,392,294,349,330,330,330

DW220,440,392,294,330,349,330,294,262,220,330,294,247,220,220

DW220,247,262,294,330,262,247,196,220,262,294,330,330

DW220,247,262,294,330,262,247,196,220,262,294,262,262

DW220,247,262,294,330,262,247,196,220,262,294,262,330,330

DW220,247,262,294,330,262,247,196,220,262,294,262,262,262

DW262,262,294,330,262,247,196,262,247,196,247,220,220,220,0

TIME3DW250,250,500,120,120,190,60,500,250,250,120,120,120,120,120,120,250,500

DW250,250,190,60,120,120,250,250,500,250,250,370,120,500,250

DW120,120,120,120,120,120,250,250,120,120,120,120,250

DW120,120,120,120,120,120,250,250,120,120,60,120,120,250

DW120,120,120,120,120,120,250,250,60,60,120,120,120,500

DW120,60,60,120,120,250,250,250,250,500,120,120,250,500

DATAENDS

STACKSEGMENT

DB200DUP(?

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETSTR1

MOVAH,9

INT21H

LEADX,STR2

LEADX,STR3

LEADX,STR6

LEADX,STR7

LEADX,STR8

LEADX,STR9

MOVAH,02H

MOVDL,0DH

MOVDL,0AH

JMPINPUT

XSH:

MOVAH,02H

LEADX,STR5

MOVAH,9

INT21H

INPUT:

MOVAH,1

CMPAL,'

Q'

JEEXIT;

若输入Q退出

A'

JNEN1;

不为‘A‘转N1

LEASI,FREQ1

LEABP,TIME1

LOP:

MOVDI,[SI]

CMPDI,0

JZXSH;

频率值为0,转XSH

MOVBX,DS:

[BP]

CALLPLAY

ADDSI,2

ADDBP,2

JMPLOP

JMPXSH

N1:

CMPAL,'

B'

JNEN2;

不为‘B’转N2

LEASI,FREQ2

LEABP,TIME2

N2:

C'

JNEERROR;

若不为’C’提示错误

LEASI,FREQ3

LEABP,TIME3

ERROR:

LEADX,STR4

MOVAH,9

MOVAH,9

INT21H

JMPINPUT

EXIT:

MOVAH,4CH

INT21H

PLAYPROC

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI

INT16H;

16号I/O中断功能调用

JZPLAY1

JMPSTART

play1:

MOVDX,io8253b

MOVAL,00110110B;

8253初始化

OUTDX,AL

MOVDX,12H

MOVAX,348CH;

时钟频率送AX

DIVDI;

MOVDX,io8253a

MOVAL,AH

MOVDX,io8255ctl;

设置8255C口输出

MOVAL,10000000B

MOVDX,io8255c

MOVAL,03h

OUTDX,AL;

置PC1PC0=11(开扬声器)

CALLDELAY;

延时

MOVAL,00H

OUTDX,AL;

置PC1PC0=00(关扬声器)

POPDI

POPDX

POPCX

POPBX

POPAX

RET

PLAYENDP

DELAY1PROC

SHLBX,1

DELAY:

MOVCX,0FFFFH

LOP10:

LOOPLOP10

DECBX

JNZDELAY

RET

DELAY1ENDP

CODEENDS

ENDSTART

八、设计体会

这次的接口课程设计使我学到了很多,从开始的设计到最后的成功运行,中间的过程是辛苦而美好的。

此次课程设计不仅使我的理论知识得到进一步的巩固,而且,通过对硬件的编程控制,使我的实践能力获得了很好的锻炼。

独立完成课程设计是美好的而难忘的,两周的课程设计,每一天都记忆犹新,提出问题,分析问题,再想办法解决问题。

在实验前做好充分的准备,以便在实验过程中尽量减少盲目的操作,以提高实验的效率。

实验的过程还培养了自己分析问题和解决问题的能力,发现问题,分析问题,然后通过查阅相关资料或请教同学或老师解决问题。

这个过程使我得到了很大的提高。

通过使用汇编语言编程实现歌曲播放,使我发现简短的汇编程序蕴含着丰富的美,每一条指令的功能,再到一组指令的效果,每一次功能的实现,都非常有趣。

随着课程设计的进展,离预计目标的实现越来越近,虽然在这个过程中一直有难题出现,但是通过分析,与同学探讨和查阅资料,问题也一步步得以解决,很是欣慰。

通过接口课程设计,我们将学到的硬件知识应用到实践中,用理论指导实践,用实践验证理论,使自己的知识越来越丰富,收获的快乐也越来越多。

不知不觉,两周的课程设计很快就结束了,在这两周的实践中我学到了很多,不仅使自己的理论知识得到了进一步的提高,同时理论联系实际的能力也有了很大的提升,在印象中原本很难的硬件编程现在变得不那么困难了,为我以后继续深入学习打下了坚实的基础。

九、其它

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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