求大神指导。。。。写不进去啊。。。附程序

[复制链接]
1412|8
 楼主| chicheng10 发表于 2014-11-18 13:47 来自手机 | 显示全部楼层 |阅读模式
写CYPRESS的疑问,芯片型号为256-Kbit(32K x 8)NVSRAM。
我用AT89C51单片机往芯片写数,因为需要,我们把芯片的地址位A0~A6(A0~A4为行,A5~A6为列,其他没用)用拨码开关相连,控制地址位。sbit OE=P3^7;// 读使能,sbit CE=P3^5;//芯片使能,sbit WE=P3^6;//写使能,利用以下程序对芯片写数据,但怎么也不行,望大神求助!!!写的时候先把地址拨好了。。。。。。。。。。。



#include <REGX51.H>
#include "intrins.h"
#define   uint  unsigned int
void delay(uint xms);

sbit OE=P3^7;// 读使能
sbit CE=P3^5;//芯片使能
sbit WE=P3^6;//写使能

void main()
{
   CE=1;
   OE=1;
   WE=1;
   delay(10);
    while(1)
  {
   P0=0X00;
   OE=1;
   delay(1);
   CE=0;
   delay(1);
   WE=0;
   delay(1);
   WE=1;
   delay(1);
   CE=1;
   delay(1);
   P0=0XFF;
   while(1);
  }
}

void delay(uint xms)
{
   uint i,j;
for(i=xms;i>0;i--)
     for(j=110;j>0;j--);
}


 楼主| chicheng10 发表于 2014-11-18 13:52 来自手机 | 显示全部楼层
数据通过P0口送进去的
 楼主| chicheng10 发表于 2014-11-18 16:20 来自手机 | 显示全部楼层
没有大神吗
 楼主| chicheng10 发表于 2014-11-19 18:51 来自手机 | 显示全部楼层
目前。。每次刚写进去能够读出来。。但过一会就变成0101或者1010只用了四位数据位。。而且断电在上电也会变成0101好或者1010。。就比如我写1100,,断开we后立即测数据位出来的是1100..但一会以后就不对了变成1010了。。求大神指导
 楼主| chicheng10 发表于 2014-11-20 11:22 来自手机 | 显示全部楼层
现在能写进去。。读出来。。但掉电以后还是不行。。再上电什么都没了
 楼主| chicheng10 发表于 2014-11-20 13:32 来自手机 | 显示全部楼层
还有一个问题。。就是读出来的数据不稳定。。比如测量某个脚是高电平。。但这个电瓶会变动。。会往下降
 楼主| chicheng10 发表于 2014-11-22 14:03 来自手机 | 显示全部楼层
问题初步解决。。。
 楼主| chicheng10 发表于 2014-11-22 15:30 来自手机 | 显示全部楼层
问题解决了。。看来是自问自答了。。。。。
 楼主| chicheng10 发表于 2014-12-14 11:10 | 显示全部楼层
亲,请教一个问题,,我现在也在用这个存储器,能读能写,但读的时候过一会读出来的会变动,,复位一下又正常了、
求教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部