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

📄 x5045.c

📁 X5045读写程序
💻 C
字号:
#include   "X5045CMD.H"
#include   <INTRINS.H>

typedef unsigned char uchar;
typedef unsigned int uint;

#define WREN 0x06 //写允许
#define READ 0x03 //读书据
#define WRITE 0x02 //写数据

sbit DI5045=P0^3;
sbit SCK5045=P0^2;
sbit DO5045=P0^1;
sbit CS5045=P1^5;

void X5045OutData(unsigned char ddata)
{     unsigned char i;     
	  for(i=8;i>0;i--)
	    {
		  SCK5045=0;
          _nop_();
		  _nop_();
           if(ddata&0x80)DI5045=1;
		   else DI5045=0;
		   ddata=ddata<<1;
		  _nop_();
		  _nop_();
		  _nop_();
          SCK5045=1;
		}
}
unsigned char X5045InData(void)
{    unsigned char ddata=0,i;
     for(i=8;i>0;i--)
	    {
		  SCK5045=1;
		  _nop_();
		  _nop_();
		  _nop_();
          SCK5045=0;
 		  _nop_(); _nop_();
		  ddata=ddata<<1;
		  if(DO5045) ddata|=0x01;
		  _nop_();
          _nop_();
    	}
	 return ddata;
}
unsigned char X5045_ReadStatue(void)
{    unsigned char ddata;
     SCK5045=0;
     _nop_();
	 CS5045=0;
	 _nop_();
	 _nop_();
     X5045OutData(RDSR_INST) ;
     DO5045=1;
     _nop_();
     ddata=X5045InData() ;
     SCK5045=0;
 	 _nop_();
	 _nop_();
	 CS5045=1;
	 return ddata;
}
/*
void X5045_WriteStatue(unsigned char cmd)
{
     SCK5045=0; 
	 _nop_();
	 CS5045=0;
	 _nop_();
	 _nop_();
     X5045OutData(WRSR_INST);
     X5045OutData(cmd);
     SCK5045=0;
 	 _nop_();
	 _nop_();
	 CS5045=1;
}
void X5045_WriteDisable(void)
{
     SCK5045=0; 
	 _nop_();
	 CS5045=0;
	 _nop_();
	 _nop_();
     X5045OutData(WRDI_INST);
     SCK5045=0;
 	 _nop_();
	 _nop_();
	 CS5045=1;
}
*/ 
void X5045_WriteEnable(void)
{
     SCK5045=0; 
	 _nop_();
	 CS5045=0;
	 _nop_();
	 _nop_();
     X5045OutData(WREN_INST);
     SCK5045=0; 
	 _nop_();
	 _nop_();
	 CS5045=1;
} 
unsigned char X5045ByteRead(unsigned char addr)
{ 
	 unsigned char ddata;
     SCK5045=0; 
	 _nop_();
	 CS5045=0;
	 _nop_();
	 _nop_();
     X5045OutData(READ_INST) ;
     X5045OutData(addr) ;
	 DO5045=1;
	 _nop_();
     ddata=X5045InData() ;
     SCK5045=0; 
	 _nop_();
	 _nop_();
	 CS5045=1;
	 return ddata;
}
void X5045_Write(unsigned char addr,unsigned char ddata) //注意:写之前首先要调用写允许(上面已经给出)
{     
     EA = 0;                                                   //然后判断是否正忙(调用状态读函数)
     SCK5045=0;                                          //最后调用此函数
	 _nop_();
	 CS5045=0;
	 _nop_();
	 _nop_();
     X5045OutData(WRITE_INST);
     X5045OutData(addr) ;
     X5045OutData(ddata);
     SCK5045=0; 
	 _nop_();
	 _nop_();
	 CS5045=1;
	 EA = 1;
}


⌨️ 快捷键说明

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