⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash_rw.c

📁 基于at89c51单片机的mp3 flash芯片读写实验代码
💻 C
字号:
#include "AT89C51SND1_REG.H"
#include "Flash_RW.H"
#include "MCU_UART.H"


void Flash_Reset()
{ 
	K9F_FUN = COMMAND;                     
	K9F5608 = 0xff;	      
	K9F_FUN = INACTIVE;
}

void ReadFlashID(unsigned char *MID,unsigned char *DID)
{
	K9F_FUN = COMMAND;
	K9F5608 = 0x90;
	K9F_FUN = ADDRESS;
    K9F5608 = 0;
	K9F_FUN = D_DATA;
	*MID = K9F5608; 
	*DID = K9F5608;
	K9F_FUN = INACTIVE;
 }


void ReadPage(unsigned int BlockPage,unsigned char *PageBuf)
{
    unsigned int data i;

	K9F_FUN = COMMAND;
	K9F5608 = 0x00;
	K9F_FUN = ADDRESS;
    K9F5608 = 0;				//A0-A7
    K9F5608 = BlockPage; 	    //A9-A16
	K9F5608 = BlockPage >> 8;   //A17-A24 
	K9F_FUN = D_DATA;

	i = 512;
    while(!(K9F_FUN & RB));

	while(i--) 
		*PageBuf++ = K9F5608;
	K9F_FUN = INACTIVE;
 }



void BlockErase(unsigned int BlockPage)
{
    K9F_FUN = COMMAND;
    K9F5608 = 0x60;
    K9F_FUN = ADDRESS;
    K9F5608 = BlockPage;
	K9F5608 = BlockPage >> 8;
    K9F_FUN = COMMAND;						  
    K9F5608 = 0xd0;
    K9F_FUN = D_DATA;
    while(!(K9F_FUN & RB));
	K9F_FUN = INACTIVE;
}

void WritePage(unsigned int BlockPage,unsigned char *PageBuf)
{
	unsigned int data i;
	K9F_FUN = COMMAND;
	K9F5608 = 0x80;
	K9F_FUN = ADDRESS;
	K9F5608 = 0;		      //A0-A7	 
	K9F5608 = BlockPage;      //A9-A16  
	K9F5608 = BlockPage >> 8; //A17-A24
	K9F_FUN = D_DATA;
	i=512;
	while(i--)
		K9F5608 = *PageBuf++;
	K9F_FUN = COMMAND;
	K9F5608 = 0x10;
	K9F_FUN = D_DATA;
    while(!(K9F_FUN & RB));
	K9F_FUN = INACTIVE;
}

void CopyBack(unsigned int S_BlockPage,unsigned int D_BlockPage)
{
    K9F_FUN = COMMAND;
    K9F5608 = 0x00;
    K9F_FUN = ADDRESS;
    K9F5608 = 0;					 //A0-A7
    K9F5608 = S_BlockPage; 	         //A9-A16
    K9F5608 = S_BlockPage >> 8; 	 //A17-A24 
    K9F_FUN = D_DATA;
    while(!(K9F_FUN & RB)); 
  
    K9F_FUN = COMMAND;
    K9F5608 = 0x8a;
    K9F_FUN = ADDRESS;
    K9F5608 = 0;					 //A0-A7
    K9F5608 = D_BlockPage;           //A9-A16
    K9F5608 = D_BlockPage >> 8; 	 //A17-A24 
    K9F_FUN = D_DATA;
    while(!(K9F_FUN & RB));
	K9F_FUN = INACTIVE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -