中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        I2C串行總線的操作程序

        作者: 時(shí)間:2012-08-15 來源:網(wǎng)絡(luò) 收藏
        起始信號(時(shí)鐘線為高,數(shù)據(jù)線由高變低):

        void AT24C04_Start()

        {

        SDA = 1; //拉高數(shù)據(jù)線

        SCL = 1; //拉高時(shí)鐘線

        Delay5us(); //延時(shí)

        SDA = 0; //產(chǎn)生下降沿

        Delay5us(); //延時(shí)

        SCL = 0; //拉低時(shí)鐘線

        }

        結(jié)束信號:(時(shí)鐘線為高,數(shù)據(jù)線由低變高)

        void AT24C04_Stop()

        {

        SDA = 0; //拉低數(shù)據(jù)線

        SCL = 1; //拉高時(shí)鐘線

        Delay5us(); //延時(shí)

        SDA = 1; //產(chǎn)生上升沿

        Delay5us(); //延時(shí)

        }

        字節(jié)傳輸:(每個字節(jié)為8位,一個字節(jié)帶一個相應(yīng)位)

        發(fā)送數(shù)據(jù):

        void AT24C04_SendByte(BYTE dat)

        {

        BYTE i;



        for (i=0; i8; i++) //8位計(jì)數(shù)器

        {

        dat = 1; //移出數(shù)據(jù)的最高位

        SDA = CY; //送數(shù)據(jù)口

        SCL = 1; //拉高時(shí)鐘線

        Delay5us(); //延時(shí)

        SCL = 0; //拉低時(shí)鐘線

        Delay5us(); //延時(shí)

        }

        AT24C04_RecvACK();

        }

        接收數(shù)據(jù):

        BYTE AT24C04_RecvByte()

        {

        BYTE i;

        BYTE dat = 0;



        SDA = 1; //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù)

        for (i=0; i8; i++) //8位計(jì)數(shù)器

        {

        dat = 1;

        SCL = 1; //拉高時(shí)鐘線

        Delay5us(); //延時(shí)

        dat |= SDA; //讀數(shù)據(jù)

        SCL = 0; //拉低時(shí)鐘線

        Delay5us(); //延時(shí)

        }



        return dat;

        }

        數(shù)據(jù)響應(yīng):

        每次數(shù)據(jù)傳輸成功后,接收器件發(fā)送一個應(yīng)答信號,當(dāng)?shù)诰艂€信號產(chǎn)生是,產(chǎn)生應(yīng)答信號的器件將SDA拉低。

        接收起始條件和從地址后,應(yīng)答,選擇讀寫操作。

        寫操作,每接收一個字節(jié),24c02發(fā)送一個應(yīng)答信號。

        讀操作,發(fā)送一字節(jié)后釋放總線,等待應(yīng)答信號。接收到應(yīng)答信號繼續(xù)傳輸數(shù)據(jù),接收到非應(yīng)答信號,等待接收結(jié)束信號。

        讀數(shù)據(jù)時(shí)發(fā)送應(yīng)答信號

        void AT24C04_SendACK(bit ack)

        {

        SDA = ack; //寫應(yīng)答信號

        SCL = 1; //拉高時(shí)鐘線

        Delay5us(); //延時(shí)

        SCL = 0; //拉低時(shí)鐘線

        Delay5us(); //延時(shí)

        }

        寫數(shù)據(jù)時(shí)接收應(yīng)答信號

        bit AT24C04_RecvACK()

        {

        SCL = 1; //拉高時(shí)鐘線

        Delay5us(); //延時(shí)

        CY = SDA; //讀應(yīng)答信號

        SCL = 0; //拉低時(shí)鐘線

        Delay5us(); //延時(shí)



        return CY;

        }

        頁寫和也讀程序:

        void AT24C04_WritePage()

        {

        BYTE i;



        AT24C04_Start(); //起始信號

        AT24C04_SendByte(0xa0); //發(fā)送設(shè)備地址+寫信號

        AT24C04_SendByte(0x00); //發(fā)送存儲單元地址

        for (i=0; i16; i++)

        {

        AT24C04_SendByte(TESTDATA[i]);

        }

        AT24C04_Stop(); //停止信號

        }



        關(guān)鍵詞: I2C 串行總線 操作程序

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉