学位论文音乐播放器设计.docx
《学位论文音乐播放器设计.docx》由会员分享,可在线阅读,更多相关《学位论文音乐播放器设计.docx(54页珍藏版)》请在冰点文库上搜索。
学位论文音乐播放器设计
摘要
随着IC集成度越来越高,成本越来越低,使得MP3得到了很大的普及。
现在我们随时随地的感受着数码音乐。
本毕业方案采用凌阳科技公司的SPCE061A单片机、SPR4096模组与液晶1602实现一个简易的音乐盒播放器,也让我们实现数码音乐DIY。
本方案直接使用SPCE061A精简开发板,利用SPCE061A的语音处理功能,以及其强大的处理能力,再配合SPR模组,扩大存储容量,很容易就可以实现音乐播放器。
关键词:
SPCE061A;SPR4096;音乐播放器
Abstract
WiththegrowingICintegration,moreandmorelowcost,makesMP3getalotofpopularity.Nowwegowiththefeelingofdigitalmusic.ThegraduateprogrammebySunplusTechnology,Inc.SPCE061ASCM,SPR4096LCDmodulesandtherealizationofasummaryofthe1602MusicBoxplayer,letusalsorealizedigitalmusicDIY.
TheprogrammeuseddirectlySPCE061Astreamlinethedevelopmentboard,SPCE061Atheuseofvoiceprocessingfunctions,anditsprocessingpower,coupledwithSPRmodule,expandingstoragecapacity,itiseasytoachievemusicplayer.
Keywords:
SPCE061A;SPR4096;musicplayer
第一篇绪论
SPCE061A单片机简介
第一节凌阳16位单片机
随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,DigitalSignalProcessing)等领域。
凌阳的16位单片机就是为适应这种发展而设计的。
它的CPU内核采用凌阳最新推出的μ’nSP™(MicrocontrollerandSignalProcessor)16位微处理器芯片(以下简称μ’nSP™)。
围绕μ’nSP™所形成的16位μ’nSP™系列单片机(以下简称μ’nSP™家族)采用的是模块式集成结构,它以μ’nSP™内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件。
μ’nSP™内核是一个通用的核结构。
除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。
借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。
这样做无疑会使每一种派生产品具有更强的功能和更低的成本。
μ’nSP™家族有以下特点:
♦体积小、集成度高、可靠性好且易于扩展
♦具有较强的中断处理能力
♦高性能价格比
♦功能强、效率高的指令系统
♦低功耗、低电压
第二节应用领域
1.家用电器控制器:
冰箱、空调、洗衣机等白色家电;
2.仪器仪表:
数字仪表(有语音提示功能);
3.电表、水表、煤气表、暖气表;
4.工业控制;
5.智能家居控制器;
6.通讯产品:
多功能录音电话、自动总机、语音信箱、数字录音系统产品;
7.医疗设备、保健器械(电子血压计、红外体温监测仪等);
8.体育健身产品(跑步机等);
9.电子书籍(儿童电子故事书类)、电教设备等;
10.语音识别类产品(语音识别遥控器、智能语音交互式玩具等)。
第二篇模块特性简介
第一章SPCE061A简介
第一节概述
SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放系统,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。
这为实现语音录入提供了方便的硬件条件。
两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。
另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。
在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件:
SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSPIDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口进行下载。
以下图2.1为61板硬件框图,表2.1为硬件框图说明。
图2.161板硬件框图
表2.1框图说明
第二节芯片特性简介
SPCE061A性能简介:
♦16位u’nSP微处理器
♦工作电压(CPU)VDD为3.0~3.6V,(I/O)VDDH为3.0~5.5V
♦CPU时钟:
0.32~49.152MHz
♦内置2K字SRAM
♦内置32K字FLASH
♦可编程音频处理
♦晶体振荡器
♦系统处于备用状态下(时钟处于停止状态),耗电仅为2uA/3.6V
♦2个16位可编程定时器/计数器(可自动预置初始计数值)
♦2个10位DAC(数/模转换)输出通道
♦32位通用可编程输入/输出通道
♦14个中断源可来自定时器A/B、时基、2个外部时钟源输入和键唤醒具备触键唤醒的功能
♦使用凌阳音频编码SACM_S480可以播放压缩的语音资源
♦锁相环PLL振荡器提供系统时钟信号
♦32768Hz实时时钟
♦7通道10位电压模/数转换器(ADC)和单通道声音模/数转换器
♦声音模/数转换器输入通道内置麦克风放大器,并具有自动增益控制(AGC)功能
♦具备串行设备接口
♦具备低电压复位功能和低电压检测功能
♦内置在线仿真电路接口
♦具有WatchDog功能
第三节SPCE061A精简开发板
SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发-仿真-实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。
61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!
!
!
使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!
61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSPIDE,可方便地在板上实现程序的下载、在线仿真调试。
61板上的主要功能模块如下:
♦SPCE061A单片机最小系统外围电路模块;
♦电源输入模块;
♦音频电路(包含MIC输入、DAC音频功放输出)模块;
♦按键模块;
♦I/O端口接口模块;
♦调试、下载接口模块;
第二章SPR模组简介
第一节基本特性与参数指标
产品型号:
SPRMODULEV1.0
SPR模组工作电压:
3.3V
SPR模组外形尺寸:
50mm×50mm
一、主要功能
针对凌阳科技公司的存储器芯片SPR4096/SPR1024,开发的简易烧写器。
该烧写器配合PC机ResWriter工具(凌阳科技教育推广中心提供,下文叙述),通过EZ-probe下载线,完成对SPR4096/1024存储器芯片的擦除、写入、校验等功能。
并且在SPR模组上留有与SPCE061A单片机的接口,可以实现SPR模组与SPCE061A单片机组成的系统。
二、结构框图
图2.2SPR模组结构框
SPR模组预留两个接口,一个接口是EZ-probe,这是在使用ResWriter工具对SPR4096/1024进行烧写连接使用的,另一个是10PIN的排线,主要提供电源以及与SPCE061A连接使用。
用户请注意,SPR模电路支持SPR4096和SPR1024,但只能同时对其中一种芯片进行使用。
SPR模组有两种基本配置,一种电路板加SPR4096芯片,另一种为电路板加SPR1024芯片,而且必须配合EZ-Probe下载线使用。
用户选购时请您注意确认是SPR模组_4096还是SPR模组_1024。
三、SPR4096芯片
SPR4096内嵌512K*8位高性能FLASH存储器同时内嵌4K*8位SRAM。
芯片具有BMI(BusMemorynterface)并行接口总线与SIF(SerialInterface)串行接口总线。
在SPR4096芯片中,使用两种电源供电,DDI与VDDQ。
VDDI范围在2.25V-2.75V,这个电源是给内部的FLASH与逻辑控制单元供电的。
VDDQ围在2.25V-3.6V,只给I/O口供电。
SPR4096可以工作在5.0MHz频率下,最大读电流为2.0mA,最大程/擦写电流6.0mA。
四、ResWriter工具简介
ResWriter工具是将语音、字模等数据资源(二进制文件)整合处理、烧录到SPR1024/4096FLASHemory的烧录工具。
用PCPrinterPort通过下载线(EZ_Probe)烧录SPR1024/4096,基本操作内容包括片的空白检查(BlankCheck)、芯片的数据擦除(Erase)、读出芯片数据(Read)、烧录写入数据(Program)、验检查写入的数据是否正确(Verify)。
工具具有文档整合功能,把多个小文档按照指定的格式生成索引表,然后将索引表与所有的小文档整合成一个大文档作为烧录FLASH的数据资料。
五、应用领域
在用户的系统上需要外扩存储器,可以选择使用SPR模组。
该模组可以通过ResWriter工具进行资源整合、烧录。
六、注意事项
♦SPR模组使用3.3V电源供电,注意不要使电源接反
♦模组必需配合下载线使用
♦在使用ResWriter工具对SPR4096/SPR1024芯片进行烧写时也需要对SPR模组供电
♦不能同时对SPR4096与SPR1024进行烧写
第三章液晶1602简介
第一节技术参数
♦显示容量:
32个字符,每个字符为5×7点阵,分2行,每行16列
♦芯片工作电压:
4.5-5.5V
♦工作电流:
2mA(5.0V)
♦模块最佳工作电压:
5.0V
♦字符尺寸:
2.95×4.35(W*H)mm
第二节接口信号说明
一、外形尺寸
以下图2.3是液晶1602模块的外形:
图2.3液晶1602模块的外形尺寸
二、接口信号说明
下表2.2接口信号说明
接口
编号
引脚说明
接口
编号
引脚说明
1
VSS
电源地
9
D2
DATA
2
VDD
电源正极
10
D3
DATA
3
VL
液晶显示偏压信号
11
D4
DATA
4
RS
数据/命令选择端(H/L
12
D5
DATA
5
R/W
读/写选择端(H/L)
13
D6
DATA
6
EP
使能信号
14
D7
DATA
7
D0
DATAI/O
15
BLA
背光源正极
8
D1
DATAI/O
16
BLK
背光源负极
表2.2接口信号说明
第三节读写时序
一、读/写操作时序及时序参数
(一)读操作时序:
图2.4读操作时序
(二)写操作时序:
图2.5写操作时序
二、典型应用
图2.6为1602与单片机典型接口
图2.61602与单片机典型接口
第三篇SPCE061A在音乐播放器中的应用方案
第一章设计要求
一、基本要求
利用SPCE061A单片机、SPR4096模组,液晶1602制作音乐播放器,要求具有下述功能:
1.可以实现多首音乐的播放;
2.可以实现音乐播放的开始、暂停、停止、上一首、下一首的控制功能;
3.在音乐播放时可以在液晶1602上显示均衡效果;
4.具有友好的用户界面。
二、扩展要求
1.可以实现音乐的音量控制;
2.具有USB功能,可以实现语音资源的更新。
第二章系统硬件设计
第一节系统的硬件框图
系统以SPCE061A为核心,可以划分为键盘(61板上自带的按键)输入、液晶LCD1602用户界面提示与均衡器效果、SPR4096资源存储与61板语音播放等部分,如下图所示。
61板作为整个系统的核心控制,并且负责语音的输出。
SPR模组作为语音资源的存储介质,这些语音资源是通过专用的ResWriter工具烧写到SPR4096芯片中的。
61板上自带的键盘与液晶1602实现用户控制音乐播放器的控制与显示作用,在播放音乐时,液晶1602还可以显示音乐的均衡器效果。
以下图3.1为硬件框图,图3.2为音乐播放器的硬件连线图:
图3.1硬件框图3.2音乐播放器的硬件连线图
第二节主控板电路模块分析
一、微控制器电路
控制器采用凌阳科技公司的SPCE061A,其硬件资源分配见表3.1
CPU型号
SPCE061A
封装
PLCC
振荡器
crystal
频率
RC
R值
外部
输入频率
WATCHDOG
有
无
启用
未启用
复位时间:
0.75s
I/O口使用情况
使用
IOA0---Key1//61板上自带的按键,按键的另一端接5V
IOA1---Key2
IOA2---Key3
IOA8~IOA15---D0~D7//液晶1602
IOB13---RS
IOB14---R/W
IOB15---EP
IOB0---SCK//SPR4096
IOB1---SDA
Timer使用情况
TimerB
放音时使用
TimerB
无
ADC使用情况
MIC-IN通道
无
中断使用情况
1,FIQ_TimerA中断用于放音
2,IRQ6_TMB1(8Hz)中断调用EQ均衡器
3,IRQ6_TMB2(128Hz)中断扫描键盘
表3.1硬件资源分配表
二、电源板电路模块分析
图3.3是电源部分的电路,4.5V直流电压经过SPY0029后产生3.3V给整个系统供电。
SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺。
SPY0029具有静态电流低、驱动能力强、线性调整出色等特点。
图中的VDDH3为SPCE061A的I/O电平参考,接SPCE061A的51脚,这种接法使得I/O输出高电平为3.3V;VDD_P为PLL锁相环电源,接SPCE061A的7脚;VDD和VDD_A分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚;AVSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚;AVSS2接音频输出电路的AVSS2。
图3.3电源电路图
三、CPU语音输出电路
SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放。
图3.4是语音输出电路图。
可以直接听喇叭输出的声音。
图中的SPY0030也是凌阳公司的产品。
它的详细说明可以参见SPY0030DataSheet。
和LM386相比,SPY0030还具有下述优势的,比如LM386工作电压需在4V以上,SPY0030仅需2.4V即可工作(两颗电池即可工作);LM386输出功率100mW以下,SPY0030约700mW。
其他特性请参考DataSheet。
图3.4CPU语音输出电路
第三节SPR模组硬件
SPR模组的硬件电路主要分成3大部分,下面分别介绍:
一、ResWriter工具对SPR4096/SPR1024进行烧写的硬件电路
如图3.5所示:
图3.5烧写SPR4096/SPR1024硬件电路
此部分电路主要是控制SCK、SDA信号的作用,通过74HC244可以控制SDA信号的通与断,这样可以使用ResWriter工具发出符合烧写芯片的时序信号,完成对芯片的擦除、写入与校验功能。
二、SPR4096的工作电路
如图3.6所示:
图3.6SPR4096工作电路图3.7SPR1024工作电路
此部分工作电路是为了使SPR4096存储器工作的外围电路,通过SCK与SDA与外界相连。
三、SPR1024的工作电路
如图3.7所示:
此部分工作电路是为了使SPR1024存储器工作的外围电路,通过SCK与SDA与外界相连。
四、SPR模组的其他接口电路
如图3.8SPR模组的接口跳线电路所示:
图3.8SPR模组的接口跳线电路
上图最左边的电路是SPR4096片内FLASH与片内SRAM的选择端(关于SPR4096存储器的详细情况,请参考下文或参考SPR4096数据手册),当MEM选择与地短接时使用的是SPR4096的片内FLASH,当MEM选择与电源短接时使用的是SPR4096的片内SRAM。
第三章系统软件设计
第一节主要功能
结合61板上的3个按键,实现图3.9的功能。
图3.9功能键示意图图3.10系统的均衡器效果
在播放音乐时具有均衡器效果如图3.10:
第二节方案实现
整个软件系统完成的功能在程序中分为如下文件实现:
1.main.c文件:
整个工程的主文件,负责调用相关函数完成相关功能。
2.speech.c文件:
该文件主要是放音函数,负责从SPR4096中取出数据播放。
3.key.asm文件:
此文件中包含有与键盘操作有关的函数,包括键盘初始化、扫描键盘与得到键盘程序。
函数声明在key.h与key.inc文件中,分别供c语言与汇编语言调用。
4.LCD1602_Driver.asm:
此文件中包含LCD1602的初始化操作、读写命令、读写数据操作。
5.spr4096_driver.asm文件:
与SPR4096存储器相关的操作函数,包括初始化,读、写、擦除操作等。
函数声明在spr4096_user.h文件中,供c语言调用。
6.fiq.asm文件:
所有与中断有关的操作函数都在这个文件。
在FIQ_TimerA中断中调用语音播放服务函数完成,在IRQ6_TMB1中断中调用8Hz中断实现均衡器显示,在IRQ6_TMB2中断中调用128Hz中断完成键盘扫描作用。
7.在语音处理方面采用了凌阳科技的sacmv26e.lib函数库完成语音播放功能,只需要调用几条函数就可以播放语音。
下面具体介绍函数:
在主函数中完成SPR4096的初始化、键盘、液晶LCD1602的初始化,并进行停止状态的界面显示,然后进入循环根据键盘的值执行相关的操作。
一、主函数的流程图和编程
主函数流程图参考图3.11所示:
图3.11主函数流程图
以下是关于主函数的编程:
//========================================================
//工程名称:
MusicBox.spj
//功能描述:
实现音乐盒毕业设计礼包的功能
//硬件连接:
IOA0----Key1
//IOA1----Key2
//IOA2----Key3
//Key-----5V
//IOA8-IOA15----D0-D7(1602液晶)
//IOB0----SCK(SPR模组)
//IOB1----SDA(SPR模组)
//IOB13----RS
//IOB14----R/W
//IOB15----EP
//========================================================
#include"spce061a.h"
#include"a2000.h"
#include"key.h"
#include"spr4096_user.h"
#include"speech.h"
#include"lcd1602_user.h"
unsignedintg_uiIndex=0;//曲目索引
unsignedintg_uiData[5]={'1','2','3','4','5'};//LCD1602的字模显示
voidStop_Dis(void);//在停止的时候的显示函数
//========================================================
//语法格式:
intmain(void)
//实现功能:
MusicBox.spj工程主函数
//参数:
无
//返回值:
无
//========================================================
intmain(void)
{
unsignedintuiKey;//判断键值
unsignedintuiStatus;//0-处于暂停/停止状态;1-处于播放状态
unsignedintuiInt;
uiStatus=0;//初始化,停止状态
Key_Init();//初始化键盘
LCD1602_Initial();//初始化液晶1602
SP_SIOInitial();//初始化SIO
while
(1)
{
Stop_Dis();//停止时显示
uiKey=Key_Get();//获得键值
switch(uiKey)
{
caseKEY_1:
uiInt=*P_INT_Ctrl;//