导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]请教用过w29c040的高手

* 64124: [求助]请教用过w29c040的高手

   relaxoo 
relaxoo发表的帖子 

 [求助]请教用过w29c040的高手
我第一次用这种存储器,据说和at29c040兼容。
我试着只写入64k的空间,为什么写不进去呢?而且擦除也不行。不过读到可以,读出来的数据是FF和F7,不知道是不是正确的?哪位高手能不能帮我看一下。
#include   <aduc812.h>  
#include   <stdio.h>  
#include   <absacc.h>  
#define  uint    unsigned  int
#define  uchar   unsigned  char
#define  Flash_addr(a)  XBYTE[a] 

void delay(uint delay_count)
{
for(;delay_count>  0;delay_count--);
}

void Erase_Flash(void)
{
Flash_addr(0x5555)  = 0xaa;
Flash_addr(0x2aaa)  = 0x55;
Flash_addr(0x5555)  = 0x80;
Flash_addr(0x5555)  = 0xaa;
Flash_addr(0x2aaa)  = 0x55;
Flash_addr(0x5555)  = 0x10;
delay(1200);
}
void initial(void)       //串行通信的初始设置
{
IE=0x00;
SCON = 0xD0 ;                 // 8bit, noparity, 1stopbit
  TMOD = 0x20 ;                 // configure Timer1..
  TH1 = 0xFD ;                  // ..for 9600baud..
  PCON=0x00;
  TR1 = 1 ;                  
  TI=1;
  }
  main()
  {
    uint addr;
    initial();
 Erase_Flash();
 
//以下为把0xBB写入到存储器中
Flash_addr(0x5555)  =  0xaa;
Flash_addr(0x2aaa)  =  0x55;
Flash_addr(0x5555)  =  0xa0;

for(addr=0;addr  <0xFFFF;addr++){
  Flash_addr(addr)=0xBB;
  }
delay(1200);
for(addr=0;addr  <0xFFFF;addr++){
printf("data=%04BX,",Flash_addr(addr));
  printf("addr=%04X\n",addr);
  }
    while(1);
 }

发表时间:2004年10月11日10:06:46

  
回复该帖

本主题共有 6 帖,分页:>>>>>该主题的所有内容[6]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  64133.[详细]贴出原理图好看,单片机的调试还要看电路的,程序不一定有问题
摘要:贴出原理图好看,单片机的调试还要看电路的,程序不一定有问题......(58字)
- [lichuanfa][1285次] 2004年10月11日

  64144.[详细][贴图]原理图
摘要:其他部分没有画出。 aduc812单片机可以扩展16M,w29c040有19位地址线,中8位和高3位用锁存器锁存 原理图,这样设计有没有什么问题?[upload=bmp]UploadFile/20041011120474......(179字)
- [relaxoo][1328次] 2004年10月11日

  64376.[详细]#CE要接地線vss要接地線#OE接至/RDWE接至/WR另外要搭配源程序..
摘要:#CE要接地線 vss要接地線 #OE接至/RD WE接至/WR 另外要搭配源程序 ......(67字)
- [guest][1394次] 2004年10月14日

[上一篇帖子]:PVElite CAESARPVElite CAESAR我有,需要可与我联系:c
[下一篇帖子]:[推荐]LM317