新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 明光市| 湘阴县| 松溪县| 隆回县| 加查县| 久治县| 湄潭县| 苗栗县| 呼和浩特市| 保德县| 宿松县| 垦利县| 龙南县| 扶沟县| 衡南县| 唐河县| 宿松县| 大同县| 仁布县| 自治县| 宁强县| 忻城县| 金门县| 读书| 华坪县| 靖安县| 宣武区| 冷水江市| 徐州市| 万盛区| 黔西| 三门峡市| 乐都县| 乌拉特后旗| 同德县| 永年县| 宁阳县| 武穴市| 岳阳县| 迭部县| 湟源县|