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

📄 x25045用法完全公开.txt

📁 c51源程序总结
💻 TXT
字号:
C51编程:X25045用法完全公开! ( 2 ) [ylx] [76次] 01-9-4 下午 11:31:39
/******************************************************************************
向 X25045 写1个字节
void    Cwrite_EEPROM( uint addr, uchar n )
输入:    addr 地址范围 0x000-0x1FF [512B]
    n 数据(uchar,char)
******************************************************************************/
void    Cwrite_EEPROM( uint addr, uchar n )
{
uchar    i;

/* 访问看门狗 */
    SCS = 0;    /* 清看门狗 */
    SCS = 1;    /* 恢复看门狗 */

    if ( Cread_EEPROM( addr ) == n ) return;
    
    i = 0x02;    /* 0000 (A8)010 WRITE */
    if ( ( addr & 0x0100 ) != 0 ) i = ( i | 0x08 ); 

    wren_X25045(); 

    SCLK = 0;
    SCS = 0;
    sent_X25045( i );         /* WRITE => X25045 */
    sent_X25045( (uchar)(addr) );    /* addr => X25045 */
    sent_X25045( n );         /* n => X25045 */
    SCLK = 0;
    SCS = 1;
    wrok_X25045();
    wrdi_X25045(); 
}

/******************************************************************************
向 X25045写数据 整型数(2B)
void    Iwrite_EEPROM( uint addr, uint n )
输入:    addr 地址范围0x000-0x1FF [512B]
    n = 写入数值(uint, int)    
******************************************************************************/
void    Iwrite_EEPROM( uint addr, uint n )
{
    Cwrite_EEPROM( addr, (uchar)(n>>8) );
    Cwrite_EEPROM( addr+1, (uchar)(n & 0x00FF) );
}

/******************************************************************************
从 X25645 读1个字节
uchar    Cread_EEPROM( uint addr )
输入:    addr 地址范围 0x000-0x1FF [512B]
输出:    数据 (uchar,char)
******************************************************************************/
uchar    Cread_EEPROM( uint addr )
{
uchar    n;
/* 访问看门狗 */
    SCS = 0;    /* 清看门狗 */
    SCS = 1;    /* 恢复看门狗 */

    n = 0x03;    /* 0000 (A8)011 READ */
    if ( ( addr & 0x0100 ) != 0 ) n = ( n | 0x08 ); 

    SCLK = 0;
    SCS = 0;
    sent_X25045( n );         /* READ => X25045 */
    sent_X25045( (uchar)(addr) );    /* addr => X25045 */
    n = get_X25045( );         /* X25045 => n */
    SCLK = 0;
    SCS = 1;

    return( n );
}

/******************************************************************************
从 X25045 读数据 整型(2B)
uint     Iread_EEPROM( uint addr )
输入:    addr 地址范围0x000-0x1FF [512B]
输出:    数值(uint,int)
******************************************************************************/
uint     Iread_EEPROM( uint addr )
{
return( ( (uint)( Cread_EEPROM( addr ) )<<8 ) | Cread_EEPROM( addr+1 ) );
}



 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2001 

⌨️ 快捷键说明

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