自己曾经做过的基于DSP的WAV播放器

本文介绍了作者过去使用DSP开发的一款WAV播放器,包括12864驱动代码的相关内容,探讨了音频处理、延迟控制、命令处理以及codec功能实现的关键技术。
摘要由CSDN通过智能技术生成
有个想法,自己弄个播放器多好玩啊,想了想,应该分为以下几个部分
1.得有个处理器,我有BF592
2.得有个音频解码器,我有SSM2603
3.得有个存储器,我有M25P16
当前的情况是这三个我都有
按照难度,先来存储器,U盘还是SD卡呢?思考下,还是SD好些,理由是因为DSP支持SPI,而SD可以直接使用SPI,确定了
正好我有手机卡,今天买朗琴X6,送了个卡托,硬件全齐了
然后焊接,图如下,

 

图片

 这个是以前做的,代码还在

第一个是12864的驱动代码

void	delay(int delay);
void	Lcdwrite(char command,char se);
void	sendbit(char xx);
void	Init12864(void);



///
void	delay(int delay)
{
	int i;
	for(i=0;i<delay*9;i++)
	{
		asm("nop;");
		asm("nop;");
		asm("nop;");
	}
}
void	Lcdwrite(char command,char se)
{
	char high,low;

	high=command & 0xf0;
	low=command & 0xf;
	low=low<<4;
	low=low & 0xf0;
	sendbit(se);
	delay(1000);
	sendbit(high);
	delay(1000);
	sendbit(low);
	delay(1000);
}
void	sendbit(char xx)
{
	int i;
	char	tmp;
	for(i=0;i<8;i++)
	{
		tmp=xx;
		tmp=tmp<<i;	//将要给数据转到最高位	

		tmp=tmp>>5;		//转移到PF2
		tmp=tmp & 0x04;
		
		*pPORTFIO &=0xfffb;	//清除PF2
		ssync();
		*pPORTFIO |=tmp;	//给数据
		ssync();
		
		*pPORTFIO &=0xfffd;	//拉低时钟
		ssync();
		*pPORTFIO |=0x0002;	//拉高时钟
		ssync();
	}
}
void	Init12864(void)
{
	delay(1000);
	Lcdwrite(0x30,0xf8);
	Lcdwrite(0x0c,0xf8);
	Lcdwrite(0x01,0xf8);
	Lcdwrite(0x06,0xf8);
	delay(1000);
}

这个是手机卡的代码

#define DELAY				300
#define	u8   unsigned char 
#define u16 unsigned int 
#define u32 unsigned long 

int fatstart=97;
int datastart=7871;
unsigned char fat[512];	//用于读取处fat表分析用的
int rootnextcu=2;		//记录根目录的下一簇号,默认初始化为2号
unsigned char root[512*8];	//4KB,用以读取根目录内容并分析

void Wait_For_SPI1F(void);					//等待函数
void SetupSPI1( const int spi_setting );	//初始化SPI1;
void ReadByte(unsigned char *pusValue );	//传感器的单字节读取函数
void WriteByte(unsigned char usValue );	//传感器的单字节写函数
u8 SendCmd(u8 cmd,u32 arg,u8 last);
int speedsd;
int GetSec(int cuhao);		//根据簇号返回扇区
int GetNextCuhao(int cuhao);	//根据簇号返回下一个簇号
int GetCu(int position);		//根据传入的指针从根目录的目录项中获取簇号

/****************************************************/
//发送卡命令
/**************************************/
u8 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值