颜静:基于单片机的音乐播放器的设计
能模块,具有对语音信号压缩、存储、解码和播放的功能,以及数字滤波语音信号实时数/模转换和定时播放,并将语音信号输出到功率放大电路。
2.3 方案比较
从以上两种方案中可以看出不同的设计方法各有优缺点:
方案一:基于C8051F350 单片机和AT45DB642D 存储器的音频播放器采用AT45DB642D 存储器解决了嵌入式系统中大容量数据存储的问题, 采用功能强大的C8051F350 单片机作为控制核心, 减少了系统的外围器件, 简化了硬件设计, 提高了可靠性, 降低了成本。缺点在于信号放大及音频输出系统比较复杂,成本较高。播放器模式较多,不够简化。
方案二:基于SPCE061A 16位单片机的音乐播放器使用常用的音频形式和压缩算法,波形编码:sub-band即SACM-A2000 ,其特点是高质量、高码率,适于高保真语音/音乐。声音播放模块决定对存储在语音芯片中的驱鸟声音的调用方式,并调用定时模块进行间隔播放和随机播放。.高速和高精度保证了转换后的信号的质量和平滑性。缺点是存储器容量不大,声音采集通道单一。
对于C51单片机,它抗干扰性较强,且集成度高、功能强、指令丰富等,可以应用的地方较数字电路更多些,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。而且单片机已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等,都含有C51单片机控制器。
通过综合比较我们不采用上面的两种方案,我采用的是基于C51单片机的音乐播放器的设计,该系统控制性能良好,硬件电路简单、经济实惠,能得到更好的效果。该系统设计将在下文做详细介绍。
2.4 设计的思路
在硬件上是基于单片机AT89C52为核心器件进行控制及信号的产生,共有两个按键S1和S2,S1开关用来选曲,通过显示器显示歌曲序号。S2按钮用作播放。本设计
图2-3 C52音乐播放器组成框图
的音乐演奏控制器是通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发
- 6 -
安徽工程科技学院机电学院
出不同音节的声音。再利用延迟来控制发音时间的长短,即控制音调中的节拍。[3]同时设置按钮使所设计的程序能在几首歌曲之间进行选曲,设计显示器使其显示歌曲序号。
对于电路抖动,论文决定用软件方案解决。而为了不丢失外部中断,笔者选择边沿触发。
- 7 -
颜静:基于单片机的音乐播放器的设计
第3章 硬件电路设计
3.1 单片机的选择
在设计中文章选择单片机AT89C52作为播放器的核心控制部件,原因是因为AT89C52的功能全部兼容MCS-51,并且还有程序加密等功能,相比而言更加实用。
AT89C52单片机是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8KB的可反复擦写的只读程序存储器和256字节的随机存取存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,其强大的功能更适合较为复杂的控制应用场合。其主要工作特性是:
·片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次; ·片内数据存储器内含256字节的RAM; ·具有32根可编程I/O口线; ·具有3个可编程定时器; ·中断系统是具有8个中断源、6个中断矢量、2级优先权的结构; ·串行口是具有一个全双工的可编程串行通信口; ·具有一个数据指针DPTR; ·低功耗工作模式有空闲模式和掉电模式; ·具有可编程的3级程序锁定位; ·AT89C52工作电源电压位5(1±0.2)V,且典型值为5V。
·AT89C52最高工作频率为24MHZ,编程频率为3~24HZ,编程启动电流为1mA。[4] 3.1.1 引脚排列及功能
AT89C52的引脚排列如图3-1所示: 首先对于I/O口线做一介绍: ·P0口—8位、漏极开路的双向I/O口。
当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;在校验时,P0口可输出指令字节(须外加上拉电阻)。P0口也可做通用I/O口使用,但需加上拉电阻,变为准双向口。当作为普通输入时,应将输出锁存器置1。P0口可驱动8个TTL负载。
·P1口—8位、准双向I/O口,具有内部上拉电阻。
P1口是为用户准备的I/O口双向口。在编程和校验时,可用做输入低8位地址。用做输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。
·P2口—8位、准双向I/O口,具有内部上拉电阻。
当使用片外存储器或外扩I/O口时,P2口输出高8位地址。在编程/校验时,P2口可接收高字节地址和某些控制信号。
- 8 -
安徽工程科技学院机电学院
图3-1 AT89C52引脚排列图
P2口也可做普通I/O口使用。用做输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。
·P3口—8位、准双向I/O口,具有内部上拉电阻。
P3口可做普通I/O口使用。用做输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 3.1.2 编程与效验方式
AT89C52的编程、校验、程序锁定位的编程和片擦除等操作与AT89C51相同只是地址空间为0000H~1FFFH。
表3-1 AT89C52编程电标志 顶端标志 型号 AT89C52 编程电压VPP=5V AT89C52 XXXX-5 YYWW 编程电压VPP=12V AT89C52 XXXX YYWW
AT89C52的编程电压VPP为12V或5V,在产品封装的顶部印有编程电压标志,如表3-1所列:
- 9 -
颜静:基于单片机的音乐播放器的设计
3.2 晶振电路部分
单片机要想工作必须要在XTAL1和XTAL2端口加晶振电路,单片机工作速度也是由晶振电路决定的。[5]典型的晶振电路如图3-2所示:
图3-2 晶振电路
在晶振电路中,电路中电容C3和C4对振荡频率有微调作用,通常的取值范围30±10pF;石英晶体选择6MHz或12MHz都可以。其结果只是机器周期时间不同,影响记数器的记数初值和运算速度。
单片机最小系统包括晶振电路、复位电路、电源、接地。晶振电路已经在上一节介绍了,下面简单介绍下复位电路、电源、接地。 1.复位电路
论文采用微分型复位电路,电路图如图3-3所示,
图3-3 微分型复位电路
工作原理:高电平为例,电源上电时,VCC可以认为一阶跃信号复位端电压是由于下拉电阻R1在CPU复位端引起的电压值,一般为0.3V以下。但在实际应用中,VCC不可能为理想的阶跃信号。其主要原因有两点:(1)稳压电源的输出开关特性;(2)我们通常在设计电路时,为保证电源电压稳定性,往往在电源的输入端并联一个大电容,从而导致了VCC不可能为阶跃信号特征。从而影响了的复位电压的复位特性。 2.电源、接地
单片机AT89C52所选用的是+5V的电源,可直接由稳压电源提供,接地直接接GND。 3.单片机最小系统
由以上晶振电路、复位电路、电源、接地即可组成单片机最小系统如图3-4所示,
- 10 -