SST39VF040 为何无法擦除。读取正常,写也有点问题。

2020-02-05 09:15发布

管脚定义如下。用的STC11F16XE
P0 接地址低8位 同时P0 也接数据口。

P2口接的地址高8位。
sfr DataOut=0x80;       //定义P0口接SST39VF040的数据线
sfr Address7_0=0x80;    //定义P0口接SST39VF040的地址线 A0…A7
sfr Address15_8=0xa0;   //定义P2口接SST39VF040的地址线A8…A15
sbit Address16=P1^0;    //定义P3.2接SST39VF040的地址线A16
sbit Address17=P1^1;    //定义P3.3接SST39VF040的地址线A17
sbit Address18=P1^2;    //定义P3.4接SST39VF040的地址线A18
sbit Sst39vf040_Ce=P3^5;        //定义P3.5接SST39VF040的片选线线CE
sbit Sst39vf040_We=P3^6;        //定义P3.6接SST39VF040的写使能线WE
sbit Sst39vf040_Oe=P3^7;        //定义P3.7接SST39VF040的读使能线OE
sbit ALE =P4^5;


void Chip_Erase(void)
{
      Sst39vf040_Ce=1;
      Sst39vf040_Oe=0;
      Sst39vf040_We=1;
      Address18=0;
      Address17=0;
      Address16=0;
                        ALE=1;
      Address7_0=0x55;
                        ALE=0;
      Address15_8=0x55;
      Sst39vf040_Ce=0;
      Sst39vf040_Oe=1;
      Sst39vf040_We=0;
      DataOut=0xaa;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0xaa;
                        ALE=0;
      Address15_8=0x2a;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x55;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0x55;
                        ALE=0;
      Address15_8=0x55;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x80;
      Delay1us(20);
      Sst39vf040_We=1;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0xaa;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0xaa;
                        ALE=0;
      Address15_8=0x2a;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x55;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0x55;
                        ALE=0;
      Address15_8=0x55;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x10;
      Delay1us(20);
      Sst39vf040_We=1;
      while(!Wait_Data_Pulling());
}

这个擦除程序有问题么?为何擦除不了。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。