亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mp3_player_06.c

?? MP3源碼 內有SD2.0 驅動 FAT32 驅動
?? C
字號:
/*****************************************************/
/*                mp3 player V2.1                                                   */
/* Description : A mp3 player support lrc sd & U disk                 */
/* Platform     : AVRStudio4.13 + WinAVR20070525  m64        */
/* Author       : Michael Zhang - 章其波                            */
/* Email         : sudazqb@163.com                                          */
/* MSN          : zhangqibo_1985@hotmail.com                          */
/* Date          : 2007-11-03                                                    */
/* NOT FOR COMMERCIAL USE,     ALL RIGHT RESERVED!         */
/*****************************************************/

/*********************  old  ***************************/
/*                   MP3/Wma/Midi播放器                      */
/*  環境WinAVR 20060421                                      */
/*  作者:Bozai(章其波)                                    */
/*  E-mail:sudazqb@163.com                                  */
/*  2006年12月12日                                           */
/*************************************************************/
/*  20080308: rearrange the file, rewrite the key process (use interrupt) & volume*/
/*  20080205: a bug fixed(about lyric search, name comparision error )  */
/*  20071211: add low battery indication & remove all uart output, add message for sara ye */
/*  20071210: modify code for zl0801's mp3 PCB */
/*  20071122: add teminal control code                                   */
/*  20071121: solve glitch problem when playing 320Kbps files            */
/*  20071109: add & modify function for any directory music file playing */
/*  20071103: add function for lyric display                             */

#include"sys_config.h"
//#include"IDE/IDE.h"

uint8 HanziEnable = 0;	/* Gloable variable to indicate wether the firmware are exist, and 1 means exist */

extern struct direntry MusicInfo;	/* Music file information, 32Bytes short directory record, contain the short name and others */
//extern struct direntry LrcInfo;	/* lyric file information, 32Bytes short directory record, the short name and others */


void (*BootLoaderEntry)(void) = 0xf800;	/* boot loader entry, bootloader size: 2048Bytes */

extern uint16 totalsongs;	/* total number of songs*/
extern uint8 type;			/* current song's file type, mp3 wma mid or wav */

volatile uint8 key_count;

volatile uint8 key_value;

	
//Timer initialization offer seed of the srandom()
void Timer1_Initial()
{
	key_value = 0;
	key_count = 0;
	TCNT1H=0x00;
	TCNT1L=0x00;
	TCCR1A=0x00;
	TCCR1B=0x01;
	TIMSK |= 1<<TOIE1;
 	sei();
}


SIGNAL(TIMER1_OVF_vect)
{
	//TCCR1B = 0;
	//printf_P(PSTR("\r\nvalue = %x"),key_value);
	if((key_value&KEY_VALID) ==0)
	{
		//printf_P(PSTR("\r\nkey not valid"));
		if((PINE&(STOP|MODE|NEXT|PREV|UP|DOWN)) == (STOP|MODE|NEXT|PREV|UP|DOWN))
		{
			//printf_P(PSTR("\r\nno key pressed"));
			if(key_value&KEY_LONG)
			{
				key_value = 0;
			}
			else if((key_value&KEY_PRESEED) && (key_count>KEY_VALID_TIME))
			{
				//printf_P(PSTR("\r\nkey released"));
				key_value |= KEY_RELEASED;
				key_value |= KEY_VALID;
				key_count = 0;
			}
			else
			{
				key_value = 0;
				key_count = 0;
			}
		}
		else if(key_value&KEY_PRESEED)
		{
			//printf_P(PSTR("\r\nkey used preseed"));
			if(key_count == KEY_LONG_TIME)
			{
				//printf_P(PSTR("\r\nlong key prseed"));
				key_value |= KEY_LONG|KEY_VALID;
				key_count= 0;
			}
			if((key_value&KEY_LONG)==0)
			{
				key_count++;
			}
		}
		else
		{
			if((PINE&STOP)!=STOP)
			{
				//printf_P(PSTR("\r\nstop key first pressed"));
				key_value = KEY_STOP;
				key_value |= KEY_PRESEED;
			}
			else if((PINE&MODE)!=MODE)
			{
				//printf_P(PSTR("\r\nmode key first pressed"));
				key_value = KEY_MODE;
				key_value |= KEY_PRESEED;
			}
			else if((PINE&NEXT)!=NEXT)
			{
				//printf_P(PSTR("\r\nnext key first pressed"));
				key_value = KEY_NEXT;
				key_value |= KEY_PRESEED;
			}
			else if((PINE&PREV)!=PREV)
			{
				//printf_P(PSTR("\r\nprev key first pressed"));
				key_value = KEY_PREV;
				key_value |= KEY_PRESEED;
			}
			else if((PINE&UP)!=UP)
			{
				//printf_P(PSTR("\r\nV+ key first pressed"));
				key_value = KEY_UP;
				key_value |= KEY_PRESEED;
			}
			else if((PINE&DOWN)!=DOWN)
			{
				//printf_P(PSTR("\r\nV- key first pressed"));
				key_value = KEY_DOWN;
				key_value |= KEY_PRESEED;
			}

		}
	}
	//TCCR1B = 0x01;
}


int main()
{
	//unsigned char temp;
	DDRE = 0x00;
	PORTE = 0xff;
	PORTB |= 1<<PB0;	/* we should make sure that AVR's SS pin is held high no mater the spi is master or slave*/

	LCD_BL_CON;
	LCD_BL_ON;	

	OSCCAL = 0xff;

	COM_Initial(MYUBRR);
	
	VS1003B_Init();

	lcdInit();

	Timer1_Initial();


	if(MCUCSR & 1<<BORF)
	{
		lcdClrDisBuf();
		LCD_print12_P(0,12,PSTR("Low Battery!!!"));
		lcdUpdateDisplay();
		while(1);
	}

	#if 0
	lcdClrDisBuf();
	LCD_print12_P(0,0,PSTR("  Mp3 Player\nX-mas Special\nFor   Sara Ye\n-- by Michael"));
	lcdUpdateDisplay();

	for(temp = 0;temp<40;temp++)
		Delay(0xffff);
	#endif
	
	OSCCAL = 0xff;

	lcdClrDisBuf();
	LCD_print12_P(0,0,PSTR("Pls insert SD card!"));
	lcdUpdateDisplay();
	while(MMC_SD_Init());
	
	FAT_ReadSector = MMC_SD_ReadSingleBlock;//device read
	FAT_WriteSector = MMC_SD_WriteSingleBlock;//device write
	FAT_ReadCapacity = MMC_SD_ReadCapacity;//read capacity


	if(FAT_Init())
	{
		lcdClrDisBuf();
		LCD_print12_P(0,0,PSTR("Wrong FAT!\nSystem halted!\nPls reset the\nsystem! -bozai"));
		lcdUpdateDisplay();
		while(1);
	}//初始化FAT文件系統
		
	if(GBK_Ini())
	{
		lcdClrDisBuf();
		LCD_print12_P(0,0,PSTR("Firmware lost!\nPress start to\ncontinue!\n    --By bozai"));
		lcdUpdateDisplay();
		HanziEnable = 0;
	}
	else 
	{
		lcdClrDisBuf();
		//LCD_print12_P(0,0,PSTR("  固件正常!\n MP3 for 葉敏\n -- by 章其波\n 按開始鍵繼續"));
		LCD_print12_P(0,0,PSTR("固件正常!\nMP3 player\n --by 章其波\n按開始鍵繼續"));
		lcdUpdateDisplay();
             
		HanziEnable = 1;
	}


	while(1)
	{
		if(key_value & KEY_VALID)
		{
		#if STOP_KEY
			if((key_value&KEY_VALUE_MASK) == KEY_STOP)
		#else
			if((key_value&KEY_VALUE_MASK) == KEY_MODE)
		#endif
			{
				key_value = 0;
				break;
			}
			else key_value = 0;
		}
	}


	
#if FIX_DIRECTORY
	//printf_P(PSTR("\r\nSearch the folder %s\r\n"),MUSIC_PATH);
	Search(MUSIC_PATH,&MusicInfo,&totalsongs,&type);//搜索歌曲
#else
	//printf_P(PSTR("\r\n\r\nSearch & record folder information....."));
	//printf_P(PSTR("\r\nNOTE: MAX folder amount is %d for we only use %dBytes EEPROM to store the info\r\n"),(RECORD_ADDR_END-RECORD_ADDR_START)/4 -1,RECORD_ADDR_END-RECORD_ADDR_START);
	SearchInit();
	Search(0,&MusicInfo,&totalsongs,&type);//搜索歌曲
#endif

	PlayMusicwithKey();

	while(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利精品视频| 久久久噜噜噜久噜久久综合| 日韩电影在线观看网站| 91精品国产手机| 国产一区二区三区精品视频| 高清不卡一区二区| 国产精品白丝在线| 日本精品裸体写真集在线观看| 亚洲第一av色| 日韩视频免费观看高清在线视频| 国内精品久久久久影院一蜜桃| 亚洲国产成人午夜在线一区| 色欧美乱欧美15图片| 石原莉奈在线亚洲三区| 精品sm捆绑视频| 成人精品国产一区二区4080| 一区二区三区欧美亚洲| 91精品国产日韩91久久久久久| 国产综合色视频| 亚洲理论在线观看| 日韩午夜在线播放| 成人国产在线观看| 亚洲网友自拍偷拍| 久久女同互慰一区二区三区| 99精品视频在线免费观看| 五月激情丁香一区二区三区| 精品久久五月天| 97成人超碰视| 日韩成人午夜电影| 中文字幕成人在线观看| 欧美喷水一区二区| 欧美经典三级视频一区二区三区| 91同城在线观看| 蜜臀精品一区二区三区在线观看| 欧美国产精品v| 欧美另类久久久品| 大尺度一区二区| 亚洲va欧美va天堂v国产综合| 精品国产1区二区| 在线免费观看日韩欧美| 韩日av一区二区| 一区二区三区日本| 久久久久久久久97黄色工厂| 欧美性三三影院| 国产麻豆一精品一av一免费| 亚洲大片在线观看| 欧美国产精品久久| 日韩一二三四区| 91在线丨porny丨国产| 另类人妖一区二区av| 一区二区三区四区不卡在线| 久久影院午夜片一区| 欧美日韩电影在线播放| 成人免费看黄yyy456| 日本不卡在线视频| 一区二区在线看| 国产亚洲制服色| 免费在线观看一区| 亚洲欧洲另类国产综合| 精品粉嫩aⅴ一区二区三区四区| 欧洲日韩一区二区三区| 国产成人综合亚洲91猫咪| 视频一区中文字幕国产| 亚洲柠檬福利资源导航| 欧美国产乱子伦| 欧美α欧美αv大片| 欧美猛男超大videosgay| 91小宝寻花一区二区三区| 国产黑丝在线一区二区三区| 日韩黄色免费电影| 亚洲永久精品国产| 亚洲日本一区二区| 日本一二三不卡| 精品国产乱码久久久久久久| 91麻豆精品国产91久久久更新时间| 99riav久久精品riav| 国产高清不卡一区二区| 美日韩黄色大片| 日韩在线观看一区二区| 一区二区三区**美女毛片| 最新国产の精品合集bt伙计| 国产亚洲午夜高清国产拍精品| 欧美一区二区三区四区五区| 欧美中文字幕一二三区视频| 亚洲一线二线三线久久久| 国产精品免费网站在线观看| 精品成a人在线观看| 日韩午夜激情电影| 91精品视频网| 欧美日韩国产首页| 欧美日韩免费高清一区色橹橹| 一本久久综合亚洲鲁鲁五月天| 成人国产精品免费网站| 国产精品一二一区| 国产高清久久久| 国产尤物一区二区在线| 精品一区二区三区免费毛片爱| 日韩高清中文字幕一区| 偷窥少妇高潮呻吟av久久免费| 亚洲自拍都市欧美小说| 亚洲男同性视频| 一区二区高清免费观看影视大全| 亚洲视频在线一区| 亚洲欧美日韩在线不卡| 亚洲日穴在线视频| 亚洲美女屁股眼交3| 亚洲欧美日韩小说| 一区二区在线看| 亚洲成av人片一区二区三区| 亚洲国产精品一区二区www| 亚洲高清免费在线| 午夜欧美大尺度福利影院在线看| 午夜一区二区三区在线观看| 亚洲福中文字幕伊人影院| 欧美丰满一区二区免费视频| 欧美精品在线观看播放| 欧美疯狂做受xxxx富婆| 日韩精品自拍偷拍| 免费精品99久久国产综合精品| 日产国产高清一区二区三区| 日本成人在线网站| 精品制服美女久久| 狠狠色综合播放一区二区| 国产精品系列在线播放| 成人av午夜电影| 91成人网在线| 777色狠狠一区二区三区| 精品国产一区二区在线观看| 久久久久国产精品厨房| 国产精品萝li| 亚洲黄色小视频| 手机精品视频在线观看| 精品一区二区免费视频| 成人黄色电影在线| 色婷婷亚洲一区二区三区| 欧美天堂亚洲电影院在线播放| 91精品欧美综合在线观看最新| 欧美大片在线观看| 欧美激情一区二区三区四区| 亚洲欧美激情一区二区| 五月天视频一区| 国产一区二区三区香蕉| 成人18视频日本| 日本欧美肥老太交大片| 国产精品亚洲第一 | 五月综合激情日本mⅴ| 青青草91视频| 成人小视频在线| 欧美视频一二三区| 久久婷婷综合激情| 亚洲欧洲综合另类| 日本中文字幕一区二区有限公司| 国产成人精品1024| 欧美三级在线看| 久久夜色精品国产噜噜av| 亚洲图片另类小说| 美女视频一区在线观看| 99视频精品免费视频| 91精品国产综合久久婷婷香蕉| 国产日韩欧美在线一区| 亚洲最新在线观看| 国产一区二区三区免费| 欧洲一区二区av| 久久久精品2019中文字幕之3| 一区二区在线免费观看| 国产在线精品不卡| 欧美专区日韩专区| 国产三级精品在线| 亚洲国产视频在线| 国产精品99久| 欧美老女人第四色| 国产精品青草久久| 日本aⅴ精品一区二区三区 | 极品少妇xxxx精品少妇偷拍| 成人午夜激情视频| 91精品国产综合久久精品性色| 国产女主播视频一区二区| 三级不卡在线观看| 99国产精品久| 久久青草欧美一区二区三区| 亚洲h在线观看| 不卡视频在线观看| 日韩免费一区二区三区在线播放| 亚洲欧美国产高清| 国产乱码精品1区2区3区| 欧美精品少妇一区二区三区| 国产精品成人免费| 国产一区二区毛片| 欧美一级片在线看| 一区二区三区**美女毛片| 成人免费看视频| www一区二区| 日韩国产欧美在线视频| 91在线视频免费91| 久久久久国产精品人| 欧美a级理论片| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产高清在线观看视频| 久久国产欧美日韩精品| 欧美人与禽zozo性伦|