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

📄 x5043-moto.c

📁 motorola 8位单片机c语言编写的5043读写程序
💻 C
字号:
#define WREN  0x06                   /*写使能*/
#define WRDI  0x04                   /*写保护*/
#define WRSR  0x01                   /*写状态寄存器*/
#define RDSR  0x05                   /*读状态寄存器*/
#define WRITE 0x02                   /*写数据*/
#define READ  0x03                   /*读数据*/

//*******************************************
void Init25045(void)   
{
//	PortSPIWP=1;//5045的wp端置1,可写
	Writestate(0x03) ;			//1.4s
//	Writestate(0x13) ;		//600ms
	//Writestate(0x23) ;		//200ms
	//Writestate(0x33) ;		//disable
}
//*********************************************
void Writestate(byte data)
{
	PortSPICS=0;			//onchip
	Writebyte(0x06);		//enable write
	PortSPICS=1;			//offchip
	asm nop;
	asm nop;
	asm nop;
	PortSPICS=0;
	Writebyte(0x01);		//write state
	Writebyte(data);
	PortSPICS=1;	
	Delay1ms(20) ;
}


//********************************************************
void Writebyte(byte data)
{
	byte i;
	
	for(i=0;i<8;i++ )
	{
		PortSPISCK=0;

		if(BIT7&data)
		{
			PortSPISI=1;
			PortSPISI=1;
		}	
		else
		{
			PortSPISI=0;
			PortSPISI=0;
		}	
	//
		PortSPISCK=1; 
		data<<=1;
		asm nop;
	}
}
//
byte Readbyte(void)
{
	byte i,data=0;
	
	for(i=0;i<8;i++ )
	{
		PortSPISCK = 0 ; 
		data<<= 1 ;

		if ( PortSPISO )
			data|=BIT0;
		else 
			data&=0xfe; 
	
		PortSPISCK=1; 
	}
	return data;
}
    


void Writedata(word add,byte data)
{
	PortSPICS=0;		// ONCHIP
	Writebyte(0x06);	//enable write
	PortSPICS=1;		// OFFCHIP 
	asm nop;
	asm nop;
	asm nop;
	PortSPICS=0;
	if ((add>>8)==0)	//A8λ= 1?0
	{
		Writebyte(0x02);	//write 1 page
	}
	else
	{
		Writebyte(0x0A);	//write 2 page
	}
	Writebyte((byte)add);
	Writebyte(data);
	
	PortSPICS=1;	//OFFCHIP;

	Delay1ms(20);
}
/*--------读一个字节的数据-------------------------------------*/
byte Readdata(word add)
{	
	byte data;
	
	PortSPICS=0;			// ONCHIP
	asm nop;
	if((add>>8)==0)	//A8λ= 1?0
	{
		Writebyte(0x03);	//read 1 page
	}
	else
	{
		Writebyte(0x0B);	//read 2 page
	}
	asm nop;
	Writebyte((byte)add);
	asm nop;
															   
	data=Readbyte(); 	
	PortSPICS=1;			// OFFCHIP ;
	Delay1ms(20);
	return data;
}


//
void Resetwatchdog(void)
{
	__RESET_WATCHDOG();
	PortSPICS=0;
	asm nop;
	asm nop;
	PortSPICS=1;
}	

⌨️ 快捷键说明

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