单片机电子音乐盒的设计13.docx

上传人:b****5 文档编号:6753211 上传时间:2023-01-10 格式:DOCX 页数:56 大小:1.15MB
下载 相关 举报
单片机电子音乐盒的设计13.docx_第1页
第1页 / 共56页
单片机电子音乐盒的设计13.docx_第2页
第2页 / 共56页
单片机电子音乐盒的设计13.docx_第3页
第3页 / 共56页
单片机电子音乐盒的设计13.docx_第4页
第4页 / 共56页
单片机电子音乐盒的设计13.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

单片机电子音乐盒的设计13.docx

《单片机电子音乐盒的设计13.docx》由会员分享,可在线阅读,更多相关《单片机电子音乐盒的设计13.docx(56页珍藏版)》请在冰豆网上搜索。

单片机电子音乐盒的设计13.docx

单片机电子音乐盒的设计13

摘要

单片机的易用性与多功能性使它广泛应用于各种微控制系统。

本文介绍了一种基于单片机的电子音乐盒的设计,它是以AT89C2051单片机为控制核心,辅以一些外围器件,采用汇编语言编写程序,实现音乐播放功能。

并在音乐盒基础上利用单片机闲置P1口拓展了LED点阵移位显示功能。

整个系统电路结构简单,可靠性能高,测试结果满足设计要求。

本文着重介绍了该系统的设计原理,硬件设计方法与软件编程思路。

关键字:

单片机、AT89C2051、音乐盒、LED移位显示

 

ABSTRACT

TheeaseofuseandversatilitymakeSCMwidelyusedinvariousmicro-controlsystem.ThispaperintroducesaSCM-basedelectronicmusicboxdesign,whichisbasedonAT89C2051singlechipmicrocomputerascontrolcore,supplementedbysomeperipheralelements,usingassemblylanguageprogrammingtorealizemusicplayingfunctions.UtilizingtheresiduaryportP1ontheSCM,itextendsthefunctionofthismusicbox,whichcouldmakeLEDlatticeshiftdisplay.Theelectriccircuitconstructionofthewholesystemissimple,thefunctionhashighreliabilityandtheexperimenttestresultssatisfytherequest.Thispaperemphasizeintroducesthedesignprincipleofthesystem,hardwaredesignandsoftwareprogrammingideas.

Keywords:

SCM,AT89C2051,musicbox,LEDshiftdisplay

 

第1章引言

1.1单片机介绍

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

单片机也被称为微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

单片机由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

早期的单片机都是8位或4位的。

其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。

此后在8031上发展出了MCS51系列单片机系统。

基于这一系统的单片机系统直到现在还在广泛使用。

随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。

90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。

随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。

而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。

目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。

而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

由于单片机具有控制功能强,体积小,成本低,功耗小等一系列的特点,使它在工业控制,智能仪器,节能技术改造,通信系统,信号处理及家用电器产品中都得到广泛的应用,随着数字技术的发展及单片机在电子系统中的广泛应用,在很大程度上改变了传统的设计方法。

以往采用模拟电路,数字电路实现的电路系统,大部分功能单元都可以通过对单片机硬件功能的扩展及专用程序的开发来实现系统提出的要求,这意味着许多电路设计问题将转化为程序设计问题。

这种用模拟技术,数字技术的综合设计系统,用软件取代硬件实现和提供系统系能的新的设计思想体系,一般称之为微控制技术。

在微控制系统的设计中,系统设计和软件设计起着关键性的作用。

1.2单片机音乐

电子音乐已广泛地应用于社会生活的各个领域。

其类型从音乐卡片到CD、MP3等多种多样,制作原理也各不相同。

声音是通过振动产生的。

单片机对某一I/O引脚以一定的频率循环置1和清0,这一引脚便产生一定频率的方波,该方波通过放大后作用于扬声器便产生一定频率的声音。

若改变输出方波的频率,产生的声音也就改变了。

通过控制输出方波的时间长短,声音的长短也就得到控制。

因此,根据乐谱,单片机就可产生电子音乐。

音乐中最关键的两个要素是音符和节拍。

单片机控制的音乐发生器系统由硬件电路和软件两部分构成。

利用单片机控制的电子音乐发生器软硬件上具有独特的优点,系统的开发周期短,成本低,电路制作容易。

更换歌曲时,硬件电路无需作任何修改,只需修改软件即可实现。

软件编程时,可用51系列单片机的汇编语言或C51语言实现。

同时还可根据个人的习好通过软件改变节拍的延时时间,增加电子音乐的趣味性。

第2章设计要求及理论基础

设计一个单片机作品,首先需要有个总体的框架,并根据作品的设计要求选定合适的设计方案对其论证、选取合适的器件。

本章主要阐述基于单片机的电子音乐盒设计方案与论证。

2.1设计要求

2.1.1基本要求

1)以单片机为核心器件组成一个音乐盒;

2)音乐盒音符范围:

C调低音5\s\do8(·)~高音

3)内部存储至少两首以上可以播放的歌曲;

4)加一个按键,每按一次按键顺序播放一首歌曲。

2.1.2创新部分

增加7×5LED点阵,通过硬件、软件设计使之移位显示字符,以拓展音乐盒功能、添加视觉效果、增强趣味性。

2.1.3成果形式

硬件加软件。

2.2相关音乐知识

在人类还没有产生语言时,就已经知道利用声音的高低、强弱来表达自己的思想和感情。

声带、琴弦等物体振动时就会发出声波,声波通过空气传播进入人耳,人们就听到了声音。

声音有噪音和乐音之分,乐音是振动有规律的,如人声带发出的歌声、由琴弦发出的琴音等。

音乐中所有的声音主要是乐音。

乐音听起来有的高低之分,这就叫音高。

音高由发声物体振动频率的高低决定,高音的频率高,低音的频率低。

比如,女人唱歌时声带振动频率高,男人唱歌时声带振动频率低,所以女声比男生高。

音乐中所用乐音范围从每秒钟振动16次的最低音到每秒钟振动4186次的最高音,大约97个。

不同音高的乐音是用C、D、E、F、G、A、B来表示的,这7个字母就是乐音的音名;他们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。

把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。

两个音质间的距离有两个“半音”的,就叫“全音”。

一般,那些唱成DO、RE、MI、FA、SO、LA、SI的音叫自然音,在它们的左上角加上#号或b号的叫变化音。

#叫升记号,表示把音在原来的基础上升高半音;b叫降记号,表示把音在原来的基础上降低半音。

音持续时间的长短即时值,一般用拍数表示。

休止符表示暂停发音。

一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加之与拍数对应的延时构成音乐。

2.3单片机产生音频脉冲原理

通过上小节内容可知,产生不同频率的音频脉冲就能产生音乐。

单片机产生不同频率的脉冲可以利用它的定时/计数器来产生特定方波频率信号。

以下将分析音乐的音符和对应的频率,以及单片机定时计数的关系。

2.3.1音符频率

音符对应不同的音调其频率也有所不同,如表2-1所示。

表2-1对应不同音调的音符频率表

音调

音符

1\s\do8(·)

2\s\do8(·)

3\s\do8(·)

4\s\do8(·)

5\s\do8(·)

6\s\do8(·)

7\s\do8(·)

C

262

294

330

350

393

441

495

D

294

330

371

393

441

495

556

E

330

371

416

441

495

556

624

F

350

393

441

467

525

589

661

G

393

441

495

525

589

661

742

A

441

495

556

589

661

742

833

B

495

556

589

661

742

833

935

音调

音符

1

2

3

4

5

6

7

C

523

589

661

700

786

882

990

D

589

661

700

786

882

990

1112

E

661

700

786

882

990

1112

1248

F

700

786

882

990

1112

1248

1322

G

786

882

990

1112

1248

1322

1484

A

882

990

1112

1248

1322

1484

1665

B

990

1112

1248

1322

1484

1665

1869

2.3.2定时/计数器0产生音符频率

采用12MHz时钟频率,利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制某一引脚的输出每次取反,就可以在该引脚输出相应的方波频率。

改变计数初值就可以改变频率。

即要产生音频输出方波,首先要算出某一音频的周期(1/频率),然后将此周期除以2得到半个周期的时间。

定时器的定时时间等于半个周期,定时时间到就将输出脉冲取反,重复上述过程,就可在该引脚上得到某一音频的脉冲。

其中,

定时时间=(216-计数初值)×时钟周期×12

或定时时间=(216-计数初值)×机器周期

因此计数初值=216-定时时间机器周期

例如:

中音1(DO)的频率=523Hz,周期T=1523s=1912μs;

定时/计数器0的定时时间为:

T2=19122μs=956μs;

定时956μs的计数值=定时时间机器周期=956μs1μs=956;

装入定时器0的计数初值THTL=65536-956=64580。

将64580装入TH0、TL0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务程序,每次对该引脚的输出值进行取反,就可得到中音DO(523Hz)的音符频率。

通过上述方法依次求出音符C调低音5\s\do8(·)~高音

的所有计数初值。

例如:

C调的低音DO的THTL=65536-500000/262=63627,高音DO的THTL=65536-500000/1047=65058。

为了编程记谱方便,对它们进行简单的音符编码,如表2-2所示。

在编程中,歌曲的音符用音符编码记谱,然后根据音符编码查找对应的计数初值。

表2-2音符、音符编码及定时器初值对应表

音符

THTL

音符编码

音符

THTL

音符编码

5\s\do8(·)

64263

1

7

65031

A

6\s\do8(·)

64402

2

65087

B

7\s\do8(·)

64526

3

65136

C

1

64580

4

65161

D

2

64668

5

65200

E

3

64780

6

65236

F

4

64822

7

不发音

0

5

64900

8

6

64970

9

2.4单片机实现音乐的节拍

除了音符以外,节拍也是音乐的关键组成部分。

节拍实际上就是音持续时间的长短,在单片机系统里可以用延时来实现。

如果1/4拍的延时设为0.1秒,则1拍的延时是0.4秒。

以此类推:

假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是它的倍数。

如表2-3所示。

为了记谱方便,将节拍数也进行了编码。

由于不同的音乐每小节的拍数不同,可以适当调节一个延时时间的长度,如表2-4所示。

表2-3节拍与节拍编码对照表

按1/4拍为一个延时时间

按1/8拍为一个延时时间

编码

节拍

编码

节拍

编码

节拍

编码

节拍

1

1/4

6

112

1

1/8

6

3/4

2

2/4

8

2

2

1/4

8

1

3

3/4

A

212

3

3/8

A

114

4

1

C

3

4

1/2

C

112

5

114

F

334

5

5/8

表2-41/4节拍与1/8节拍延时时间设定表

乐谱节拍

1/4拍的延时时间/ms

乐谱节拍

1/8拍的延时时间/ms

4/4

125

4/4

62

3/4

187

3/4

94

2/4

250

2/4

125

2.5音频功放

在一定频率范围内,具有固定频率的振动就能产生乐音,但是单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。

常常采用美国国家半导体公司的低压音频功率放大器LM386实现音频功放电路。

LM386具有以下功能特性:

●适于电池工作;

●使用外部元件少;

●供电范围宽:

4~12V或者8~18V;

●低静态电流消耗:

4mA;

●电压增益范围:

20~200V。

LM386的增益可调,可以广泛应用于各种音频电路中。

LM386的内部结构及音频放大原理将在将在下一章具体阐述。

2.6小结

知道了课题的设计要求与其所使用的基础原理,我们就能进行方案的选取和设计,下面两章将从单片机电子音乐盒的硬件设计和软件设计两个方面进行详细介绍。

 

第3章硬件设计

设计一个单片机作品,首先需要有个总体的框架,并根据作品的设计要求选定合适的设计方案以及选取合适的器件。

本次单片机音乐盒设计采用以下设计思路:

1)选取合适型号的单片机,通过T0定时中断,并配合一个I/O引脚输出音频频率,通过音频放大电路外接扬声器。

2)通过另外一个引脚利用中断方式接入“播放音乐”选择按键;

3)利用一组或两组I/O口,外接LED点阵驱动电路实现字符的移位显示。

3.1方案选取

3.1.1单片机的选取

首先选择单片机中最为普遍的MCS51系列。

其中AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C2051单片机可应用于许多高性价比的应用场合。

主要性能:

●和MCS-51产品兼容;

●2KB可重编程FLASH存储器(1000次);

●2.7-6V电压范围;

●全静态工作:

0Hz-24KHz

●2级程序存储器保密锁定

●128*8位内部RAM

●15条可编程I/O线

●两个16位定时器/计数器

●6个中断源

●可编程串行通道

●高精度电压比较器(P1.0,P1.1,P3.6)

●直接驱动LED的输出端口

由于完成核心功能——音频输出只需一个I/O口,并且额外功能LED移位显示可根据所选单片机的剩余I/O口进行设计,因此AT89C2051足以满足基本要求。

其20个引脚体积小巧,内部2k字节的程序存储器容量适中,低压低频工作条件,并且价格低廉容易购得。

综上,本次设计选择AT89C2051单片机。

3.1.2音频放大电路的选择

方案一:

甲类功放。

甲类功放的功率管在输入信号一周内都是导通的(放大区,即导通角为360°)。

甲类功放最大的缺点是效率低。

图3-1是将扬声器负载RL直接接在音频放大器发射极的甲类功放电路,这种连接称为负载直接耦合甲类功放。

若工作点安排在最大动态范围点——负载线中点(负载直接耦合交直流负载线相同),且不计饱和压降,则RL上信号电压振幅等于电源电压VCC的一半(见图3-2),所以最大输出功率

P0=12Vom2RL=18Vcc2RL(3-1)

电源消耗的功率

Pcc=IcVcc=12Vcc2RL(3-2)

故负载直接耦合甲类功放的最大效率只有25%。

此外,有一种使用变压器实现阻抗变换的甲类功放,其理论效率能达到50%。

但是由于低频变压器功率消耗大,频率特性也差,现在已较少使用。

图3-1负载直接耦合甲类功放电路

图3-2甲类功放工作图解

方案二:

乙类功放。

晶体管只有半周期工作在放大区(导通),另外半周期截止,即导通角为180°的工作状态。

电阻作为负载的乙类功放必须采用双管,让其轮流导通半周期,才能在负载RL上合成完整的输出电压,因此称为“推挽”电路。

乙类功放在静态时电源不消耗功率,因此效率较甲类功放大大提高,理论上可达78.5%。

方案三:

甲乙类功放。

乙类功放的效率虽然高于甲类功放,但非线性失真却比甲类功放大。

尤其是输入信号较小时,乙类功放的非线性失真严重。

这是因为BJT的发射结存在导通电压所致。

为了解决这一问题,可对推挽功率管设置一定的放大偏置,使功率管工作时导通时间在半周期以上(导通角大于180°),这类功放称为甲乙类功放,其失真小于乙类功放,当然效率也低于乙类功放。

方案四:

丙类功放。

功率管导通时间小于半周期的功放。

丙类功放只有用具有选频特性的原件作负载才能克服非线性失真。

它主要用于射频载波信号的放大。

综上,本设计的音频放大将采用乙类功放。

特别是,在美国国家半导体公司生产的芯片中有一款主要应用于低电压消费类产品的音频功率放器LM386。

LM386的第三级放大采用的正是乙类功放推挽电路。

LM386为使外围元件最少,电压增益内置为20。

若在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。

输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。

因此,我们将采用LM386为核心器件的音频放大电路。

LM386的功能特性、内部结构及原理将在后文阐述。

3.1.3中断方式

根据单片机TMOD寄存器中的M1和M0位的设定,定时/计数器可选择4种不同的工作方式。

定时∕计数器0和1的前3种工作方式相同,方式3的设置差别较大,此处不予考虑。

方案一:

工作方式0。

方式0是13位结构,由TH的高8位和TL的低5位构成,TL的高3位未用。

当TL的低5位计数溢出时想TH进位;当全部13位计数溢出时,则将溢出标志TF置1,在中断允许的情况下可产生中断申请。

方式0的定时时间范围为1~8192us,计数值的范围为1~8192。

方案二:

工作方式1。

方式1是16位计数结构。

定时∕计数器由TH的全部高8位和TL的全部低8位组成。

方式1的定时时间范围为1~65.5ms,计数值的范围为1~65536。

方式三:

工作方式2。

方式2具有自动重新加载功能,变软件加载为硬件加载。

此时将16位计数器分为两部分:

用TL作计数器,用TH作预置计数器。

程序初始化是把计数初值分别装入TL和TH中,当计数器溢出后,预置计数器TH便以硬件方法自动向计数器TL重新加载。

方式2定时时间范围为1~256us,计数值的范围为1~256。

在本设计中定时/计数器主要用以装载不同音符的半周期时间以定时控制I/O口取反,输出不同频率的音调。

基于上述用途,16位的计数器方便使用和编程,故采用方案二的工作方式1。

3.1.4LED显示方式

方案一:

静态显示。

将一帧图像中的每一个二极管的状态分别用0和1表示,若为0,则表示LED无电流,即暗状态;若为1则表示二极管被点亮。

若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED的状态保持到下一幅画。

对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。

方案二:

动态显示。

对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。

动态显示方式,可以避免静态显示的问题。

但设计上如果处理不当易造成亮度低,闪烁问题。

因此合理的设计既应保证驱动电路易实现,又要保证图像稳定、无闪烁。

动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。

通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时显示亮度较好,无闪烁感。

鉴于上述原因,采用方案二。

3.1.5LED驱动电路

方案一:

采取并口输入,占用大量I/O口资源。

方案二:

选取串口输入,使用较少。

所以选用串口输入。

串口输入可以选用芯片有74HC595、74LS164。

同时74HC595、74LS164具有串入并出8位移位功能,也易于与单片机配合实现LED点阵的字符移位显示功能。

鉴于上述原因,采用方案二。

3.2硬件电路的实现

附加LED点阵的电子音乐盒的硬件电路由8部分组成:

单片机、时钟与复位

电路、选择按键输入电路、音频发生器、音频放大器、扬声器、LED驱动电路和LED点阵。

电子音乐盒的硬件电路设计框图如图3-3所示。

利用单片机内部定时/计数器0与P3.0引脚配合,构成音频发生器;音频放大器主要由音频放大芯片LM386构成,用以驱动扬声器输出;选择按键通过P3.2引脚接入,可以工作在查询方式,也可以工作在中断方式;LED驱动电路主要由8位移位寄存器74HC595和74LS164构成。

图3-3电子音乐盒硬件电路设计框图

3.2.1AT89C2051单片机硬件结构

单片机作为系统的核心控制部件,其内部结构及引脚分布将对整个硬件电路的设计布局起到决定性的作用。

下面将介绍AT89C2051的内部结构与引脚分布。

3.2.1.1AT89C2051单片机内部结构

AT89C2051单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上,除模拟比较器外其内部结构与8051内部结构基本一致。

如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。

它们都是通过片内

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

当前位置:首页 > 医药卫生 > 基础医学

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

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