一个X25045的C51读写程序

电子说

1.3w人已加入

描述

  * x25045的读写程序 用c51写的 */

  #define CS P2.7 /*单片机p2.7为片选 可以改为你的实际引脚 */

  #define SO P2.6 /*数据输出 */

  #define SK P2.5 /* 时钟 */

  #define SI P2.4 /* 数据输入*/

  /* here is the instrution of x25045*/

  #define WREN 0x06

  #define WRDI 0x04

  #define RDSR 0x05

  #define WRSR 0x01

  #define READ0 0x03

  #define READ1 0x0b

  #define WRITE0 0x02

  #define WRITE1 0x0a

  unsigned char Read8()

  {

  bit bData;

  unsigned char cLoop;

  unsigned char cData;

  for(cLoop=0;cLoop《8;cLoop++)

  {

  SK=1;

  SK=0;

  bData=SO;

  cData《《=1;

  if(bData)

  {

  cData|=0x01;

  }

  }

  return cData;

  }

  void Write8(unsigned char cData)

  {

  unsigned char cLoop;

  for(cLoop=0;cLoop《8;cLoop++)

  {

  if((cData&0x80)==0)

  {

  SI=0;

  }

  else

  {

  SI=1;

  }

  SK=0;

  SK=1;

  cData《《=1;

  }

  }

  unsigned char ReadSR()

  {

  unsigned char cData;

  CS=0;

  Write8(RDSR);

  cData=Read8();

  CS=1;

  return cData;

  }

  unsigned char WriteSR(unsigned char cData)

  {

  unsigned char cTemp;

  cTemp=ReadSR();

  if((cTemp&0x01)==1)

  return 0;

  CS=0;

  Write8(WREN);

  CS=1;

  CS=0;

  Write8(WRSR);

  Write8(cData);

  CS=1;

  return 1;

  }

  void Write1B(unsigned char cData,unsigned char cAddress,bit bRegion)

  /* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页 */

  {

  while((ReadSR()&0x01)==1)

  {

  }

  CS=0;

  Write8(WREN);

  CS=1;

  CS=0;

  if(bRegion==0)

  {

  Write8(WRITE0);

  }

  else

  {

  Write8(WRITE1);

  }

  Write8(cAddress);

  Write8(cData);

  SK=0;

  CS=1;

  }

  unsigned char Read1B(unsigned char cAddress,bit bRegion)

  /* 读入一个字节,cAddress为读入地址,bRegion为页 */

  {

  unsigned char cData;

  while((ReadSR()&0x01)==1)

  {

  }

  CS=0;

  if(bRegion==0)

  {

  Write8(READ0);

  }

  else

  {

  Write8(READ1);

  }

  Write8(cAddress);

  cData=Read8();

  CS=1;

  return cData;

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分