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

📄 x5045.txt

📁 x5045是一个带串行E2PROM的CPU监控芯片
💻 TXT
字号:
#include <REG52.H>
#include <INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
#define nop() _nop_();_nop_();
void dely(uint y);
//-----------x25045指令-----------------//
#define WREN 0x06 //写允许
#define WRDI 0x04 //写禁止
#define RDSR 0x05 //读状态寄存器
#define WRSR 0x01 //写状态寄存器
#define READ 0x03 //读书据
#define WRITE 0x02 //写数据
//-----------SPI通讯接口-----------------//
sbit SI=P1^7;
sbit SCK=P1^6;
sbit SO=P1^5;
sbit CS=P1^4;
//--------------写一字节---------------
void write_byte(uchar mdata)
{
   uchar i;
   SCK=0;
   nop();
   for(i=0;i<8;i++)
   {
      if(mdata & 0x80) SI=1;
      else SI=0;
      SCK=1;
      mdata=mdata<<1;
      SCK=0;
      nop();
   }
}
//-----------读一字节------------------
uchar read_byte(void)
{
     uchar i,result;
     result=0;
     for(i=0;i<8;i++)
     {
        SCK=1;
        result=result<<1;
        if(SO) result|=0X01;
        SCK=0;
        nop();
     }
     return(result);
}

//----------------清看门狗----------外部调用-----
void clr_wchdog(void)
{
     CS=0;
     _nop_();
     CS=1;
}
//----------------写状态寄存器-----外部调用------
void wreg_5045(uchar mcode)
{
    CS=0;
    write_byte(WREN);
    CS=1;
    nop();
    CS=0;
    write_byte(WRSR);
    write_byte(mcode);
    nop();
    CS=1;
    dely(10);
}
//-----------读EEPROM----外部调用----------------
uchar r5045(uint address)
{
    uchar result;
    CS=0;
    nop();
    write_byte((char)(address>255 ? (0x08|READ): READ)); //是否翻页
    write_byte((char)(address & 0x00ff));
    result=read_byte();
    nop();
    CS=1;
    return(result);
    dely(20);                  //此处延时根据实际情况,如果不延时,可能会不正常

}
//-----------写EEPROM-----外部调用-------------
void w5045(uint address,uchar udata)
{
   CS=0;
   write_byte(WREN);
   CS=1;
   nop();
   CS=0;
   write_byte((uchar)(address>255 ? (0x08|WRITE): WRITE));
   write_byte((uchar)(address & 0x00ff));
   write_byte(udata);
   nop();
   CS=1;
   dely(20);                //此处延时根据实际情况,如果不延时,可能会不正常

}

⌨️ 快捷键说明

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