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

📄 x25045.h

📁 是TCPIP程序
💻 H
字号:
//#include <89c52.h>
#ifndef _X25045_H_
#define _X25045_H_
#define X25WREN 0x06
#define X25WRDI 0x04
#define X25RDSR 0x05
#define X25WRSR 0x01
#define X25READL 0x03
#define X25READH 0x0b
#define X25WRITEL 0x02
#define X25WRITEH 0x0a

#define NODOG    3
#define T1_4s    0
#define T0_6s    1
#define T0_2s    2
#define RST_DOG  4

unsigned char bdata X25_bx;

sbit X25_bx7=X25_bx^7;
sbit X25_bx0=X25_bx^0;

void x25cs(unsigned char v);
void X25out(void);
void X25in(void);
void X25Busy(void);
void watchdog(unsigned char Action);
unsigned char X25045(unsigned char Command,unsigned char Address,unsigned char Dataa);
void X25writeable(unsigned char Action);

void writebyte(unsigned char dta,unsigned char addr);
unsigned char readbyte(unsigned char addr);

void writebyte(unsigned char dta,unsigned char addr)
 {
  X25045(X25WRITEL,addr,dta);
 }

unsigned char readbyte(unsigned char addr)
{
 uchar temp;
 temp=X25045(X25READL,addr,0);
 return(temp);
}

void x25cs(uchar v)
{
 if(v)
 {
  x25045cs=1;
  x25045cs=1;
 }
 else
 {
  x25045cs=0;
  x25045cs=0;
 }
}


void X25out(void)
{
   unsigned char j;
   unsigned char i;
          for (j=0;j!=8;j++)
          {
          X25045Si=X25_bx7;
          X25_bx=X25_bx<<1;
          for(i=0;i<8;i++)X25045Sck=1;
          for(i=0;i<8;i++)X25045Sck=0;
          }
}
void X25in(void)
{  unsigned char j;
   unsigned char i;
          for (j=0;j!=8;j++)
          {
            for(i=0;i<8;i++)X25045Sck=1;
            X25_bx=X25_bx<<1;
            X25_bx0=X25045So;
            for(i=0;i<8;i++)X25045Sck=0;
          }
}
void X25Busy(void)
{
 uchar a=0xff;
 while((a&0x01)==1)
 {
      /*RDSR  0000 0101*/
          X25045Sck=0;
          x25cs(0);
          X25_bx=0x05;
          X25out();
          X25_bx=0;
          X25in();
          x25cs(1);
          a=X25_bx;
 }
}

void X25writeable(unsigned char Action)
{
          X25045Sck=0;
          x25cs(0);
          X25_bx=Action;
          X25out();
          x25cs(1);

}
uchar X25045(unsigned char Command,unsigned char Address,unsigned char Dataa)
 {
   unsigned char j;
   unsigned char Result=0;

  switch(Command)
  {
  case 0x06: /*WREN  0000 0110*/
  case 0x04: /*WRDI  0000 0100*/
             X25writeable(Command);
             break;
  case 0x05: /*RDSR  0000 0101*/
          X25045Sck=0;
          x25cs(0);
          X25_bx=Command;
          X25out();
          X25_bx=Dataa;
          X25in();
          x25cs(1);
          Result=X25_bx;
          break;
  case 0x01: /*WRSR  0000 0001*/
          //dly1ms(5);//
          X25Busy();
          X25writeable(X25WREN);
          X25045Sck=0;
          x25cs(0);

          X25_bx=Command;
          X25out();
          X25_bx=Dataa;
          X25out();
          x25cs(1);
          X25writeable(X25WRDI);
          //dly1ms(5);//
          X25Busy();
          break;
  case 0x03: /*READ  0000 0011  lowpage*/
  case 0x0b: /*READ  0000 1011   highpage*/
          X25045Sck=0;
          x25cs(0);

          X25_bx=Command;
          X25out();

          X25_bx=Address;
          X25out();

          X25_bx=Dataa;
          X25in();
          x25cs(1);
          Result=X25_bx;
          break;

  case 0x02: /*WRITE 0000 0010   lowpage*/
  case 0x0a: /*WRITE 0000 1010   highpage*/
          //dly1ms(5); //
          X25Busy();
          X25writeable(X25WREN);
          X25045Sck=0;
          x25cs(0);

          X25_bx=Command;
          X25out();
          X25_bx=Address;
          X25out();

          X25_bx=Dataa;
          X25out();
          x25cs(1);
          X25writeable(X25WRDI);
          //dly1ms(10);//
            X25Busy();
          break;
  defalut:break;
  }
          return(Result);
 }


void watchdog(unsigned char Action)
{

  switch(Action)
   {
    case 0:   //1.4s
           X25045(X25WRSR,0,0);
           break;
    case 1:   //0.6s
           X25045(X25WRSR,0,0x10);
           break;
    case 2:   //0.2s
           X25045(X25WRSR,0,0x20);
           break;
    case 3:   //No dog
           X25045(X25WRSR,0,0x30);
           break;
    case 4:
           x25cs(0);
           x25cs(1);

           break;
   }
}

#endif

⌨️ 快捷键说明

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