打印

请搞过X5045的人进来看下,为什么我写字节就是写不进去

[复制链接]
1549|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
会流泪的鱼|  楼主 | 2007-4-28 12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我试过了写寄存器状态没问题,就是写字节写不进去
试了一个星期了就是真的是没办法了!!!!


  //------------------------------------------------
    //***********X5045读写子程序*******************
    //------------------------------------------------


    //***********************************************

    void wr5045(uchar x,uchar address)     //写单字节数据函数
    {
     wren();
          SCP=0;
     CS_5045=0;
     byteout_5045(0x02);   //写使能函数
     byteout_5045(address);
     byteout_5045(x);
     SCP=0;
     CS_5045=1;
     wip_chk();            //等待写完函数
    }

    //************************************************



    //***********************************************

    uchar rd5045(uchar data address)     //读单字节数据函数
    {
     uchar data    x;
     SCP=0;
     CS_5045=0;
     byteout_5045(0X03);       //读使能函数
     byteout_5045(address);
     x=bytein_5045();
     SCP=0;
     CS_5045=1;
     return x;
    }

    //************************************************



    //*************************************************

    void byteout_5045(uchar x)          //写单字节数据函数
     {
      uchar i;
      for(i=0;i<8;i++)
      {
       SCP=0;
       SISO=x&0x80;
       

       x=x<<1;
       SCP=1;
      }
       SISO=0;
     }

    //*************************************************




    //************************************************

    void wip_chk(void)                //等待写完函数
    {
     uchar data dat,i;

     for(i=0;i<50;i++)
     {
      dat=rdsr();
      if((dat&0x01)==0)
      i=50;
     }
    }

    //************************************************




    //************************************************

    uchar rdsr(void)                    //读寄存器状态函数
    {
     uchar data dat;
     SCP=0;
     CS_5045=0;
     byteout_5045(0x05);  
     dat=bytein_5045();
     SCP=0;
     CS_5045=1;
     return dat;
    }

    //************************************************




    //************************************************

    uchar bytein_5045(void)                //读一字节数据函数
    {
     uchar data i,x=0;
     for(i=0;i<8;i++)
     {
      SISO=1;
      SCP=1;
      SCP=0;
      if(SISO==1)
      {
       x=x+x+1;
      }
       else
       {
           x<<=1;
       }
     }
     return x;
    }

    //************************************************




    //**********************************************

    void wrsr(uchar x)       //X5045状态寄存器写入程序 
    {
     wren();               //写允许函数
     SCP=0;
     CS_5045=0;
     byteout_5045(0x01);   //写状态寄存器指令
     byteout_5045(x); 
     SCP=0;
     CS_5045=1;
     wip_chk();            //等待写完函数 
    }
    //************************************************

    //**************************************************

    void wrdi(void)             //写禁止函数
    {
     SCP=0;
     CS_5045=0;
     byteout_5045(0x04);
     SCP=0;
     CS_5045=1;
    }

    //**************************************************


    //*************************************************

    void wren(void)             //写允许函数
    {
     SCP=0;
     CS_5045=0;
     byteout_5045(0x06);
     SCP=0;
     CS_5045=1;
    }

    //*************************************************

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

34

帖子

1

粉丝