音乐发生器Word下载.docx

上传人:b****3 文档编号:8033355 上传时间:2023-05-09 格式:DOCX 页数:14 大小:177.31KB
下载 相关 举报
音乐发生器Word下载.docx_第1页
第1页 / 共14页
音乐发生器Word下载.docx_第2页
第2页 / 共14页
音乐发生器Word下载.docx_第3页
第3页 / 共14页
音乐发生器Word下载.docx_第4页
第4页 / 共14页
音乐发生器Word下载.docx_第5页
第5页 / 共14页
音乐发生器Word下载.docx_第6页
第6页 / 共14页
音乐发生器Word下载.docx_第7页
第7页 / 共14页
音乐发生器Word下载.docx_第8页
第8页 / 共14页
音乐发生器Word下载.docx_第9页
第9页 / 共14页
音乐发生器Word下载.docx_第10页
第10页 / 共14页
音乐发生器Word下载.docx_第11页
第11页 / 共14页
音乐发生器Word下载.docx_第12页
第12页 / 共14页
音乐发生器Word下载.docx_第13页
第13页 / 共14页
音乐发生器Word下载.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

音乐发生器Word下载.docx

《音乐发生器Word下载.docx》由会员分享,可在线阅读,更多相关《音乐发生器Word下载.docx(14页珍藏版)》请在冰点文库上搜索。

音乐发生器Word下载.docx

1.2课程设计任务和要求

设计与制作一个音乐发生器

要求:

1.能演奏一首完整的歌曲,同组成员歌曲不得相同;

2.在演奏歌曲时,同时伴有彩灯(LED)闪烁;

3.能演奏3首以上歌曲,并采用界面对话框形式来选择演奏的歌曲。

任务:

1.进行音乐发生器硬件电路设计,画出电路原理图、PCB图或元器件布线图;

2.安装或焊接元器件;

3.进行音乐发生器程序设计(采用ASM或CPP语言);

4.系统联调,提交符合上述二种以上要求的系统设计。

1.3课程设计环境

1.PC兼容机

2.Windows操作系统

3.MFID多功能微机实验平台(含PCI总线驱动板)或多功能实训平台

4.MF2KI集成开发环境

5.面包板或外设功能模块板

6.安装或焊接工具

1.4实验资源配置

1.电源:

机内供电;

2.I/O端口地址:

8255A的4个端口地址分配为,PA口=300H,PB=301H,PC=302H,控制口=303H;

8253的4个端口地址分配为,T0=304H,T1=305H,T2=306H,命令口=307H。

4DIP地址开关全部为ON。

3.元器件:

外设功能模块中包含74LS245,74LS08,功放级LM386A,LED8个,排阻1个,电阻和电容若干以及喇叭SPK。

4.软件资源:

MF集成开发环境与工具软件(Windows2000/98版)。

二、概要设计

2.1设计内容

利用开发实验平台和自制的音乐发生器模块板进行硬件连接,利用MF集成开发环境进行音乐发生器控制程序设计,调试,直至听到正常的乐曲。

当控制程序执行时便开始演奏歌曲,并于屏幕上显示歌曲名称。

另外歌曲演奏的过程中LED跟随闪亮,歌曲结束或者按任意键停止演奏,退出程序执行。

2.2电路原理框图

2.3实验元件清单

序号

元器件名称

型号

数量

1

芯片

(1)74LS45

(2)74LS138

(3)8255

(4)8253

(5)LM386

(5)74ls08

2

发光二极管

¢5

8

3

排阻

8*150n

4

电阻

(1)10k

(2)4.7K

10Ω1/8W

5

电容

470uf20v

2

6

嗽叭

0.58n

7

导线

1扎

2.4音乐乐曲的音高和节拍

音高是指每个音符发声的高低,即音符的频率。

节拍是指每个音符发声的长短,即音符持续的时间,也就是延时。

音符12345671234567ⅰ

频率131147165175196220247262294330349392440494523

表2.4—1音符-频率对照表

 

表2.4—2音符-延时对照表

音符

全音符

二分音符

四分音符

八分音符

时间

1760ms

880ms

440ms

220ms

倍数

32

16

三、详细设计

3.1硬件设计

3.1.1可编程定时/计数器8253

8253用来实现将频率信号送进喇叭SPK而发声。

8253是可编程的定时/计数器,它是24脚双列直插式芯片,+5V电源供电,每个芯片内部有3个独立的计数器(计数通道),每个计数器都有自己的时钟输入CLK、技术输出OUT和门控制信号GATE。

通过编程选择计数器和设置工作方式,计数器既可作计数器用,也可作定时器用,故称定时/计数器,记作T/C。

其引脚分布图见下图:

在实验中设置一个数组,用以存储要演奏的乐曲的频率段,程序运行时,边读取频率边计算送入8253的计数初值,接下来就可以将8253输出端OUT形成的频率段送入扬声器中来发出各种频率声音。

对于延时控制,将采用软件中设置延时数组来实现。

3.1.2可编程并行接口8255

实验中要跟踪乐曲演奏情况,这里我们借助于8255A数据口的传送数据的功能实时将LED闪亮的信息送入LED。

8255A是可编程并行接口,它具有两个8位(A口和B口)和两个4位(C口高/低4位)。

C口作为数据口输入输出时,是4位一起行动,A口和B口只作输入/输出的数据口用,它们是8位一起行动。

它是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如图所示

设计中采用的是8255A芯片PB口的8位来传输的。

接着连接到74LS245芯片,借助74LS245将音乐信息发至8个LED(LED上还需要接限流电阻)。

3.1.3功放器件LM386

在电子电路中,信号得到放大后最终是要以一定功率大小输出给负载,因此输出级往往由功率放大电路组成,它给负载提供足够大的信号功率。

如图3.1.3—1所示。

本实验中的功放任务由LM386A来完成,其连接如图3.1.3—2所示。

LM386A是一种设计用于低压应用的电路。

增益内部设定为20以保持外部元件最少,但是在管脚1和管脚8之间增加外部电阻和电容可使增益提高,可高到200。

3.1.4实验电路搭建

图3.1.4音乐发生器电路图

按照电路图用电线连接所有元器件。

布局原则:

a、元器件在面包板上均匀分布;

b、按从左到右的顺序依次布局输入、输出部分的元器件;

c、使所用到的连接电线最少;

d、地线和电源线分别接至面包板的上下边缘,电路中的接地和接电源部分皆由面包板边缘处接出。

3.2软件设计

3.2.1程序流程图

3.2.2参考程序清单

#include<

dos.h>

//getvect();

setvect();

conio.h>

//kbhit();

stdlib.h>

//exit(0);

stdio.h>

//printf();

#ifdef__cplusplus

#define__CPPARGS...

#else

#define__CPPARGS

#endif

shortintnFreq[3][100]={

//美酒加咖啡

{

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

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

262,220,262,196,220,262,220,196,165,196,

220,262,196,196,165,196,220,262,294,330,

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

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

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

262,262,294,330,392,294,196,330,294,262,0

},

//一分钱

392,523,440,523,392,330,392,294,330,392,

330,392,440,523,392,440,392,330,392,262,

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

392,440,392,523,440,392,330,392,294,392,

294,330,294,262,0

//婚礼进行曲,频率为原来1/2

392,523,523,523,392,587,494,523,

392,523,698,698,659,587,523,494,523,587,

392,523,523,523,266,587,494,523,

392,523,659,784,659,523,494,587,659,523,

698,659,587,440,440,440,494,523,587,

698,659,587,440,440,440,494,523,523,0

}

};

shortintnTimeDelay[3][100]={

//美酒加咖啡延时,这里的8表示一拍

12,4,4,4,4,4,32,8,4,4,

4,4,4,4,32,12,4,8,8,4,

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

4,4,32,8,4,4,8,8,4,2,

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

4,4,32,12,4,8,8,4,4,4,

4,16,4,4,4,4,4,4,4,4,

32,4,4,4,4,4,4,4,4,32

8,8,4,4,8,4,4,4,4,16,

4,4,4,4,4,4,4,4,4,8,

4,16,4,4,4,4,16,4,4,

4,4,16,4,4,4,4,4,4,8,

4,4,4,4,16

//婚礼进行曲延时

8,6,2,12,8,6,2,12,

8,4,4,8,4,2,8,6,2,12,

8,6,2,8,6,2,8,6,2,12,

8,4,4,8,8,8,6,2,12,

8,4,4,8,8,8,6,2,16

constunsignedlongCLK=1193180;

//声明时钟频率

constunsignedcharINTR=0X1C;

//声明中断号

shortint*pFreq;

//声明音频指针

shortint*pTimeDelay;

//声明延时指针

voidinterrupt(*oldhandler)(__CPPARGS);

voidinterrupthandler(__CPPARGS)

{

(*pTimeDelay)--;

//延时点数减一

oldhandler();

//调用原例程

}

intPlaying(void);

voidmain(void)

printf("

nowplaymusic!

\n"

);

strikeESCtoexit\n"

Playing();

intPlaying(void)

oldhandler=getvect(INTR);

//保存原中断向量

setvect(INTR,handler);

//装载新中断向量

outportb(0x303,0x90);

//初始化8255<

A口工作方式0,输入,B口工作方式0,输出.C口高四位输入,C口低4为输出>

outportb(0x303,0x0c);

//置pc6=0禁止8253通道2的gate引脚<

置PC5=0>

outportb(0x303,0x00);

//置pc0=0禁止74LS08

outportb(0x307,0xb6);

//初始化8253<

选择计数器2,先写低,再写高,方式3方波发生器,二进制初值写入>

//这里默认播放第一首,可以调整下标换

pFreq=nFreq[0];

//取歌曲的第一个音频

pTimeDelay=nTimeDelay[0];

//取歌曲的第一个时延

while(*pFreq&

&

!

kbhit())

{

outportb(0x306,(unsignedchar)(CLK/*pFreq%256));

//先送低字节(CLK/*pFreq为要减的次数)

outportb(0x306,(unsignedchar)(CLK/*pFreq/256));

//再送高字节

//以上置8253通道2的计数初值

outportb(0x303,0x01);

//<

置PC0=1>

outportb(0x303,0x0d);

//<

置PC6=1,既让定时器2开始工作>

结果是扬声器打开开扬声器

while(*pTimeDelay){};

//等待延时到

outportb(0x303,0x0c);

PC6=0,8253的定时器2停止产生频率>

outportb(0x303,0x00);

//<

PC0=0关闭扬声器>

pFreq++;

//获取下一个音频

pTimeDelay++;

//获取下一个延时

}//歌曲结束或按了任意键

//再次关闭扬声器

setvect(INTR,oldhandler);

//恢复原中断向量

return0;

四、测试与操作说明

4.1测试与操作

1.准备元器件;

2.按照自己设计得到的电路图连线;

3.打开软件平台MF2KI内的音乐发生器运转程序(事先设计好的);

4.观察是否得到预期效果。

4.2操作

1.分析算法,画流程图;

2.设计编写程序;

3.通过测试,观察是否成功。

最后,将硬件连接和软件编程结合起来测试

五、课程设计总结与体会

六、致谢

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

当前位置:首页 > 工程科技 > 能源化工

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

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