您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基于STM32的MP3播放器设计与实现_毕业设计论文

基于STM32的MP3播放器设计与实现_毕业设计论文

来源:筏尚旅游网


《 嵌入式系统原理 》

课程设计说明书

题 目: 利用STM32实现MP3播放器 院 (系): 信息与电气工程学院

STM32芯片应用 实验设计任务书

一、设计题目 利用STM32处理器实现简易MP3 Player的设计 二、设计主要内容 (1) 广泛查找文献资料,认真研究,反复论证,精心设计技术方案。 (2) 较为深入的掌握ARM处理器的体系结构、指令系统、编程方法,初步了解ARM应用系统的软硬件开发方法及手段,较熟练地掌握ARM处理器几种重要的片内外设(定时器、PLL、IC、RTC等)的基本原理及编程方法,初步掌握ARM处理器外围电路的扩展方法。 2(3) 了解STM32、SPI接口、SD卡、TIMER、中断、FAT文件系统、USB等的应用。 (4) 考虑简易声波播放器、简易MP3播放器两种方案实现。 三、原始资料 硬件资源:STM32系统板、用于ARM处理器的JTAG仿真器、PC机Pentium100以上。 设计指导书:STM32系统板配套光盘 四、要求的设计成果 (1)使用STM103V100评估板令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭实现与通过额外解码芯片实现。 (2)撰写课程设计说明书,要求简洁、通顺,格式规范,设计方案正确,实现技术路线明确,论述内容完整、清楚、规范,数据、资料真实可靠,软件程序运行良好。 (3)要求有完整的电路设计原理图及软件源代码。

五、进程安排 (1)第 1 天:任务布置及相关知识讲解 (2)第2-3天:资料查阅与方案制定 (3)第4-8天:硬件设计、程序编制与调试阶段 (4)第 9 天:撰写设计报告 六、主要参考资料 [1] 田泽. 嵌入式系统开发与应用实验教程. 北京航空航天工业大学出版社,2005. [2] 郭荣佐,王霖. 《嵌入式系统原理》.北京航空航天大学出版社,.2008. [3] 周根林.嵌入式系统原理与应用.南京大学出版社, 2006. [4] 谭浩强. C语言程序设计(第2版).清华大学出版社,2008 [5] 丁峰. ARM系统开发——从实践到提高. 中国电力出版社,2007. 指导教师(签名): 20 年 月 日

第一种方案是简易声波播放器,仅使用STM103V100评估板,令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭,如图1所示;第二种方案则是简易MP3播放器,还需要使用额外的解码芯片,将MP3格式的文件从SD卡读出,然后送解码芯片解码播放,如图2所示。本节将先介绍SD卡、FAT16文件格式、VS1003编解码器等关键部分,然后再分别给出两种设计方案的软件设计。

图1 简易声波播放器方案

图2 简易MP3 Player方案

1 SD卡的结构及读写方法

STM103V100评估板有SD连接器,其使用SPI总线与STM32处理器连

接,如图3所示。

图3 SD连接器与STM32处理器SPI连接图

SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。SD卡内部结构及引脚如图4所示。

图4 SD卡内部结构及引脚

SD卡主要引脚和功能为:

CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;

CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;

DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。

SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡规范。 --------------

表1 SPI命令格式 Byte 1/ Byte2-5/Byte 6

7,6,5,0/31,0/7,0

0,1/Command/Command Argument/CRC,1 ------------------------------------ 下面分别给出读写SD卡的两个函数:

读取SD卡函数u8 MSD_ReadBlock(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead);

/*****************************************************************

* Function Name : MSD_ReadBlock

* Description : Reads a block of data from the MSD.

* Input : - pBuffer : pointer to the buffer that receives the data read * from the MSD.

* - ReadAddr : MSD's internal address to read from.

* - NumByteToRead : number of bytes to read from the MSD. * Output : None

* Return : The MSD Response:

- MSD_RESPONSE_FAILURE: Sequence failed

* - MSD_RESPONSE_NO_ERROR: Sequence succeed

*****************************************************************/

u8 MSD_ReadBlock(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead) {

u32 i = 0;

u8 rvalue = MSD_RESPONSE_FAILURE; /* MSD chip select low */ MSD_CS_LOW();

/* Send CMD17 (MSD_READ_SINGLE_BLOCK) to read one block */ MSD_SendCmd(MSD_READ_SINGLE_BLOCK, ReadAddr, 0xFF); /* Check if the MSD acknowledged the read block command:

R1 response (0x00: no errors) */

if (!MSD_GetResponse(MSD_RESPONSE_NO_ERROR)) {

/* Now look for the data token to signify the start of the data */ if (!MSD_GetResponse(MSD_START_DATA_SINGLE_BLOCK_READ)) {

/* Read the MSD block data : read NumByteToRead data */ for (i = 0; i < NumByteToRead; i++) {

/* Save the received data */ *pBuffer = MSD_ReadByte();

/* Point to the next location where the byte read will be saved */ pBuffer++; }

/* Get CRC bytes (not really needed by us, but required by MSD) */

MSD_ReadByte(); MSD_ReadByte();

/* Set response value to success */ rvalue = MSD_RESPONSE_NO_ERROR; } }

/* MSD chip select high */ MSD_CS_HIGH();

/* Send dummy byte: 8 Clock pulses of delay */ MSD_WriteByte(DUMMY); /* Returns the reponse */ return rvalue; }

写读取SD卡函数u8 MSD_WriteBlock(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)

/*****************************************************************

* Function Name : MSD_WriteBlock * Description : Writes a block on the MSD

* Input : - pBuffer : pointer to the buffer containing the data to be * written on the MSD.

* - WriteAddr : address to write on.

* - NumByteToWrite: number of data to write

* Output : None

* Return : The MSD Response:

- MSD_RESPONSE_FAILURE: Sequence failed

* - MSD_RESPONSE_NO_ERROR: Sequence succeed

*****************************************************************/

u8 MSD_WriteBlock(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite) {

u32 i = 0;

u8 rvalue = MSD_RESPONSE_FAILURE; /* MSD chip select low */ MSD_CS_LOW();

/* Send CMD24 (MSD_WRITE_BLOCK) to write multiple block */ MSD_SendCmd(MSD_WRITE_BLOCK, WriteAddr, 0xFF); /* Check if the MSD acknowledged the write block command:

R1 response (0x00: no errors) */

if (!MSD_GetResponse(MSD_RESPONSE_NO_ERROR)) {

/* Send a dummy byte */ MSD_WriteByte(DUMMY);

/* Send the data token to signify the start of the data */ MSD_WriteByte(0xFE);

/* Write the block data to MSD : write count data by block */ for (i = 0; i < NumByteToWrite; i++) {

/* Send the pointed byte */ MSD_WriteByte(*pBuffer);

/* Point to the next location where the byte read will be saved */ pBuffer++; }

/* Put CRC bytes (not really needed by us, but required by MSD) */ MSD_ReadByte(); MSD_ReadByte(); /* Read data response */

if (MSD_GetDataResponse() == MSD_DATA_OK) {

rvalue = MSD_RESPONSE_NO_ERROR; } }

/* MSD chip select high */ MSD_CS_HIGH();

/* Send dummy byte: 8 Clock pulses of delay */ MSD_WriteByte(DUMMY); /* Returns the reponse */

return rvalue; }

2 FAT16文件系统简介

SD卡如果采用FAT16文件格式,按照其不同的特点和作用大致可分为5 部分:MBR区、DBR区、FAT区、FDT区和DATA区。由于SD卡一般不做引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。下面对后面四个区分别作简介:  DBR区

内容为系统引导记录,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录是否有操作系统引导文件,如果有则将其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。本系统采用的DBR结构为:

typedef __packed struct

{/* 由于Cortex-M3内核默认以对齐方式访问,因此可能导致结构体元素之间有“空隙”,读出的结构体元素有误,因此需要加上关键字__packed,强制其以压缩方式存储结构体。这样该结构体在内存空间上是一片连续的空间,不存在“空隙”情况。其它地方同理 */ u8 BS_jmpBoot[3]; //ofs:0.典型的如:0xEB,0x3E,0x90 u8 BS_OEMName[8]; //ofs:3.典型的如:“MSWIN4.1” u16 BPB_BytesPerSec; //ofs:11.每扇区字节数 u8 BPB_SecPerClus; //ofs:13.每簇扇区数

u16 BPB_RsvdSecCnt; //ofs:14.保留扇区数,从DBR 到FAT 的扇区数 u8 BPB_NumFATs; //ofs:16.FAT 的个数,通常为2 u16 BPB_RootEntCnt; //ofs:17.根目录项数

u16 BPB_TotSec16; //ofs:19.分区总扇区数(<32M 时用)

u8 BPB_Media; //ofs:21.分区介质标识,SD卡一般用0xF8 u16 BPB_FATSz16; //ofs:22.每个FAT 占的扇区数 u16 BPB_SecPerTrk; //ofs:24.每道扇区数,对于SD卡无意义 u16 BPB_NumHeads; //ofs:26.磁头数,对于SD卡无意义

u32 BPB_HiddSec; //ofs:28.隐藏扇区数,从MBR到DBR的扇区数 u32 BPB_TotSec32; //ofs:32.分区总扇区数(≥32M时用)

u8 BS_DrvNum; //ofs:36.软盘:0x00,硬盘:0x80,SD卡无意义 u8 BS_Reservedl; //ofs:37.保留

u8 BS_BootSig; //ofs:38.扩展引导标记:0x29,通常对于SD卡无意义 u32 BS_VolID; //ofs:39.盘序列号 u8 BS_VolLab[11]; //ofs:43.如“Msdos ” u8 BS_FilSysType[8]; //ofs:54.“FAT16 ” u8 ExecutableCode[448]; //ofs:62.引导代码 u8 ExecutableMarker[2]; //ofs:510.结束标识:0xAA55 } FAT_BPB;

 FAT区

该区内容为文件分配表,FAT16文件系统进行空间分配的最基本单位是簇。文件分配表反映了SD卡所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。对于FAT16来说,FAT表每项占用两个字节。FAT表的第一项通常为FFF8H。对于其它项,若其值为0000H表示可用;FFF7H表示为坏簇;FFF8H-FFFFH之间表示该簇为某文件或目录的最后一个簇,FFF0H-FFF6H之间为保留值;其它值则指示下一个簇的簇号。  FDT区

该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的

数据表。因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常是占很小的空间。其具体的存储原理是:不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节;系统都会以32个字节为单位,进行目录文件所占簇的分配。本系统目录项使用的结构体如下:

typedef __packed struct {

u8 FileName[8]; //ofs:0.文件名 u8 ExtName[3]; //ofs:8.扩展名

u8 Attribute; //ofs:11.文件属性。典型值:存档(0x20)、卷标(0x08)

u8 Reserved[10]; //ofs:21.保留 u16 Time; //ofs:22.时间 u16 Data; //ofs:24.日期

u16 StartClus; //ofs:26.开始簇号 u32 FileLength; //ofs:28.文件长度 } DIR;

由于篇幅关系,这里不能对上面各字段进行一一介绍。

本系统支持长文件名和汉字显示,如果使用短文件名,则以ASCII编码;当文件名超过8个字节,扩展名超过3字节时,就以长文件名的形式存储,长文件名中的字符采用UNICODE形式编码,每个字符占据2个字节的空间,其目录项中偏移为11的字节即Attribute字段为0FH。在存储时将长文件名以13个字符为单位进行切割,每一组占据一个目录项,所以可能一个文件需要多个目录项,这时长文件名的各个目录项按倒序排列在目录表中,以防与其他文件名混淆。 本系统采用串口作为输入输出接口,通过在PC的超级终端中输入命令来对其进行控制,并在超级终端中显示输出的结果,如路径、目录列表、文件名等相关信息。超级终端输入输出的汉字以GB2312编码、输入输出英文字符以ASCII编码,而长文件名以UNICODE编码。因此需要将UNICODE编码转化为GB2312或ASCII编码来和用户交互。这里使用一张排序二维表,里面有7000多个汉

字UNICODE编码对应的GB2312编码。这里查找算法采用二分查找算法,大大提高了查找效率,这对于嵌入式应用很关键。  DATA区

该数据区存放文件的内容,SD卡所占用的空间绝大部分为此部分。如果文件长度大于一个簇的大小,需要多个簇存放该文件,这些放通过FAT链表串连起来。

3 VS1003-MP3/WMA音频编解码器简介

VS1003是由芬兰VLSI Solution Oy公司所设计的一款单片

MP3/WMA/MIDI音频解码器和ADPCM编码器,它包含一个高性能、自主产权的低功耗DSP处理器核VS_DSP4。该芯片内部结构如图5所示,其特点如下:

图5 VS1003内部结构及引脚

 可解码MPEG 1和MPEG 2音频层III(CBR+VBR+ABR)、WMA

4.0/4.1/7/8/9 5-384kbps 所有流文件;WAV(PCM+IMA AD-PCM),可产生MIDI/SP-MIDI 文件;  可对话筒输入或线路输入的音频信号进行IMA ADPCM编码;

 支持MP3和WAV流;  高音、低音控制;

 单时钟操作(12..13MHz);  内部PLL锁相环时钟倍频器;  低功耗

 内含高性能片上立体声数模转换器,两声道间无相位差;  内含能驱动30欧负载的耳机驱动器;  模拟、数字、I/O单独供电;

 为用户代码和数据准备了5.5KB片上RAM;  串行的控制、数据接口;  可被用作微处理器的从机;  特殊应用的SPI Flash引导;  供调试用途的UART接口;

 新功能可以通过软件和4个GPIO添加。

限于篇幅,这里不对VS1003芯片作详细介绍,读者有兴趣可查阅相关资料及数据手册。

注意,VS1003可以作为一个微控制器的从机,通过串行SPI接口来接收输入的比特流,输入的比特流被解码后,可以通过一个数字音量控制器到达一个18 位过采样多位DAC。这样利用一个VS1003芯片与STM32F103x处理器配合,STM32处理器读取SD卡中的MP3文件,将其通过SPI接口送往VS1003芯片播放,然后再利用STM32F10X处理器的一些GPIO口来控制VS1003即可以实现一个MP3 Player的原形设计。

2 FAT16文件系统简介

SD卡如果采用FAT16文件格式,按照其不同的特点和作用大致可分为5 部分:MBR区、DBR区、FAT区、FDT区和DATA区。由于SD卡一般不做

引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。下面对后面四个区分别作简介:  DBR区

内容为系统引导记录,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录是否有操作系统引导文件,如果有则将其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。本系统采用的DBR结构为:

typedef __packed struct

{/* 由于Cortex-M3内核默认以对齐方式访问,因此可能导致结构体元素之间有“空隙”,读出的结构体元素有误,因此需要加上关键字__packed,强制其以压缩方式存储结构体。这样该结构体在内存空间上是一片连续的空间,不存在“空隙”情况。其它地方同理 */ u8 BS_jmpBoot[3]; //ofs:0.典型的如:0xEB,0x3E,0x90 u8 BS_OEMName[8]; //ofs:3.典型的如:“MSWIN4.1” u16 BPB_BytesPerSec; //ofs:11.每扇区字节数 u8 BPB_SecPerClus; //ofs:13.每簇扇区数

u16 BPB_RsvdSecCnt; //ofs:14.保留扇区数,从DBR 到FAT 的扇区数 u8 BPB_NumFATs; //ofs:16.FAT 的个数,通常为2 u16 BPB_RootEntCnt; //ofs:17.根目录项数

u16 BPB_TotSec16; //ofs:19.分区总扇区数(<32M 时用) u8 BPB_Media; //ofs:21.分区介质标识,SD卡一般用0xF8 u16 BPB_FATSz16; //ofs:22.每个FAT 占的扇区数 u16 BPB_SecPerTrk; //ofs:24.每道扇区数,对于SD卡无意义 u16 BPB_NumHeads; //ofs:26.磁头数,对于SD卡无意义

u32 BPB_HiddSec; //ofs:28.隐藏扇区数,从MBR到DBR的扇区数

u32 BPB_TotSec32; //ofs:32.分区总扇区数(≥32M时用)

u8 BS_DrvNum; //ofs:36.软盘:0x00,硬盘:0x80,SD卡无意义 u8 BS_Reservedl; //ofs:37.保留

u8 BS_BootSig; //ofs:38.扩展引导标记:0x29,通常对于SD卡无意义 u32 BS_VolID; //ofs:39.盘序列号 u8 BS_VolLab[11]; //ofs:43.如“Msdos ” u8 BS_FilSysType[8]; //ofs:54.“FAT16 ” u8 ExecutableCode[448]; //ofs:62.引导代码 u8 ExecutableMarker[2]; //ofs:510.结束标识:0xAA55 } FAT_BPB;

 FAT区

该区内容为文件分配表,FAT16文件系统进行空间分配的最基本单位是簇。文件分配表反映了SD卡所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。对于FAT16来说,FAT表每项占用两个字节。FAT表的第一项通常为FFF8H。对于其它项,若其值为0000H表示可用;FFF7H表示为坏簇;FFF8H-FFFFH之间表示该簇为某文件或目录的最后一个簇,FFF0H-FFF6H之间为保留值;其它值则指示下一个簇的簇号。  FDT区

该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的数据表。因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常是占很小的空间。其具体的存储原理是:不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节;系统都会以32个字节为单位,进行目录文件所占簇的分配。本系统目录项使用的结构体如下:

typedef __packed struct {

u8 FileName[8]; //ofs:0.文件名 u8 ExtName[3]; //ofs:8.扩展名

u8 Attribute; //ofs:11.文件属性。典型值:存档(0x20)、卷标(0x08)

u8 Reserved[10]; //ofs:21.保留 u16 Time; //ofs:22.时间 u16 Data; //ofs:24.日期

u16 StartClus; //ofs:26.开始簇号 u32 FileLength; //ofs:28.文件长度 } DIR;

由于篇幅关系,这里不能对上面各字段进行一一介绍。

本系统支持长文件名和汉字显示,如果使用短文件名,则以ASCII编码;当文件名超过8个字节,扩展名超过3字节时,就以长文件名的形式存储,长文件名中的字符采用UNICODE形式编码,每个字符占据2个字节的空间,其目录项中偏移为11的字节即Attribute字段为0FH。在存储时将长文件名以13个字符为单位进行切割,每一组占据一个目录项,所以可能一个文件需要多个目录项,这时长文件名的各个目录项按倒序排列在目录表中,以防与其他文件名混淆。 本系统采用串口作为输入输出接口,通过在PC的超级终端中输入命令来对其进行控制,并在超级终端中显示输出的结果,如路径、目录列表、文件名等相关信息。超级终端输入输出的汉字以GB2312编码、输入输出英文字符以ASCII编码,而长文件名以UNICODE编码。因此需要将UNICODE编码转化为GB2312或ASCII编码来和用户交互。这里使用一张排序二维表,里面有7000多个汉字UNICODE编码对应的GB2312编码。这里查找算法采用二分查找算法,大大提高了查找效率,这对于嵌入式应用很关键。  DATA区

该数据区存放文件的内容,SD卡所占用的空间绝大部分为此部分。如果文件长度大于一个簇的大小,需要多个簇存放该文件,这些放通过FAT链表串连起来。

3 VS1003-MP3/WMA音频编解码器简介

VS1003是由芬兰VLSI Solution Oy公司所设计的一款单片

MP3/WMA/MIDI音频解码器和ADPCM编码器,它包含一个高性能、自主产权的低功耗DSP处理器核VS_DSP4。该芯片内部结构如图5所示,其特点如下:

图5 VS1003内部结构及引脚

 可解码MPEG 1和MPEG 2音频层III(CBR+VBR+ABR)、WMA

4.0/4.1/7/8/9 5-384kbps 所有流文件;WAV(PCM+IMA AD-PCM),可产生MIDI/SP-MIDI 文件;  可对话筒输入或线路输入的音频信号进行IMA ADPCM编码;  支持MP3和WAV流;  高音、低音控制;

 单时钟操作(12..13MHz);  内部PLL锁相环时钟倍频器;

 低功耗

 内含高性能片上立体声数模转换器,两声道间无相位差;  内含能驱动30欧负载的耳机驱动器;  模拟、数字、I/O单独供电;

 为用户代码和数据准备了5.5KB片上RAM;  串行的控制、数据接口;  可被用作微处理器的从机;  特殊应用的SPI Flash引导;  供调试用途的UART接口;

 新功能可以通过软件和4个GPIO添加。

限于篇幅,这里不对VS1003芯片作详细介绍,读者有兴趣可查阅相关资料及数据手册。

注意,VS1003可以作为一个微控制器的从机,通过串行SPI接口来接收输入的比特流,输入的比特流被解码后,可以通过一个数字音量控制器到达一个18 位过采样多位DAC。这样利用一个VS1003芯片与STM32F103x处理器配合,STM32处理器读取SD卡中的MP3文件,将其通过SPI接口送往VS1003芯片播放,然后再利用STM32F10X处理器的一些GPIO口来控制VS1003即可以实现一个MP3 Player的原形设计。

5 简易MP3 Player的设计与实现

第4小节所介绍的声音播放器,是通过定时器TIM4产生不同频率方波来产生声音的,因此只适合播放wav声波文件,其音质也非常粗糙。如果希望播放MP3文件,并产生高品质的声音,则需要使用专用声音解码芯片,这将得到一个简易MP3 Player原型设计。

5.1 硬件设计

如图8所示,STM32F103x使用SPI2端口与VS1003芯片的SI、SO、SCLK连接;VS1003芯片的控制引脚xCS、xRESET、xDCS分别与STM32F103的PA1、PA0和PA2连接,低电平有效;VS1003的状态引脚

DREQ与STM32F103处理器的PA3连接,低电平表示需要送数据,高电平表示正在处理数据。

读者如果没有条件制作硬件,可以使用一块VS1003的评估板和

STM103V100评估板配置,只需要使用电缆实现上述连接及供电即可,实验成本也非常低。

图8 简易MP3 Player硬件原理图

5.2 软件程序设计

由上面所述内容及图2、图8可以得到简易MP3 Player的软件工作过程:通过SPI1从SD卡中读取MP3文件,将所读取的内容通过SPI2发送到VS1003解码器中播放;PC机可通过USB总线读写SD卡的内容,传送MP3文件;PC机的超级终端用于发送MP3播放命令、显示MP3 播放状态。

由于SPI1读取SD卡的速度远超过VS1003播放声音的速度,因此在VS1003播放SPI2送给其的声音数据期间,SPI1能从SD卡中读取下次播放所须的数据,不会产生声音不连续的情况。

该系统软件程序主要包含以下源文件,下面分别介绍其中主要的一些函数。限于篇幅这里不能给出工程的源代码,读者可在附件里下载所有源代码。  main.c

该源文件包含以下几个主要函数:

 USART_Scanf_Name和USART_Scanf_Cmd:用于从超级终端获取输入字

符串;  PrintPass:用于在超级终端上输出提示符“X:>”;

 main: 主函数,首先初始化系统时钟、串口、USB接口、SPI1、SPI2,通过

命令启动VS1003芯片,检测并在超级终端上打印SD卡的信息;然后根据用户在超级中输入的命令进行操作,这里有“dir”、“cd”、“read”、“free”、“usb”、“vstest”、“play”七个简单的命令,分别是目录项列表、目录更换、以文本方式读取文件、查询SD空余空间、启动读卡器功能、VS1003正弦测试、和播放MP3声音文件;如果输入“Play ***.mp3”,则处理器开始从SD卡中读取相应的MP3文件,并将其送VS1003芯片播放;  VS1003.c

该文件主要提供VS1003芯片的驱动,包含以下几个主要函数:  VS1003_Config:配置STM32处理器与VS1003芯片连接的相关引脚,包

括SPI2、PA1、PA0、PA2、PA3;  SPIGetChar:通过SPI从VS1003读取一个数据;

 SPIPutChar:通过SPI向VS1003写一个数据,如果是MP3声音数据,则

VS1003将解码并播放;  Mp3ReadRegister:读取VS1003寄存器的值;  Mp3WriteRegister:写VS1003寄存器  Mp3Reset:VS1003硬件复位;

 Mp3SoftReset:VS1003软件复位,设置时钟、采样率、重音、音量、立体

声等参数;  VsSineTest:播放正弦声波,用于测试;  msd.c

该文件用于提供SD卡的驱动,与小节4.1中的msd.c文件相同。  fat16.c

该文件提供FAT16文件系统的支持,与小节4.1中的fat16.c文件相同。  UnicodeToGB2312.c

该文件处理从UniCode编码到GB2312字符的转换,与小节4.1中的UnicodeToGB2312.c文件相同。  memory.c

该源文件提供通过USB接口进行SD存储管理的功能。其主要函数有:

 Address_Management_Test:测试接收到的存储地址;  Read_Memory:通过USB读取SD卡;  Write_Memory:通过USB写SD卡;  hw_config.c

该文件包含系统初始化设置函数和中断配置函数。  Set_System:用于提供系统时钟及电源设置;  Set_USBClock:配置USB端口所使用引脚及时钟。

5.3 运行过程

(1) 使用MDK通过ULINK 2仿真器连接STM103V100开发板,或使用两根USB

电缆分别将CN1和CN5 与PC机USB端口相连(使用板上自带的UlinkMe);

(2) 使用USB电缆连接CN1与PC机USB端口;将VS1003评估板与

STM103V100评估板相关引脚连接,具体连接参考5.1小节;

(3) 使用串口线将开发板的串口COM0与PC机连接,在PC机上运行windows

自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序; (4) 打开所下源代码目录Player\\Simple MP3 Player下的Simple MP3

Player.Uv2工程,将其编译链接后烧写到开发板中; (5) 将MP3文件拷贝到SD卡中,并将SD插入评估板的SD连接器中; (6) 重启动开发板,在超级终端上将看到SD卡的信息以及提示符“X:>”,如图

9-2-7所示; (7) 可在超级终端中输入“dir”、“cd”、“free”、“usb”、“vstest”、“read”

等命令(注:read 命令后跟文件名;读出并输出文件的文本内容,可以正确显示文本文件如以txt,c,h,s为后缀的文件),观察运行结果;注意,由于程序中没有进行大小写转换,因此命令只能使用小写; (8) 在超级终端中输入“play ***.mp3”,如果程序运行正常,通过VS1003评

估版的耳机将能听到高品质音乐声,如图9所示。

图9 播放MP3音乐

STM103V100评估板与VS1003解码模块的引脚连接: PA3 DREQ PB13 SCLK PB14 SO PB15 SI PA1 /xCS PA2 /xDCS PA0 /xRESET

总结、

在本次实验设计中,为使用STM32实现MP3播放器共使用了两种方案,

其中,第一种方案是简易声波播放器,仅使用STM103V100评估板,令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭,第二种方案则是简易MP3播放器,还需要使用额外的解码芯片,将MP3格式的文件从SD卡读出,然后送解码芯片解码播放。

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名: 日期: 年 月 日

导师签名: 日期: 年 月 日

指导教师评阅书

指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日

评阅教师评阅书

评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日

教研室(或答辩小组)及教学系意见

教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日

学位论文原创性声明

本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。

学位论文作者(本人签名): 年 月 日

学位论文出版授权书

本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。

论文密级:

□公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)

作者签名:_______ 导师签名:_______

_______年_____月_____日

_______年_____月_____日

独 创 声 明

本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

本声明的法律后果由本人承担。

作者签名: 二〇一〇年九月二十日

毕业设计(论文)使用授权声明

本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。

本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。

(保密论文在解密后遵守此规定)

作者签名: 二〇一〇年九月二十日

致 谢

时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。

首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。

首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。

其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。

另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。

最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。

四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。

回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。

学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。

在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。

最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名: 日期: 年 月 日

导师签名: 日期: 年 月 日

独 创 声 明

本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

本声明的法律后果由本人承担。

作者签名: 年 月 日

毕业设计(论文)使用授权声明

本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。

本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。

(保密论文在解密后遵守此规定)

作者签名: 年 月 日

基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。

毕业论文的基本教学要求是:

1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。

毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。

撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业

论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。

2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。

3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。

论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。

按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。

按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称

为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。

另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类:

1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。

写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题

进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。

首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。

教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。

第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论

联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。

第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。

致 谢

这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。

通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。

即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务