<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機I2C總線(xiàn)協(xié)議的實(shí)現

51單片機I2C總線(xiàn)協(xié)議的實(shí)現

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
//-----------------------函數聲明,變量定義-------------------------------------------------------

#include

本文引用地址:http://dyxdggzs.com/article/201611/322567.htm

#include

sbit SDA=P1^0;// 將p1.0口模擬數據口

sbit SCL=P1^1;// 將p1.1口模擬時(shí)鐘口

#define NUM 10 // 接收和發(fā)送緩存區的深度

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

unsignedcharidata sendbuf[NUM];// 數據發(fā)送緩沖區

unsignedcharidata receivebuf[NUM];// 數據接收緩沖區

bit bdata SystemError;// 從機錯誤標志位

//------------------------------------------------------------------------------------------------

// 函數名稱(chēng): iic_start()

// 函數功能: 啟動(dòng)I2C總線(xiàn)子程序

//------------------------------------------------------------------------------------------------

voidiic_start(void)

{ EA=0;//時(shí)鐘保持高,數據線(xiàn)從高到低一次跳變,I2C通信開(kāi)始

SDA = 1;

SCL = 1;

delayNOP();// 延時(shí)5us

SDA = 0;

delayNOP();

SCL = 0;

}

//------------------------------------------------------------------------------------------------

// 函數名稱(chēng): iic_stop()

// 函數功能: 停止I2C總線(xiàn)數據傳送子程序

//------------------------------------------------------------------------------------------------

voidiic_stop(void)

{

SDA = 0;//時(shí)鐘保持高,數據線(xiàn)從低到高一次跳變,I2C通信停止

SCL = 1;

delayNOP();

SDA = 1;

delayNOP();

SCL = 0;

}

//------------------------------------------------------------------------------------------------

// 函數名稱(chēng): slave_ACK

// 函數功能: 從機發(fā)送應答位子程序

//------------------------------------------------------------------------------------------------

voidslave_ACK(void)

{

SDA = 0;

SCL = 1;

delayNOP();

SDA = 1;

SCL = 0;

}

//------------------------------------------------------------------------------------------------

// 函數名稱(chēng): slave_NOACK

// 函數功能: 從機發(fā)送非應答位子程序,迫使數據傳輸過(guò)程結束

//------------------------------------------------------------------------------------------------

voidslave_NOACK(void)

{

SDA = 1;

SCL = 1;

delayNOP();

SDA = 0;

SCL = 0;

}

//------------------------------------------------------------------------------------------------

// 函數名稱(chēng): check_ACK

// 函數功能: 主機應答位檢查子程序,迫使數據傳輸過(guò)程結束

//------------------------------------------------------------------------------------------------

voidcheck_ACK(void)

{

SDA = 1;// 將p1.0設置成輸入,必須先向端口寫(xiě)1

SCL = 1;

F0 = 0;

if(SDA == 1)// 若SDA=1表明非應答,置位非應答標志F0

F0 = 1;

SCL = 0;

}


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

評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>