基于51单片机的音乐播放器的软件设计_毕业设计论文(编辑修改稿)内容摘要:
26TX27SCLK28SI29SO30CVDD331TEST32GPIO0/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单片机的音乐播放器的软件设计 10 B为数据类型选择。 其中, H 表示数据是显示数据 , L 表示数据是控制指令。 C固定为 0 第二字节 (并行 )8位数据的高 4位 —— 格式 DDDD0000 第三字节 (并行 )8位数据的低 4位 —— 格式 0000DDDD 串口模式下只用两根线( E和 SCLK)来完成数据传输。 ST7920 是 12864 的控制器,如果 使用多个 ST7920 时, CS 被配合使用, CS为 高电平有效。 SCLK 有独立的操作 时序,当多个连续的指令被送入时,指令执行时间需要被考虑,需要等待上一个指令执行完毕才送入下一个指令 , 因为 ST7920 内部没有传送 /接收缓冲区。基于51单片机的音乐播放器的软件设计_毕业设计论文(编辑修改稿)
相关推荐
30pF 陶瓷电容帮助起振。 矩阵键盘电路 键盘的工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端,矩阵键盘连接方式如图 3 所示,行线通过上拉电阻接到 +5V 电源上。 无按键按RESETXTAL2XTAL1VSSVCCEAALEPSENSTC89C52STC11 21X
_m=0。 counter=m*60+s。 if(counter=water_time) //常温浇灌时间 { TR0=1。 TR1=0。 s1=0。 m1=0。 h=0。 time_s=s。 time_m=m。 LCD_DispHZStr(2,3,on)。 if(flag==1) { t=t+1。 flag=0。 } led=0。 SOUND=~SOUND。 } else { TR0=0。
WR:写入信号,当这个输入引脚为低跳变沿时 ,即 /WR 产生一个低脉冲且 /CS=0时 ,允许 CPU 将数据或 控制字写入 8255。 D0~ D7:三态双向数据总线, 8255与 CPU 数据传送 的通道,当 CPU 执行输入输出指令时,通过它实现 8位数据的读 /写操作,控制字和状态信息也通过数据总线传送。 8255具有 3个相互独立的输入 /输出通道端口,用 +5V 单电源供电
第一章 绪 论 水路航运系统是运输系统中很重要的一部分,而航道的正确标识是船舶航运2 基于 51 单片机航标灯控制器的设计与实现 安全的重要保障。 在我们长达数千公里的河道和海岸沿线,每隔一定距离就必须有一个航标等,用来指示航道的安全水位区域。 航标灯在夜间用所显示的特定光色,灯光节奏和周期作为标志的识别特性,以便航海人员容易区别。 此次设计由 STC89C52 为核心,结合定时
D D1( 1 1 1 1 20脚)每一位驱动信号分别输出一个正脉冲信号,脉冲宽度为 200 个时钟周期,其中 D5对应万位选通,以下依次为千、百、十、个位。 在正常输入情况下, D5D1 输出连续脉冲。 当输入电压过量程时, D5D1 在 AZ 阶段开始时只分别输出一个脉冲,然后都处于低电平,直至 DE 阶段开始时才输出连续脉冲。 利用这个特性,可使得显示器件在过程时产生一亮一暗的直观现象。
辑控制的 +5V 电源。 第 6 脚: A 桥使能端口。 11 第 7 脚:输入标准 TTL 电点平对 A 桥的输出 OUT OUT2 进行控制。 第 8 脚:接电源地。 第 9 脚:接电机驱动电源,最高可达 50V。 第 11 脚: B 桥使能端口。 第 12 脚:输入标准 TTL 电平对 B 桥的输出 OUT OUT4 进行控制。 第 1 14 脚: B 电机输出端口。 L298