• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC:讀寫(xiě)24LCxx系列的EEPROM的實(shí)例C語(yǔ)言程序

    PIC:讀寫(xiě)24LCxx系列的EEPROM的實(shí)例C語(yǔ)言程序

    作者: 時(shí)間:2011-05-06 來(lái)源:網(wǎng)絡(luò) 收藏

    //*
    //***********************************************
    void EE_SEQU_Read(unsigned char ctrl,unsigned char addr,unsigned char length,unsigned char *dptr)
    {
    IdleI2C(); // ensure module is idle
    StartI2C(); // Start condition
    I2C_Done(); // Wait Start condition completed

    本文引用地址:http://www.czjhyjcfj.com/article/172809.htm

    WriteI2C(ctrl); // Write Control to
    while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received
    I2C_Done(); // Clear SSPIF flag

    WriteI2C(addr); // Write Address to
    while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received
    I2C_Done(); // Clear SSPIF flag

    RestartI2C(); // initiate Restart condition
    I2C_Done();

    WriteI2C(ctrl+1); // Write Control to
    while(SSPCON2bits.ACKSTAT); // Test for ACK condition, if received
    I2C_Done(); // Clear SSPIF flag

    while (length!=0)
    {
    *dptr=ReadI2C(); // Enable I2C Receiver Store EEPROM data to Point buffer
    I2C_Done();
    dptr++;
    length--;

    if (length==0) NotAckI2C();
    else AckI2C(); // Continue read next data, send a acknowledge to EEPROM

    I2C_Done();
    }

    StopI2C(); // send STOP condition
    I2C_Done(); // wait until stop condition is over
    }

    //***********************************************
    //* Check I2C action that is completed *
    //***********************************************
    void I2C_Done(void)
    {
    while (!PIR1bits.SSPIF); // Completed the action when the SSPIF is Hi.
    PIR1bits.SSPIF=0; // Clear SSPIF
    }

    //************************************************
    //* Initial I2C Master Mode with 7 bits Address *
    //* Clock Speed : 100KHz @4MHz *
    //************************************************
    void Initialize_I2C_Master(void)
    {
    OpenI2C(MASTER,SLEW_ON);
    SSPADD= 9;
    }

    c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



    上一頁(yè) 1 2 3 下一頁(yè)

    評(píng)論


    相關(guān)推薦

    技術(shù)專(zhuān)區(qū)

    關(guān)閉
    主站蜘蛛池模板: 太湖县| 黄石市| 德惠市| 阳泉市| 公安县| 理塘县| 岑溪市| 白银市| 斗六市| 揭东县| 光山县| 越西县| 清河县| 鄂伦春自治旗| 九台市| 岢岚县| 沁水县| 武穴市| 肥东县| 河北区| 龙岩市| 邢台县| 墨竹工卡县| 青州市| 明溪县| 徐水县| 郓城县| 铁岭市| 苗栗县| 淮阳县| 绥宁县| 夏津县| 波密县| 富顺县| 高密市| 宜兴市| 德阳市| 策勒县| 宜阳县| 永康市| 彭山县|