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

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

?? main.c

?? mp3播放器軟件
?? C
?? 第 1 頁 / 共 3 頁
字號:
   /*=============================================================================
                                       Main Program
                                      T-Square Design
===========================================================================*/
#pragma code debug small
#define DEBUG_KEY
#define CHINESE
#include<stdio.h>
#include<reg52.h>
#include<string.h>
#include<stdlib.h>
#include<MATH.h>
#include<absacc.h>
#include<intrins.h>
#include<CTYPE.h>
#if 0
#define KEY_PLUS	5
#define KEY_DEC		9

#define KEY_MENU 	6
#define KEY_AB		10

#define KEY_STOP	89

#define KEY_UP		13
#define KEY_DOWN	14

#define KEY_PLUS1	KEY_PLUS+0x20
#define KEY_DEC1	KEY_DEC+0x20

#define KEY_PRE		KEY_UP
#define KEY_NEXT 	KEY_DOWN

#define KEY_FB		KEY_UP+0x20
#define KEY_FF	 	KEY_DOWN+0x20

#define KEY_FB_OFF		KEY_UP+0x40
#define KEY_FF_OFF	 	KEY_DOWN+0x40

#define KEY_OFF		KEY_MENU+0x20
#endif
#include"define.h"
#include"function.h"
#include"key.h"
#include"key1.c"
#include"flash.h"
#include"flash64.c"
#include"faccess.h" 
#include"faccess2.c"
#include"lcd.c"
//=============================================================================
//variable for debug
//=============================================================================
#define BK_ON		XBYTE[EGPIO_OUT+3]=XBYTE[EGPIO_OUT+3]|0X04
#define BK_OFF		XBYTE[EGPIO_OUT+3]=XBYTE[EGPIO_OUT+3]&0xfb
//#define Flash_64M
//58pin,gpio26.
#define GA 1280
#define GD 1856
#define BCD
#define VOLT		65*32+2
#define MP3_24DEC	28*32
#define I2S		65*32
#define ROCK		66*32
#define POP		    (66*32)+2
#define JAZZ		(66*32)+4
#define CLASSIC		(66*32)+6
#define BASS		(66*32)+8
#define PLAYMODE  	0
#define STOPMODE  	4
#define PAUSEMODE 	5
#define RECMODE     1
#define PLAYON		(97*32)+2
#define CLOSETIME   20000
#define POWER_OFF	XBYTE[EGPIO_OUT+3]=XBYTE[EGPIO_OUT+3]&0xfd
xdata unsigned char Volt;
//=============================================================================
//=============================================================================
#ifdef CHINESE
code char  *Menu[6] = {"音樂","錄音","背光","刪除","內(nèi)存信息","返回"};
code char  *BkMenu[5] = {"關閉","5 秒","10 秒","15 秒","20 秒"};
#else
code char  *Menu[6] = {"MUSIC","RECORD","BACKLIGHT","DELETE FILE","MEMORY?。桑危疲?quot;,"RETURN"};
code char  *BkMenu[5] = {"OFF","5?。樱牛?quot;,"10?。樱牛?quot;,"15?。樱牛?quot;,"20?。樱牛?quot;};
#endif
xdata char  **MenuPo;
xdata unsigned char conserve = 0;
xdata unsigned char conserve1 = 0;
//xdata struct PlayList 
xdata struct PlayList FcbTable;
xdata struct File PlayFile;//,Point2;
xdata struct t2time CurrTime=0;
//////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/*MP3 INITIAL STATUS*/
bit	  CloseFlg = 0;
bit   Power_Off= 0;
bit	  PlayModeReq = 1;			
bit	  BkMode = 0;
bit	  BatTest = 0;
xdata unsigned int		BattTestTime = 0;
xdata unsigned int		CloseTime = 0;
xdata unsigned int      BackLightTime;
xdata unsigned char     BackLight;
xdata unsigned char     BackTime = 0;
xdata unsigned char	    CurrFileType=4;//1 MP3,2 PCM,4 G72,0 nothing
xdata unsigned short 	CurrOpenFileNo=0;
xdata unsigned char 	BattState=3;//0: full, 1: 3/4 full 2: 1/2 full 3:1/4 full 4:pull down
xdata unsigned char     WorkState=0;    
unsigned short    	Command=0;                      //command dsp send to mcu

xdata unsigned char    	Ms1Count=50;                    //count 1ms number
unsigned char     	DmBufPage=0;
xdata unsigned char CurrLrcLength =0;
xdata char  Vol;
xdata unsigned char 	RepMode;//zls 2003/9/5
xdata unsigned char 	EqMode;


xdata unsigned int RepFirstCluster;
///////////////////////////////////////////////////////////////////////////////
xdata unsigned int VolumnConTime;
bit VolumnCh = 0;
bit VolumnDispReq = 0;
bit     TimeDispMFg=0;        //time display munits flag
bit	TimeDispSFg = 0;		//time display second flag
bit	TimeDispHFg = 0;
bit     DataRequestFg=0;        //DSP data request interrupt flag
bit     OpenPlayFile=0;	//0:none open music file,1: opend music file
bit     InitStateFg=1;
bit     PlayFileEndF=0;
//bit 	PlayFileEndB=0;
bit     InitLrcFg=1;
///////////////////////////////////////////////////////////////////////////////
//bit  ProcWordDisp(char *String,unsigned char Page,unsigned char Column_Length,bit en_ch,bit Mode);
bit  ProcWordDisp(char *String,unsigned char Page,unsigned char Column_Length,unsigned char Width,bit Mode);
//void  InitDisplay(void);
void Get_Data(unsigned char* DispBuff,unsigned char String_Len,unsigned char Width,bit reload);
xdata unsigned char Buf[16];
//xdata unsigned char DispBuff[64];
//xdata unsigned char PageLine;
bit	LineA = 0;
bit	MenuReq = 0;
xdata unsigned char FileArrg[99] = 0;
xdata unsigned char MenuKey = 0;
xdata unsigned char Line1;
xdata unsigned char Line2;
xdata unsigned char SelectLine = 1;
xdata unsigned char  MenuItem = 0;
xdata unsigned char	 MenuNum = 0;
xdata unsigned char buffer[216];//store 8 data of display
xdata unsigned char EndLoop = 0;
xdata unsigned char buff_addr =0;
xdata unsigned char DispLength = 0;
xdata unsigned char StringLength = 0;
bit ModeDispReqFg=0;
bit BattDispReqFg=0;
//sbit    Bk = P3^1;
//sbit	Key_Lock = P3^3;
//sbit 	POWER = P3^0;
//sbit	WP = P3^0;

//bit	StartLrcFg=1;
bit	  Recing = 0;
xdata char Playing = 0;	//0:stop,1:play,2:pause
xdata unsigned int	NextCluster;
xdata int	MenuConTime;
char IdmaRw = 0;	//0:write to DSP,1:read from DSP
void Delay(unsigned char);
//extern char DownloadDsp(struct File *F,unsigned short Len,unsigned short DAddr,unsigned short BAddr);
extern unsigned short DownloadDsp(unsigned short F,unsigned short Len,unsigned short DAddr,unsigned short BAddr);
extern char LoadDspPm(unsigned int ProgramName);
//extern char LoadDspPm(char* ProgramName);
extern void SendCmd(unsigned short Command);
extern bit	Key;
void  ProcMenu(void);
//void  ProcBkLight(void);
void  ProcRep(void);
void  ProcDelFile(void);
void  DispMemInfo(void);
void  ProcVolumnDisp(void);
void BattTest(void);
void PowerOff(void);
void PlayInitial(unsigned char);
unsigned int ExternDir(unsigned int FirstCluster);
void WriteEn(char*,unsigned char ,unsigned char);
void PlayInitial(unsigned char No)
{
	if(Recing)
		WorkState = RECMODE;
	else{
		if(Playing == 0)
		{
			WorkState = STOPMODE;
			CloseFlg = 1;
			CloseTime = CLOSETIME;
		}else{
			if(Playing == 1)
			{
				WorkState = PLAYMODE;
			}else{
				WorkState = PAUSEMODE;
				CloseFlg = 1;
				CloseTime = CLOSETIME;
			}
		}
	}
	if(TotalFile==0)
	{
		/*strcpy(Buf,"NO REC FILE");
		WriteEng(6,10);*/
		ClearLcdRam(0x70);
		WriteEn("No REC FILE1",5,10);
		return;
	}
		strcpy(Buf,"RECORD");
		Buf[6] = 0x20;
		Buf[7] = 0x20;
		Buf[8] = No/10+0x30;
		Buf[9] = No%10+0x30;
		Buf[10] = 0;
		WriteEng(1,0);
		ModeDispReqFg = 1;
		Buf[0] = '0';
		Buf[1] = '0';
		Buf[2] = ':';
		Buf[3] = 0;
		WriteEng(7,0);
		Buf[2] = 0;
		WriteEng(7,18);
	
}
//systemp initial
//output none
void Delay(unsigned char Time)
{
	while(Time--);
}
void ProcVolumnDisp(void)
{
	unsigned char i;
	unsigned char DotVlu;
	unsigned char StartColum;
	unsigned char Volumn;
	StartColum = 15;
	Volumn = Vol+5;
	ClearLcdRam(0x70);
	strcpy(Buf,"Vol");
	WriteEng(1,StartColum);
	InitLcdCfg(0,StartColum);
	DotVlu = 0xff;
	XBYTE[LCD_CMDH] = 0x42;//start to write data	
	for(i = 0;i<Volumn+Volumn/3;i+=4)
 	{
 		WriteData(DotVlu);
 		Delay(0x10);
 		WriteData(DotVlu);
 		Delay(0x10);
 		WriteData(0x00);
 		Delay(0x10);
 	}
 	if(Volumn>20)
 	{
 		InitLcdCfg(1,StartColum+18);
 		DotVlu = 0xff;
 		XBYTE[LCD_CMDH] = 0x42;
 		for(i = 25;i<Volumn+Volumn/3;i+=4)
 		{
 			WriteData(DotVlu);
 			Delay(0x10);
 			WriteData(DotVlu);
 			Delay(0x10);
 			WriteData(0x00);
 			Delay(0x10);
 		}
 		InitLcdCfg(2,StartColum+18);
 		DotVlu = 0;
 		XBYTE[LCD_CMDH] = 0x42;
 		for(i = 25;i<Volumn+Volumn/3;i+=4)
 		{
 			WriteData(DotVlu);
 			Delay(0x10);
 			WriteData(DotVlu);
 			Delay(0x10);
 			WriteData(0x00);
 			Delay(0x10);
 			DotVlu<<=1;
 			DotVlu|=0x01;
 		}
 	}
 	if(Volumn>42)
 	{
 		InitLcdCfg(3,StartColum+45);
 		DotVlu = 1;
 		XBYTE[LCD_CMDH] = 0x42;
 		for(i = 59;i<Volumn+Volumn/3;i+=4)
 		{
 			WriteData(DotVlu);
 			Delay(0x10);
 			WriteData(DotVlu);
 			Delay(0x10);
 			WriteData(0x00);
 			Delay(0x10);
 			DotVlu<<=1;
 			DotVlu|=0x01;
 		}
 	}
}	
void Load(unsigned short Addr)
{
	//xdata unsigned short Blo;
	//xdata unsigned short Pa;
	XBYTE[EGPIO_OUT]=XBYTE[EGPIO_OUT]&0Xef; //reset DAC and ADC
	//Blo = Addr /32;
	//Pa = Addr % 32;
	EA = 0;
	MARK=0xaa;
	CARD_NUMBER=0x11;//0x20 or 0x30
	READ_BLOCK_H=0x00; 
	READ_BLOCK_M=0x00;
	READ_BLOCK_L=Addr / 32;
	B_TO_P_NUMBER=32;
	READ_PAGE_ADDR=Addr % 32;
	READ_LEN=48;
	XBYTE[0xff] = 3;
	Bl();
}
void  ProcMenu(void)
{
	bit MenuDispReq = 0;
	bit	MenuEndReq  = 0;
	MenuConTime = 2000;
	if(MenuItem == 0)
	{
		ClearLcdRam(0x00);
		MenuItem = 1;
		MenuPo = Menu;
		MenuNum = 6;
		LineA = 0;
		Line1 = 0;
		Line2 = 1;
		MenuKey = 0;
		MenuDispReq = 1;
	}
	switch(MenuKey)
	{
		case KEY_NEXT: 
			if(LineA == 1)
			{
				Line1 = Line2;
				if(Line2 == MenuNum-1)
					Line2 = 0;
				else Line2++;
			}else LineA = 1;
			MenuDispReq = 1;
			break;
		case KEY_PREV:
			if(LineA == 0)
			{
				Line2 = Line1;
				if(Line1 == 0)
					Line1 = MenuNum-1;
				else Line1--;
			}else LineA = 0;
			MenuDispReq = 1;
			break;
		case KEY_MODE:		
			if(LineA)
				 SelectLine = Line2;
			else SelectLine = Line1;
			if(MenuItem == 1)
				{
				switch(SelectLine)
				{
					case 0x00:
							SendCmd(STOP);
							McuRw;
							
	                        
							XBYTE[0x1000] = RepMode;
                            XBYTE[0x1001]=Vol;
                            XBYTE[0x1002] = BackLight;
                            XBYTE[0x1003] = EqMode;
                            SmcBlockErase(99);
                            MemoryRw;
                            SmcPageProgram(3199);
							McuRw;
							//XBYTE[EGPIO_OUT] &=0x6f;//set low 1770 power on 
							Load(10*32);//load mp3 mode
					case 0x01:
							SendCmd(STOP);
							ClearLcdRam(0x70);
							if(TotalFile == 99)
								break;
							Recing = 1;
							Playing = 0;
							TotalFile++;
							ModeDispReqFg = 1;
							for(i = 0;i <99;i++)
							{
								if(FileArrg[i]==0)
								{
									FileArrg[i] =1;
									break;
								}
							}
							i++;
							Buf[0] = 'R';
							Buf[1] = i/10 + 0x30;
							Buf[2] = i%10 + 0x30;
							Buf[3] = '.';
							Buf[4] = 'G';
							Buf[5] = '7';
							Buf[6] = '2';
							Buf[7] = 0;
							XBYTE[EGPIO_OUT+2]=XBYTE[EGPIO_OUT+2]&0X7f;//gpio23,pin44,adc_pw low,disable battle detect.
							while(Fcreat(&PlayFile,Buf,RepFirstCluster)==FALSE)
								ExternDir(RepFirstCluster);
							PlayInitial(i);
							LoadDspPm(GA);//GA is page address.
							//LoadDspPm("GA.NEW");
							//LoadDspPm("GA.NEW");
							Command = 0xab00;
							DataRequestFg = 0;
							DmBufPage = 0;							
							MenuItem = 0;
							conserve1 = 0;
							CurrOpenFileNo = i;
							return;
							break;
					case 0x02:
							MenuPo = BkMenu;
							MenuNum = 5;
							LineA = 0;
							Line1 = BackLight;
							if(Line1 == MenuNum	-1)
									Line2 = 0;
							else    Line2 = Line1+1;				
							MenuDispReq = 1;
							MenuItem = 3;
							break;
					case 0x03:
							ProcDelFile();
							MenuEndReq = 1;							
							break;
					case 0x04:
							DispMemInfo();
							break;							
					case 0x05:
							MenuEndReq = 1;
							break;
				    }
				}
				else if(MenuItem == 3)
					{
						BackLight = SelectLine;
						MenuEndReq = 1;
					}
					
					
	}					
	if(MenuDispReq)
	{
		ET0 = 0;
		StringLength = 0;
		ProcWordDisp(MenuPo[Line1],3,0,12,~LineA);
		StringLength = 0;
		ProcWordDisp(MenuPo[Line2],1,0,12,LineA);
		ET0 = 1;
	}
	if(MenuEndReq)
	{
		MenuItem = 0;
		conserve1 = 0;
		ClearLcdRam(0x71);
		PlayInitial(CurrOpenFileNo);
	}
	MenuKey = 0;
}	
void ProcDelFile()
{
	xdata unsigned char i;
	xdata unsigned char j;
	ClearLcdRam(0x70);
	SendCmd(STOP);
	Command = 0;
	TimeDispSFg = 0;
	TimeDispMFg = 0;
	CurrTime.Second = 0;
	CurrTime.Minute = 0;
	Playing = 0;
	if(TotalFile == 0)
	{
		//PlayInitial(0);
		return;
	}
	WriteEn("Del",6,10);
	WriteEn("Y:MODE KEY",7,28);
	WriteEn("N:OTHER KEY",1,28);
	while(1)
	{
		ScanKey();
		GetKeyValue();
		if(NewKey !=0)
		{
			    if(NewKey == KEY_MODE)
				{
					j = 0;
					for(i = 0;i<99;i++)
					{
						if(FileArrg[i] ==1)
						{
							j++;
							if(j == CurrOpenFileNo)			
							break;
						}
					}
					i++;
					Buf[0] = 'R';
					Buf[1] = i/10 + 0x30;
					Buf[2] = i%10 + 0x30;
					Buf[3] = '.';
					Buf[4] = 'G';
					Buf[5] = '7';
					Buf[6] = '2';
					Buf[7] = 0;
					DelFile(Buf,RepFirstCluster);					
					for(i=0;i<99;i++)
    				{
    					FileArrg[i] = 0;
    				}
    				TotalFile=Traverse(0,4,RepFirstCluster);
    				if(TotalFile != 0)
						CurrOpenFileNo = 1;
    				//ClearLcdRam(0x70);
    				//PlayInitial(CurrOpenFileNo);
				}
				NewKey = 0;
				return;
		}
		
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利在线观看| 欧美猛男男办公室激情| 亚洲一区二区在线免费看| 欧美电影免费观看高清完整版| 成人av网站免费| 久久精品国产99国产精品| 亚洲色图丝袜美腿| 国产色综合一区| 欧美v国产在线一区二区三区| 91在线无精精品入口| 国产夫妻精品视频| 麻豆91精品91久久久的内涵| 一区二区欧美国产| 国产精品久久久久久久久果冻传媒 | 欧美一级片在线观看| 99精品黄色片免费大全| 精品亚洲欧美一区| 三级成人在线视频| 亚洲va欧美va人人爽午夜| 亚洲天堂成人网| 欧美激情一区三区| 久久久久国产精品麻豆ai换脸| 欧美电影一区二区三区| 欧美综合色免费| 91免费在线播放| 91在线精品一区二区| 懂色av中文字幕一区二区三区| 激情综合色播五月| 日韩成人精品在线| 日韩av在线发布| 午夜电影一区二区三区| 亚洲午夜精品一区二区三区他趣| 亚洲婷婷综合色高清在线| 中文成人av在线| 亚洲国产成人一区二区三区| 久久婷婷色综合| 久久夜色精品国产噜噜av| 26uuu亚洲综合色| 精品国产伦一区二区三区免费| 日韩手机在线导航| 欧美电视剧免费观看| 精品国产百合女同互慰| 久久午夜羞羞影院免费观看| 国产日韩av一区| 国产精品美女www爽爽爽| 自拍偷拍亚洲综合| 亚洲香肠在线观看| 午夜国产精品影院在线观看| 奇米影视一区二区三区| 美女精品一区二区| 国产精品12区| 99re免费视频精品全部| 一本色道久久综合精品竹菊| 在线看一区二区| 7777精品伊人久久久大香线蕉完整版 | 亚洲成人黄色小说| 日本免费在线视频不卡一不卡二| 久久99蜜桃精品| 国产精品18久久久久久久网站| 丁香一区二区三区| 97久久超碰国产精品| 欧美日韩国产成人在线免费| 日韩欧美在线123| 国产三级精品三级在线专区| 综合色天天鬼久久鬼色| 亚洲电影一级片| 精品无人区卡一卡二卡三乱码免费卡| 国产精品影音先锋| 欧美专区亚洲专区| 日韩欧美视频一区| 国产精品高潮呻吟| 性欧美疯狂xxxxbbbb| 国产一本一道久久香蕉| 色94色欧美sute亚洲线路一久| 欧美一区国产二区| 国产精品丝袜一区| 亚洲观看高清完整版在线观看 | 91免费看片在线观看| 欧美日韩成人激情| 久久久亚洲精华液精华液精华液| 亚洲免费电影在线| 免费成人小视频| 91香蕉国产在线观看软件| 欧美一区二区三区免费大片| 国产精品乱码一区二三区小蝌蚪| 亚洲一本大道在线| 丰满岳乱妇一区二区三区 | 国产午夜精品一区二区三区视频| 亚洲精品视频在线| 狠狠色狠狠色综合| 欧美丝袜自拍制服另类| 国产欧美精品一区二区三区四区| 亚洲午夜视频在线| 欧美日韩一区视频| 国产精品视频第一区| 日本女人一区二区三区| 色狠狠综合天天综合综合| 精品福利av导航| 婷婷丁香激情综合| 日本高清成人免费播放| 国产女人aaa级久久久级 | 日本韩国视频一区二区| 2020国产精品自拍| 日韩国产高清在线| 色婷婷国产精品| 中文一区二区完整视频在线观看| 三级在线观看一区二区| 91免费国产在线| 国产精品视频看| 国产高清亚洲一区| 欧美刺激午夜性久久久久久久| 亚洲一区二区成人在线观看| 成人黄色大片在线观看| 久久日韩精品一区二区五区| 日本vs亚洲vs韩国一区三区| 欧美性猛片xxxx免费看久爱| 中文字幕中文字幕一区二区 | av电影一区二区| 中文字幕欧美区| 国产精品88av| 久久奇米777| 国产一区二区三区在线看麻豆| 日韩欧美国产一区二区三区| 日本网站在线观看一区二区三区| 欧美性xxxxxx少妇| 一区二区免费看| 欧美这里有精品| 亚洲高清免费观看高清完整版在线观看| 91婷婷韩国欧美一区二区| 中文字幕一区二区不卡 | 在线国产亚洲欧美| 亚洲另类在线制服丝袜| 欧美中文字幕不卡| 亚洲一二三四区不卡| 欧美性一二三区| 肉肉av福利一精品导航| 欧美老人xxxx18| 蜜臀av性久久久久蜜臀aⅴ流畅| 91精品综合久久久久久| 青椒成人免费视频| 精品福利一区二区三区| 国产.精品.日韩.另类.中文.在线.播放 | 亚洲精品一区二区三区99| 偷窥国产亚洲免费视频| 欧美日韩国产综合一区二区三区| 亚洲在线观看免费| 91精品国产综合久久福利| 捆绑紧缚一区二区三区视频| 精品国产免费人成电影在线观看四季| 精品午夜一区二区三区在线观看| 久久九九99视频| 99在线精品免费| 亚洲图片一区二区| 日韩午夜在线影院| 国产成人综合精品三级| 国产精品久99| 欧美久久久久中文字幕| 麻豆成人av在线| 国产精品麻豆欧美日韩ww| 91理论电影在线观看| 婷婷激情综合网| 久久精品一区八戒影视| 日本高清免费不卡视频| 蜜臂av日日欢夜夜爽一区| 欧美国产综合色视频| 欧美制服丝袜第一页| 激情六月婷婷综合| 亚洲欧洲一区二区在线播放| 欧美日韩国产影片| 国产一区二区在线免费观看| 亚洲美女屁股眼交| 日韩一二三区不卡| 成人蜜臀av电影| 偷拍自拍另类欧美| 中文在线免费一区三区高中清不卡| 欧美午夜精品一区| 国产精品一品视频| 亚洲国产精品天堂| 久久久久久久久伊人| 色94色欧美sute亚洲线路一ni| 久久精品国产一区二区三| 国产精品久久看| 日韩欧美高清一区| 91色|porny| 国产精品一区二区在线播放| 樱花草国产18久久久久| 精品国产一区二区三区av性色| 色8久久人人97超碰香蕉987| 国模大尺度一区二区三区| 亚洲一区二区视频| 中文字幕精品一区| 欧美一区二区日韩一区二区| 99久久99精品久久久久久| 久久精品国产精品亚洲综合| 亚洲一区二区三区四区在线| 国产欧美日韩在线| 精品粉嫩aⅴ一区二区三区四区 | 亚洲图片自拍偷拍| 国产欧美日韩三区| 精品欧美一区二区在线观看|