基于单片机的音乐演奏电路的设计与制作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 电路设计

相关文档
最新文档