微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx

上传人:b****1 文档编号:4432112 上传时间:2023-05-03 格式:DOCX 页数:19 大小:194.86KB
下载 相关 举报
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第1页
第1页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第2页
第2页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第3页
第3页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第4页
第4页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第5页
第5页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第6页
第6页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第7页
第7页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第8页
第8页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第9页
第9页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第10页
第10页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第11页
第11页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第12页
第12页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第13页
第13页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第14页
第14页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第15页
第15页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第16页
第16页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第17页
第17页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第18页
第18页 / 共19页
微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx

《微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。

微机原理与接口课程设计报告简单音乐播放器Word文档下载推荐.docx

来自于CPU的读控制信号输入引脚,低电平有效。

(3)WR:

来自于CPU的写控制信号输入引脚,低电平有效。

(4)CS:

芯片选择信号输入引脚,低电平有效。

(5)A1、A0:

地址信号输入引脚,用以选择8254芯片的通道及控制字寄存器。

(6).VCC及GND:

+5V电源及接地引脚。

(7)CLKi:

i=0,1,2,第i个通道的计数脉冲输入引脚,8254规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。

(8)GATEi:

i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。

(9)OUTi:

i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。

2.38254端口地址

8254控制字

说明:

(1)8254每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。

(2)8254编程时先写控制字,再写时间常数。

2.48254工作方式

(1)方式0:

计数结束产生中断方式

当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。

(2)方式1:

可编程单次脉冲方式

当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。

(3)方式2:

频率发生器方式

当初值装入时,OUT变为高;

计数结束,OUT变为低。

该方式下如果计数未结束,但GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数周期。

(4)方式3:

方波发生器

当装入初值后,在GATE上升沿启动计数,OUT输出高电平;

当计数完成一半时,OUT输出低电平。

方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,只是输出的波形不同。

(5)方式4:

软件出发选通方式

进入工作方式4,OUTi输出高电平。

装入计数值n后,如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUTi输出宽度为一个CLKi周期的负脉冲。

由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。

如果在操作的过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从初值开始减“1”计数。

(6)方式5:

硬件触发方式计数

进入工作方式5,OUTi输出高电平,硬件触发信号由GATE端引入。

因此,开始时GATE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUTi将输出负脉冲,其宽度固定为一个CLKi周期,表示定时时间到或计数次数到。

三、软件设计思路

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

不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。

CPU通过对定时器的通道2(端口地址为42)进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低控制通道2门控的开断。

以产生特殊的音响。

当定时器接收的计数值为533H时,能产生896Hz的声音,因此产生其他频率的计数值就可算出来:

533Hz×

896÷

频率=1234DC÷

频率

在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。

其位组合的格式如下:

当通道2用于发声时,采用的是模式3,在模式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。

产生指定频率声音的程序段如下:

MOVAL,0B6H

OUT43H,AL;

43H为8254的控制字端口

MOVDX,12H

MOVAX,34DCH

DIVDI;

(DI)=频率

OUT42H,AL;

42H为8254的通道2端口

MOVAL,AH

MOV42H,AL

从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。

送到扬声器的信号还受到了从并行接口芯片8255(端口地址为61H)来的双重控制,端口61H的最低位控制通道2的门控开断,以产生特殊的音频信号,端口61H的PA1位和定时器的输出信号同时作为与门的输入,PA0和PA1位可由程序决定为0还是为1。

显然只有PA0和PA1都是1时,才能使扬声器发出声音。

控制音长的时间可以简单地通过反复执行指令来得到。

我们知道执行2801次LOOP指令约需要10MS的时间。

因此用10MS的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长了。

实现程序如下:

INAL,61H

MOVAH,AL

ORAL,3

OUT61H,AL;

开扬声器

L:

MOVCX,2801

DY:

LOOPDY

DECBX

JNZL

关扬声器

四、功能流程图及子程序说明

1、总流程图

MAIN程序:

MAIN程序是总程序,输出说明,等待用户按键并读取键值。

根据不同的按键选择调用播音子程序播放不同的歌曲。

2、音乐播放子程序流程图

PLAY子程序:

PLAY子程序是播音子程序,SI指向音节表中的频率,BP指向音节表中的时间。

从SI的指向的音节表中取一个频率,只要不是-1,即有效就再读取时间,然后计算计数初值送入计数器,产生各种频率。

开启扬声器,根据所取的时间调用若干次延时子程序。

这段时间扬声器就发出该频率的声音,延时结束,就关闭扬声器,调用音节之间的小延时程序。

最后修改SI和BP,指向下一个频率,重复上面的工作

DELAY子程序和DELAY_OFF子程序:

两个都是子程序,采用空操作循环多次的方法,只是第二个延时时间较短,大概为5ms。

五、结果讨论:

初始界面:

如果按错了键,会出现如下界面:

如果选择正确,将出现如下界面:

六、心得体会

在本次设计中,可以说是一次成功的经验。

在我们学完了《微型计算机原理与接口技术》这门课的基础上来做这个设计,通过设计后,使我们对这门课的理论知识的理解有很大程度上的加强。

微机原理这门课程本身是一门实验性和工程性很强的专业技术课,因此不仅要重视理论教学,更应注意实践技能的培养和训练。

课程设计是这门课程的一个重要环节,通过课程设计,巩固、加深和拓宽了学习的理解,本课程设计的重点目标是使用汇编语言,而不过多涉及硬件方面的太多知识。

在编程方面我通过本次课程设计学到了很多。

一开始面对很长的程序往往有畏难情绪,感觉无法下手,没办法只能硬着头皮啃下去,多看几个和音乐播放有关的汇编程序,然后我就能慢慢看懂了并理解了别的作者的设计思路。

然后再根据自己的思路,对照本人在图书馆借的汇编语言指导书慢慢编写符合自己思路的程序。

一次写出来的程序肯定不会是正确的,还需要进一步调试它。

检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。

编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。

调试程序中,学习了DEBUG的使用,DEBUG对检查程序的错误作用很大。

同时,也要灵活使用各种调试方法,来缩小寻找错误的范围。

书到用时方恨少。

在课程设计过程中,我才体会到这句话的深意。

课堂上学的8254的知识和汇编语言都太少,还不足以完成本次课设,为此我经常跑图书馆借了各种各样的工具书。

有的书用处较大,有的书仅能用到一小块知识,就是这样,一步步在知识的海洋里我寻觅着自己需要的东西,确实克服了不少困难,解决了不少问题。

或许坎坷才能更好的使人成长。

在这次的课程设计中,我的收获是不但做出了一个符合要求的音乐播放器,而且为自己积累了一些宝贵的经验。

同时我也对音乐方面的频率知识有了一些认识,我想如果不是本次课程设计中用到这方面知识,我这辈子可能没有机会去接触这方面的知识了。

这,或许也是我比别的同学多出的一点收获吧!

七、参考文献

【1】杨全胜.现代微机原理与接口技术.电子工业出版社,2012

【2】沈美明.汇编语言程序设计实验教程.北京:

清华大学出版社,2012年

【3】周明德.微机原理与接口技术.北京:

人民邮电出版社,2012年

八、附录

1、源程序代码:

SSEGSEGMENTPARASTACK'

stack'

dw100hdup(0);

Resizethestackbychangingthenumber'

100'

SSEGENDS

DSEGSEGMENT

INFO1DB0DH,0AH,'

--------------------------'

0DH,0AH,'

THEREARE3SONGS:

'

0DH,0AH,0DH,0AH,'

$'

INFO2DB'

1.HAPPYBIRTHDAY'

INFO3DB'

2.SHEEP'

INFO4DB'

3.RIVER'

INFO5DB'

0.EXIT'

INFO6DB'

YOUHAVECHOSEN:

INFO7DB'

THANKYOUFORYOURUSE'

INFO8DB'

---------------------------'

PRESSTHEKEYTOSELECTSONG!

INFO9DB0DH,0AH,'

-------------------'

|INVALIDSELECTION|'

FREG1DW2dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349;

曲1的频率

DW330,294,466,266,440,349,392,349,-1

TIME1DW1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4;

曲1的时间

FREG2DW330,294,262,294,3DUP(330);

曲2的频率

DW3DUP(294),330,392,392

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

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

TIME2DW6DUP

(1),2;

曲2的时间

DW2DUP(1,1,2)

DW12DUP

(1),4

FREG3DW330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294;

曲3的频率

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

TIME3DW3DUP

(2),1,1,2,1,1,4;

曲3的时间

DW2DUP(2,2,1,1),4

DW3DUP(2,1,1,1),4

DSEGENDS

CSEGSEGMENT

assumecs:

CSEG,ds:

DSEG,es:

DSEG,ss:

SSEG

INITPROC;

初始化程序

movax,dseg

movds,ax

moves,ax

INITENDP

MAINPROC;

程序入口

callINIT

RE:

MOVDX,28BH;

关闭扬声器

MOVAL,89H

OUTDX,AL

MOVDX,28AH

INAL,DX

MOVDX,288H

OUTDX,AL

LEADX,INFO1;

输出说明信息

MOVAH,09H

INT21H

LEADX,INFO2

LEADX,INFO3

LEADX,INFO4

LEADX,INFO5

LEADX,INFO8

MOVAH,01H;

读取按键

CMPAL,'

1'

;

根据不同的按键播放不同的曲子

JEMUSIC1

2'

JEMUSIC2

3'

JEMUSIC3

0'

JEEXIT

LEADX,INFO9;

无效选择,输出错误提示

JMPRE

MUSIC1:

MOVSI,OFFSETFREG1;

指向曲1的表

MOVBP,OFFSETTIME1

CALLPLAY

MUSIC2:

MOVSI,OFFSETFREG2;

指向曲2的表

MOVBP,OFFSETTIME2

MUSIC3:

MOVSI,OFFSETFREG3;

指向曲3的表

MOVBP,OFFSETTIME3

EXIT:

LEADX,INFO7;

输出欢迎使用信息,增加界面友好度

movax,4c00h;

Theendoftheprogram,returntothesystem

int21h

MAINENDP

PLAYPROC;

PLAY子程序,功能上面介绍过

L1:

MOVBX,DS:

[SI];

取频率

CMPBX,-1;

看是否有效

JEL0;

无效就退出

MOVCX,DS:

[BP];

读取时间

MOVDL,CL;

保存时间

ADDDL,30H

MOVAH,02H

MOVDX,0FH;

计算计数初值,1M的十六进制为0F4240H

MOVAX,4240H

DIVBX

MOVBX,AX

MOVDX,283H;

设置计数器工作方式

MOVAL,36H

MOVDX,280H;

输入计数初值

MOVAX,BX

MOVAL,AH

NOTAL

ROD:

CALLDELAY;

延时

LOOPROD

MOVDX,28BH;

CALLDELAY_OFF;

音节间延时

ADDSI,2

ADDBP,2

JMPL1

L0:

RET

PLAYENDP

DELAYPROC;

延时子程序

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVBX,09FH

LL1:

MOVCX,0FFFFH;

循环这么多次

LOP:

LOOPLOP

JNZLL1

POPDX

POPCX

POPBX

POPAX

RET

DELAYENDP

DELAY_OFFPROC

PUSHAX

MOVBX,0FH

LL2:

MOVCX,0CFFFH

LOP2:

LOOPLOP2

JNZLL2

DELAY_OFFENDP

CSEGENDS

ENDMAIN

2、各个音符的对应频率表:

音符 

频率/HZ半周期/us 

频率/HZ 

半周期/us

低1DO 

262 

1908 

#4FA# 

740 

0676

#1DO# 

277 

1805 

中5SO 

784 

0638

低2RE 

294 

1700 

#5SO# 

831 

0602

#2RE# 

311 

1608 

中6LA 

880 

0568

低3M 

330 

1516 

#6LA# 

932 

0536

低4FA 

349 

1433 

中7SI 

988 

0506

#4FA# 

370 

1350 

高1DO 

1046 

0478

低5SO 

392 

1276 

#DO# 

1109 

0451

415 

1205 

高2RE 

1175 

0426

低6LA 

440 

1136 

1245 

0402

466 

1072 

高3M 

1318 

0372

低7SI 

494 

1012 

高4FA 

1397 

0358

中1DO 

523 

0956 

1480 

0338

554 

0903 

高5SO 

1568 

0319

中2RE 

578 

0842 

#5S0# 

1661 

0292

622 

0804 

高6LA 

1760 

0284

中3M 

659 

0759 

1865 

0268

中4FA 

698 

0716 

高7SI 

1976 

0253

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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