基于51单片机mp3设计内容摘要:

VS1003 芯片是一个 MP3/WMA/MIDI 音频解码器和 ADPCM 编码器。 它包含一个高性能,自主产权的 低功耗 DSP 处理器 VS_DSP4,工作数据存储器,为用户应用提供 5KB 的指令 RAM 和 的数据 RAM。 4 个常规用途的 I/O 端 口,一个 UART,一个高品质可变采样率的 ADC 和立体声 DAC,还有一个耳机放大器和地线缓冲器。 VS1003 通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。 输入的比特流被解码,然后通过一个数字音量控制器到达一个 18位过采样多位 ε ΔDAC。 通过串行总线控制解码器。 VS1003 电路接线如图 6所示。 基于 51 单片机的音乐播放器的软件设计 6 MICP1MICN2XRESET3DGND04CVDD05IOVDD06DGND116CVDD17DREQ8GPIO2/DCLK9GPIO3/SDATA10NC11NC12XDCS/BSYNC13IOVDD114VCO15XTALO17XTALI18IOVDD219DGND220DGND321DGND422XCS23CVDD224NC25RX26TX27SCLK28SI29SO30CVDD331TEST32GPIO0/SPIBOOT33GPIO134NC35NC36AGND037AVDD038RIGHT39AGND140AGND241GBUF42AVDD143RCAP44AVDD245LEFT46AGND347LINEIN48U1VS1003BMICPMICNXRESETC18C7C5C20C6C19R3 100K+R12100KR14100KR1110K+++DREQ+ + +XDCS XCSMISOMOSISCLK+R610K+R4100KR5100KY1C17 33pFC16 33pFXTALO XTALIXTALOXTALIR131MC10+R10560J1MICR1100KC9C11uFC8 1nFLINEINRCAPC111uFC12 1uFC14100pFC1510uFC1310uFLS1SPEAKERR71KR81KR91KR21K+MICPMICNXRESETDREQXCSSCLK MOSIMISOGND1 23 45 67 89 10JP15X2LED1XDCSGND+5TX1RX1C4C2C3+ + +LINEIN LEFT RCAP GBUF RIGHTJ2ERJILEFTRIGHTGBUFVIN3GND1VOUT2U3 VIN3GND1VOUT2U2 C2110uFC2210uFC2310uF++LED2R21560+5+5图 6 VS1003 电路 接线图 3 系统软件设计 软件开发平台 Keil 是德国 Keil 公司 ( 现已并入 ARM 公司)开发的微控制器软件开发平台,是目前 ARM 内核单片机开发的主流工具。 Keil 提供了包括 C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境( uVision)将这些功能组合在一起。 uVision 当前最高版本是 uVision4,它的界面和常用的微软 VC++的界面相似,界面友好,易学易用,在调试程序 、 软件仿真方面也有很强大的功能。 本 设计 使用的是 uVision2 版本。 uVision2 是一款集编辑 、 编译和项目管理于一身的基于 窗口的软件开发环境。 uVision2 集成了 C 语言编译器 、 宏编译 、 链接 /定位 、 以及 HEX 文件产生器 [1]。 本质是一个典型的调试窗口,主要包括以下几个窗口 , 如图 7所示。 基于 51 单片机的音乐播放器的软件设计 7 图 7 Keil uVision2开发环境 系统的软件设计 本系统采用模块化的编程思想,把整个软件系统化为多个功能模块,主程序通过调用各个子程序来完成各个功能的实现。 下面具体介绍各个模块的实现。 软件总体分析 从整体上看,该系统软件分为三个大的部分: ( 1) VS1003 解码。 VS1003 解码即 VS1003 译码程序。 主要完 成数字信号的采集、信号滤波 等 功能。 利用模块化编程思想分别来实现各个模块的功能,减少程序之间的耦合性,提高程序之间的内聚性。 通过调用各个子程序来完成系统的功能。 该部分总体开发思路是 , VSl003 通过同步串行总线 SPI 与 STC12C5A60S2 进行命令和数据的传输。 只要正确写 SPI 相关寄存器就能轻松 实现 控制。 VSl003 的 SPI 接口具有 2 种工作模式:新模式和兼容模式。 设置寄存器 “ SM_SDINEW 为 1” 使 VSl003 处于新模式,此时设置 SM_SDISHARE 为 0,控制信号和数据信号的传送将分别采用 XCS和 XDCS 作为同步信号。 系统启动后,由 MCU 控制将存储于 U 盘中歌曲的码流信息送入到 VSl003 芯片中,通过 VSl003 芯片解码以及其内含的高质量的立体声 DAC 和耳机驱动电路,实现MP3 歌曲的播放功能 [2]。 ( 2) USB 总线的通用接口芯片 CH375。 CH375 芯片 挂接到 MCU 系统总线上, MCU通过 CH375 按照相应的 USB 协议与其 它 USB 设备进行通信。 本设计中 CH375 工作在USBHOST 模式下,将 8 位并行数据线 D0~ D7与 STC12C5A60S2 的 P0 口相连 , 实现数据基于 51 单片机的音乐播放器的软件设计 8 与命令的并行传输, CH375 工作在主机方式 MCU通过 RD, WR,片选 CS、中断 INT 和地址线 AO 的综合控制,完成与 CH375 的通讯,通过 USB 接口实现从 U盘读写数据的功能。 INT 引脚和 MCU 的外部中断输入引脚相连,当有 U 盘插入时 INT 变为低电平触发 外部中断, 当 RD 为高电平,且 CS, WR 和 AO 都为低电平时, D7~ DO上的数据被写入 CH375芯片中;当 RD 为高电平,且 CS和 WR 都为低电平 , AO为高电平时, D7~ DO 中的数据可作为命令码写入 CH375 芯片中 ;当 WR 为高电平,且 CS, RD和 AO 都为低电平时, CH375中的数据可以通过 D7~ DO 输出 [3]。 ( 3) LCD12864 液晶显示 a) LCD12864 引脚功能 说明 如表 1所示。 表 1 LCD12864 引脚功能 说明 管脚号 管脚名称 电平 管脚功能描述 1 VSS 0V 电源地 2 VCC +5V 电源正 3 V0 对比度(亮度)调整 4 RS(CS) H/L RS=“H”,DB7 —— DB0 为显示数据 RS=“L”,DB7 —— DB0 为显示指令数据 5 R/W(SID) H/L R/W=“H”,E=“H” ,数据 DB7—— DB0 被读 R/W=“L”,E=“H→L”, DB7 —— DB0的数据被写到 IR 或 DR 6 E(SCLK) H/L 使能信号 7 DB0 H/L 数据线 8 DB1 H/L 数据线 9 DB2 H/L 数据线 10 DB3 H/L 数据线 11 DB4 H/L 数据线 12 DB5 H/L 数据线 13 DB6 H/L 数据线 14 DB7 H/L 数据线 15 PSB H/L H: 8 位或 4 位并口方式 , L:串口方式 基于 51 单片机的音乐播放器的软件设计 9 16 NC 空脚 17 /RESET H/L 复位端,低电平有效 18 VOUT LCD 驱动电压输出端 19 A VDD 背光源正端( +5V) 20 K VSS 背光源负端 b) LCD12864 控制器接口信号说明: 管脚 RS、 R/W 为主要功能选择端口, RS端口高低电平用于 12864 识别端口信号是指令数据( L)还是显示数据( H), R/W 端口高低电平用于控制 12864 读( H)写( L)状态。 RS, R/W 的配合选择决定控制界面的 4 种模式如表 2 所示。 表 2 LCD12864 控制界面模式 RS R/W 功能说明 L L MCU 写指令到指令暂存器( IR) L H 读出忙标志( BF)及地址记数器( AC)的状态 H L MCU 写入数据到数据暂存器( DR) H H MCU 从数据暂存器( DR)中读出数据 c) LCD12864 使能 E信号 E作为 12864 的外加时钟,控制 12864 与外部的连接。 当 E 信号 H→ L时 12864 读取 DB 端口的数据。 将它视为一个开关,当进行数据写入时先调节 RS 选择信号种类,然后将 R/W 拉低设为写状态,把数据传到管脚后将 E 由 L→ H→ L 把数据读入寄存器。 如表 3 所示。 表 3 LCD12864 使能信号 E 状态 执行动作 结果 高 —— 低 I/O 缓冲 —— DR 配合 W 进行写数据或指令 高 DR—— I/O 缓冲 配合 R 进行读数据或指令 低 /低 —— 高 无动作 ( 4) LCD12864 串行连接数据传输 串口模式工作过程: a)串行数据传送共分三个字节完成。 第一字节 串口控制 —— 格式 11111ABC A为数据传送方向控制。 其中, H表示数据从 LCD 到 MCU, L表示数据从 MCU 到 LCD。 基于 51 单片机的音乐播放器的软件设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。