微机原理与接口技术简单的音乐选择播放器.docx

上传人:b****3 文档编号:10802475 上传时间:2023-05-27 格式:DOCX 页数:12 大小:39.73KB
下载 相关 举报
微机原理与接口技术简单的音乐选择播放器.docx_第1页
第1页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第2页
第2页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第3页
第3页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第4页
第4页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第5页
第5页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第6页
第6页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第7页
第7页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第8页
第8页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第9页
第9页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第10页
第10页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第11页
第11页 / 共12页
微机原理与接口技术简单的音乐选择播放器.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术简单的音乐选择播放器.docx

《微机原理与接口技术简单的音乐选择播放器.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术简单的音乐选择播放器.docx(12页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术简单的音乐选择播放器.docx

微机原理与接口技术简单的音乐选择播放器

 

微机原理与接口技术

课程设计报告

题目名称:

简单的音乐选择播放器

学生姓名:

学号:

专业年级:

09级计算计科学与技术

指导教师:

时间:

2012年1月1日

 

1.课程设计方案

本次课程设计,由于个人能力有限最终将设计改为利用汇编制作音乐选择播放器,PC机上的大多数I/O都是由主板上的8255可编程序外围接口芯片管理的。

由其输出寄存器中的0和1两位来控制扬声器的驱动方式。

2.课程设计任务和技术要求

根据所选题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过。

要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释,并在实验系统上调试通过。

能实现播放音乐并且实现单首音乐播放。

扩展功能有实现多首音乐连续播放和选择播放。

3、总体设计方案

3.1基本设计

本次所使用音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。

不同的音乐是由各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同字母选择不同的音乐播放。

而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。

3.2扬声器驱动

经过放大器后控制扬声器交替地接通与断开,从而推动扬声器的

纸盆振动,发出声音PPI包括三个8位寄存器,两个用于输入功能,一个用于输出功能。

输入寄存器分配的I/O端口号为61H。

由其输出寄存器中的0和1两位来控制扬声器的驱动方式如图3-1所视。

 

图3-1

3.3程序运行

3.3.1主要界面

程序主要界面如图3-2所示,按A、B、C进行选择。

图3-2

4、程序设计方案

4.1数据段设计

采用固定位置的方法,将所要显示的数据放入固定位置

datasegment

messagedb0dh,0ah,9,'thisisamusicprogram!

'

db0dh,0ah,9,'amusic1',9,'bmusic2',9,'cmusic3'

db0dh,0ah,9,'pleaseselect(escexit)',0dh,0ah,'$'

4.1代码段设计

采用音乐地址宏

addressmacroa,b

leasi,a

leabp,ds:

b

endm

5.心得体会

本次课程设计随着报告的完成也将告一段落,这次实践要求我们有很扎实的理论知识做基础,把课本上各章节的内容学懂,学透,融会贯通才能达到课题的要求。

通过这次设计,我对计算机接口这门课程有了更深的理解.本次课程设计在灵活运用汇编语言编写程序的基础上,通过对8255芯片的具体功能的深刻理解,对计算机接口的硬件的设计及其驱动程序的编制和调试的方法的运用,最终完成的设计要求.在设计的过程中我对原来学过的各种知识,有了更加明确的概念,曾经觉得很抽象的问题在这次设计中通过跟同学一起讨论以及查阅参考资料也逐渐解决了不少。

通过这次课程设计我感到学到了很多东西的,一方面加强了对硬件的了解:

很好的掌握了8253的功能。

但在将理论知识转化为实际应用的过程中,我也发现了许多问题,比如说编程能力差,不能够正确熟练的操作示波器,基础知识欠缺等。

这次设计中遇到的还没有解决的问题应该成为我们追求更深层次知识的动力,努力不懈的继续向前。

6.主要参考文献

[1]沈美明•IBM-PC汇编语言程序设计•(第2版)•清华大学出版社,2007

[2]胡钢•微机原理及应用•(第1版)•机械工业出版社,2006

[3]戴梅萼,史嘉权•微型计算机技术及应用•(第4版)•清华大学出版社,2008

附页:

datasegment

messagedb0dh,0ah,9,'thisisamusicprogram!

'

db0dh,0ah,9,'amusic1',9,'bmusic2',9,'cmusic3'

db0dh,0ah,9,'pleaseselect(escexit)',0dh,0ah,'$'

;**************************音乐一*****************************

mus_freg1dw262,262,294,262,349

dw330,262,262,294,262

dw392,349,262,262,523

dw440,349,262,262,466

dw466,440,262,392,349,-1

mus_time1dw50,50,100,100,100

dw100,100,50,50,100,100

dw100,100,100,50,50,100

dw100,100,100,100,100,50

dw50,100,100,100,100,100

;***************************音乐二****************************

mus_freg2dw262,294,330,262

dw262,294,330,262

dw330,349,392

dw330,349,392

dw392,440,392,349,330,262

dw392,440,392,349,330,262

dw294,196,262

dw294,196,262,-1

mus_time2dw50,50,100,100,100

dw100,100,50,50,100,100

dw100,100,100,50,50,100

dw100,100,100,100,100,50

dw50,100,100,100,100,100

;****************************音乐三***************************

mus_freg3dw330,392,330,294,330,392,330,294,330

dw330,392,330,294,262,294,330,392,294

dw262,262,220,196,196,220,262,294,332,262,-1

mus_time3dw3dup(50),25,25,50,25,25,100

dw2dup(50,50,25,25),100

dw3dup(50,25,25),100

dataends

stacksegment

db200dup('stack')

stackends

codesegment

assumeds:

data,ss:

stack,cs:

code

start:

;**********************音乐地址宏

addressmacroa,b

leasi,a

leabp,ds:

b

endm

;***********************

movax,data;数据段装入段寄存器ds

movds,ax

movax,0b800h

moves,ax

cld

movax,3

int10h;十号doc中断

leadx,message

movah,9

int21h

input:

movah,0

int16h

cmpah,01h;按下esc键时演奏结束。

jzretu;退出

cmpah,1eh;'a'

jnzb0

moval,70h

movdx,707h

addressmus_freg1,mus_time1

callmusic

jmphere

b0:

cmpah,30h;'b'

jnzc0

moval,7

movdx,7007h

addressmus_freg2,mus_time2

callmusic

jmphere

c0:

cmpah,2eh;'c'

jnzhere

moval,7

movdx,770h

addressmus_freg3,mus_time3

callmusic

here:

jmpinput

retu:

movah,4ch

int21h

;******************************************发声

gensoundprocnear;清屏子程序

pushax;保存将要用到的寄存器

pushbx

pushcx

pushdx

pushdi

moval,0b6h

out43h,al

movdx,12h;设置被除数

movax,348ch

divdi;其商(ax)为预置值

out42h,al;后送msb

moval,ah

out42h,al;先送lsb

inal,61h;读8255端口b(61h)原值

movah,al;保存端口原值

oral,3

out61h,al;接通扬声器

wait1:

movcx,3314

callwaitf

delay1:

decbx

jnzwait1

moval,ah

out61h,al

popdi

popdx

popcx

popbx

popax

ret

gensoundendp

;********************************************

waitfprocnear

pushax

waitf1:

inal,61h

andal,10h

cmpal,ah

jewaitf1

movah,al

loopwaitf1

popax

ret

waitfendp

;*********************************************

musicprocnear

callkkk

freg:

movdi,[si]

cmpdi,-1

jeend_mus

movbx,ds:

[bp]

callgensound

addsi,2

addbp,2

jmpfreg

end_mus:

ret;子程序结束返回

musicendp

;***************************

kkk:

movdi,(80*2+8)*2+1

movcx,8

k1:

stosb

incdi

loopk1

adddi,8*2

moval,dh

movcx,8

k2:

stosb

incdi

loopk2

adddi,8*2

moval,dl

movcx,8

k3:

stosb

incdi

loopk3

ret

codeends

endstart

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

当前位置:首页 > 工作范文 > 行政公文

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

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