Linux嵌入式MP3实验报告,嵌入式MP3实验报告.doc

嵌入式MP3实验报告

西安邮电大学

嵌入式系统设计实验报告

专 业班 级学 号学生姓名指导教师学 期2013-2014学年第2学期完成日期2014-06-25

基于lpc2131的模拟MP3播放器实验

实验目的

熟悉ARM & ADS V1.2 的环境

理解LPC2131芯片引脚功能的选择

理解GPIO的使用设置、输入驱动方法

理解PWM的通信原理,学习ARM PWM资源的通信编程

学习在LPC2131上移植ucosⅡ系统

实验内容及要求

(1)通过键盘输入,进入MP3播放器相应的功能选项。

(2)MP3播放器具备的功能选项为:播放、暂停、停止、音量控制、音乐下载。

(3)MP3播放器响应进入各功能状态时,蜂鸣器蜂鸣。

(4)流水灯表示MP3播放器当前所处的功能状态。

(5)蜂鸣器蜂鸣声音的大小代表音量的大小,音量控制状态和音乐下载状态可分别与其他3种状态同事存在。

(6)数码管数字大小表示执行MP3各功能状态的时间。

系统总体设计(总体方案及系统框图)

系统主要创建了六个任务,分别为MP3总任务、判断按键任务、播放音乐任务、控制音量任务、播放上一曲或下一曲任务及暂停或停止任务,然后启动多任务环境,通过创建的消息邮箱发送并接收消息,进而实现MP3播放的一些简单功能。

系统详细设计(模块详细设计及流程图)

系统测试(数据测试结果及分析)

通过键盘按键输入相应功能,发送到开发板,数码管和LED灯接收到数据后,数码管会自动变化到该按键号,并且相应的LED灯在数码管变化的同时会点亮。在程序运行的任何期间都可以从键盘输入相应功能,而且程序会自动判断要满足的用户的优先级。

此次试验实现了简单的基本MP3功能。

总结

通过这次课程设计,使我对以前完全陌生的ARM 软件有了初步的接触,我学到了如何在ARM中实现基本的MP3播放功能。原先我对嵌入式系统并没有很深刻的了解,在做完课程设计后,我对数码管、蜂鸣器及流水灯的结构和功能有了更进一步的了解,并且知道了一些相关函数的功能与运用,真正的把所学的东西运用到了实际中,更好的把课本知识与实际相结合,对我以后的学习有很大帮助。

附录(代码+注释)

#include "config.h"

#include "stdlib.h"

#include "music.h"

#defineKEY11 << 16 // P0.16连接KEY1

#defineKEY21 << 17 // P0.17连接KEY2

#defineKEY31 << 18 // P0.18连接KEY3

#defineKEY41 << 19 // P0.19连接KEY4

#defineKEY51 << 20 // P0.20连接KEY5

#defineKEY61 << 21 // P0.21连接KEY6

#define BEEP 1 << 7 // P0.7控制蜂鸣器BEEP

#define HC595_CS (1 << 29) //P0.29口为74HC595的片选

#defineTaskStkLengh64//Define the Task0 stack length 定义用户任务0的堆栈长度

OS_EVENT *voice;

OS_EVENT *b_n;

OS_EVENT *p_s;

//歌曲曲谱 - 虹彩妹妹

const uint32 HCMM1[] =

{

_LA,_SO,_MI,_LA,_SO,_MI,

_LA, _LA, _SO, _LA,

_LA, _SO, _MI, _LA, _SO, _MI,

_RE, _RE, _DO, _RE,

_MI, _MI, _SO, _LA, _DO1, _LA, _SO,

_MI, _MI, _SO, _DO,

_MI, _MI, _MI, _MI, _MI,

_1LA,_1LA,_1SO,_1LA,

};

/* 歌曲节拍 */

const uint32 HCMM_L1[] =

{

_4, _8, _8, _4, _8, _8,

_8, _4, _8, _2,

_4, _8, _8, _4, _8, _8,

_8, _4, _8, _2,

_4, _8, _8, _8, _8, _8, _8,

_8, _4, _8, _2,

_4, _4, _4, _8, _8,

_8, _4, _8, _2,

};

// 歌曲曲谱 - 倩女幽魂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值