单片机电子音乐盒的设计13Word文件下载.docx
- 文档编号:19771428
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:56
- 大小:1.15MB
单片机电子音乐盒的设计13Word文件下载.docx
《单片机电子音乐盒的设计13Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机电子音乐盒的设计13Word文件下载.docx(56页珍藏版)》请在冰豆网上搜索。
在微控制系统的设计中,系统设计和软件设计起着关键性的作用。
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
371
556
E
416
624
F
467
525
589
661
G
742
A
833
B
935
1
2
3
4
5
6
7
523
700
786
882
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
音符编码
64263
65031
64402
65087
64526
65136
64580
65161
64668
65200
64780
65236
64822
不发音
64900
8
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/4
112
1/8
3/4
2/4
212
3/8
114
1/2
334
5/8
表2-41/4节拍与1/8节拍延时时间设定表
乐谱节拍
1/4拍的延时时间/ms
1/8拍的延时时间/ms
4/4
125
62
187
94
250
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口、串行口、定时器/计数器、中断系统及特殊功能寄存器。
它们都是通过片内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 音乐盒 设计 13
![提示](https://static.bdocx.com/images/bang_tan.gif)