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

📄 24lc65.c

📁 该程序用来测试89C51与IDE硬盘的接口
💻 C
字号:
/*---------------------------------------------------------------------------
调用方式:void Write24LC65(uint address,uchar ddata)  ﹫2001/03/23
函数说明:在指定地址address(address<0x2000)写入一个字节ddata
-----------------------------------------------------------------------------*/
void Write24LC65(uint address,uchar ddata)
{
           EA=0;
    SCL=1;
    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Tsu:STA
    SDA=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
    SCL=0;             //START
    write_8bit(0xae);   //写从地址
    ACK();
    write_8bit(address>>8);
    ACK();
    write_8bit(address&0x00FF);
    ACK();
    write_8bit(ddata);
    ACK();
    SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_
();SDA=1;   //STOP
    _nop_();_nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();_nop_();
           EA=1;
    delay(10);
}

/*------------------------------------------------------------------------------
调用方式:uchar Read24LC65(uint address)  ﹫2001/03/23
函数说明:读取24LC65指定地址address(address<0x2000)的数据。
------------------------------------------------------------------------------*/
uchar Read24LC65(uint address)
{
    uchar ddata=0;
    uchar i=8;
           EA=0;
    SDA=0;_nop_();SCL=0;        //START
    write_8bit(0xae);   //写从地址
    ACK();
    write_8bit(address>>8);
    ACK();
    write_8bit(address&0x00FF);
    ACK();
    //以上是一个“哑”写操作,相当于设置当前地址
    
    SCL=1;
    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Tsu:STA
    SDA=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
    SCL=0;             //START
    write_8bit(0xaf);   //写从地址,置为读模式
    ACK();
    while (i--)
    {
        SDA=1;
        ddata<<=1;
        SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=1;
        if (SDA) ddata|=0x01;
    }
    
    SCL=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
    SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_
();SDA=1;   //STOP
    _nop_();_nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();_nop_();
           EA=1;
    delay(5);
    return ddata;
}

⌨️ 快捷键说明

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