基于单片机的音乐演奏电路的设计与制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
引言 (1)
1 单片机演奏音乐的原理 (1)
2 电路相关器件 (3)
2.1 AT89C51 (3)
2.2 LM386 (4)
3 电路设计 (4)
3.1 主体电路设计 (5)
3.2 电源电路设计 (5)
3.3 音频放大模块设计 (5)
4 电路板的制作 (6)
5 程序设计 (6)
5.1 程序设计内容 (6)
5.2 程序流程图 (7)
5.3 具体程序 (8)
6硬件电路及程序的调试 (15)
7成品展示 (15)
结束语 (16)
参考文献 (16)
英文翻译.......................................... (错误!未定义书签。) 致谢.............................................. (错误!未定义书签。)
基于单片机的音乐演奏电路的设计与制作
摘要:单片机具有体积小、重量轻、开发灵活、性价比高等优点,广泛应用于自动化
控制、家用电器、智能玩具等领域。本文以单片机AT89C51为控制核心,设计并制作了可以连续播放六首乐曲的音乐演奏电路。这种简单的音乐播放电路可以加装在一些儿童玩具内部,使其成为可以发声的智能玩具,具有实际的推广应用价值。
关键词:单片机 ;汇编语言 ;LM386 ;音乐演奏 引言
单片机具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较容易等优点。所以,自自问世以来,倍受关注,应用很广,发展很快。利用单片机发声的基本原理,本文设计并制作了一款能够顺序播放6首乐曲的音乐播放电路,该电路可以加装在儿童玩具中,使其成为智能化玩具。
1 单片机演奏音乐的原理
要单片机(AT89C51)产生音频脉冲,就要计算出音频的周期,然后用计数器定时1/2此周期,每当计时到后就将输出脉冲的I/O 管脚反相,然后重复计时此半周期再对I/O 管脚反相,就可在此I/O 管脚得到此频率的脉冲。
用单片机内部定时器/计数器计数,使其工作于定时器模式,要得到不同频率的音频信号,只要改变其计数初值即可。计数脉冲值与频率的关系公式如下:
r i F F N ÷÷=2 N :计数值;
F i :内部计时一次为1s,故其频率为1MHz ; F r :要产生的频率;
其T 值的求法如下:r i F F N T ÷÷-=-=26553665536]
1[。
表1.1 C 调各音符频率与计数值N 的对照表
每个音符使用一个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表1.2为节拍与节拍码的对照。如果1拍为0.4秒,则1/4拍为0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍为4DELAY,依次类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表1.3为1/4和1/8节拍的时间设定]2[。
表1.2 节拍数与节拍码的对照
表1.3各调1/4节拍和1/8节拍的时间设定
表1.4歌曲简谱对应的码值、T值
简谱音符简谱码T值简谱音符简谱码T值低音SO 1 64260 6 中音LA 9 64968
低音LA 2 64400 7 中音TI A 65030
低音TI 3 64524
.
1高音DO B 65058
1 中音DO 4 64580
.
2高音RE C 65110
2 中音RE 5 64684
.
3高音MI D 65157
3 中音MI 6 64777
.
4高音FA E 65170
4 中音FA 7 64280
.
5高音SO F 65217
5 中音SO 8 64898 不发音0
2 电路相关器件
2.1 AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只
读存储器的低电压,高性能CMOS8位微处理器,俗
称单片机。该器件采用ATMEL高密度非易失存储器
制造技术制造,与工业标准的MCS-51指令集和输出
管脚相兼容。由于将多功能8位CPU和闪烁存储器
组合在单个芯片中,ATMEL的AT89C51是一种高效微
控制器,为很多嵌入式控制系统提供了一种灵活性
高且价廉的方案。AT89C51管脚说明]3[(图2.1):
电源引脚:
VCC :接+5V电源 GND :接地
时钟引脚:
2个时钟引脚XTAL1、XTAL2外接晶体与片内的反向放大器构成1个振荡器,它为单片机提供了时钟控制信号。2个时钟引脚也可外接独立的晶体振荡器。
I/O口引脚:
图2.1
P0口:双向8位三态I/O 口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS 型TTL 负载。
P1、P2、P3口是3个8位准双向的I/O 口,各口线在片内均有固定的上拉电阻。可驱动4个LS 型TTL 负载。
P3口也可作为AT89C51的一些特殊功能口:
P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.20INT (外部中断0) P3.31INT (外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6WR (外部数据存储器写选通) P3.7RD (外部数据存储器读选通) 控制引脚]4[:
RST :复位输入,当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。
PROG ALE /:当访问外部存储器时,地址锁存允许的输出电平用于锁存地
址的低位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。
PSEN :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个
机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的PSEN 信号将不出现。
EA /VPP :当EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH ),
不管是否有内部程序存储器。注意加密方式1时,EA 将内部锁定为RESET ;当
EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用
于施加12V 编程电压(VPP )。 2.2 LM386
LM386具有增益高、功耗小,输入电压范围为4V ~12V ,无作动时仅消耗4mA 电流,且失真低的特点,是专为低损耗电源所设计的功率放大
器集它的内部增益为20,通过第1引脚和第8引 图2.2
脚脚位间电容的搭配,增益最高可达200。LM386的引脚排列如图2.2所示]5[: 3 电路设计