新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC:讀寫24LCxx系列的EEPROM的實例C語言程序

        PIC:讀寫24LCxx系列的EEPROM的實例C語言程序

        作者: 時間:2011-05-06 來源:網絡 收藏

        //*
        //***********************************************
        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.104case.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語言相關文章:c語言教程



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 紫云| 邵阳县| 孟村| 泰和县| 广东省| 厦门市| 合作市| 北碚区| 二连浩特市| 肥东县| 乌兰浩特市| 湖口县| 德令哈市| 缙云县| 永福县| 涿州市| 郎溪县| 沅陵县| 合阳县| 秦安县| 黄陵县| 越西县| 巴塘县| 枣庄市| 五常市| 泰州市| 连南| 崇仁县| 中西区| 慈利县| 黎城县| 台江县| 上高县| 达日县| 桂林市| 汤原县| 福贡县| 浮山县| 汪清县| 武冈市| 开阳县|