欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
單片機I2C通訊代碼詳解

單片機I2C通訊代碼詳解

I2C協(xié)議標準代碼

1. 起始信號&停止信號

起始信號:當 SCL 線(xiàn)是高電平時(shí) SDA 線(xiàn)從高電平向低電平切換。

停止信號:當 SCL 線(xiàn)是高電平時(shí) SDA 線(xiàn)由低電平向高電平切換。

2. 起始信號代碼

void I2cstart() //起始信號

{

SDA=1;

Delay8us();

SCL=1;

Delay8us();

SDA=0;

Delay8us();

SCL=0;

Delay8us();

}

3. 停止信號代碼

void I2cstop() //停止信號

{

SDA=0;

Delay8us();

SCL=1;

Delay8us();

SDA=1;

Delay8us();

}

4.發(fā)送一個(gè)字節

unsigned char I2cSendByte(unsigned char dat) //CPU向設備發(fā)送一個(gè)字節

{

unsigned char a=0,b=0;

for(a=0;a<>

{

SDA=dat>>7;

dat=dat<>

Delay8us();

SCL=1;

Delay8us();

SCL=0;

Delay8us();

}

SDA=1;

Delay8us();

SCL=1;

while(SDA) //等待設備應答

{

b++;

if(b>200)

{

SCL=0;

Delay8us();

return 0; //設備無(wú)應答,返回0,并跳出此程序

}

}

SCL=0;

Delay8us();

return 1; //設備有應答,返回1,并跳出此程序

}

5.讀取一個(gè)字節

unsigned char I2cReadByte() //CPU向設備讀取一個(gè)字節

{

unsigned char a=0,dat=0;

SDA=1;

Delay8us();

for(a=0;a<>

{

SCL=1;

Delay8us();

dat<>

dat|=SDA;

Delay8us();

SCL=0;

Delay8us();

}

return dat; //返回dat,并跳出此程序

}

6. 向24C02地址addr,寫(xiě)數據dat

void At24c02Write(unsigned char addr,unsigned char dat) //向24C02地址addr,寫(xiě)數據dat

{

I2cstart(); //啟動(dòng)

I2cSendByte(0xa0); //發(fā)送24C02設備地址

I2cSendByte(addr); //發(fā)送24C02寄存器地址

I2cSendByte(dat); //發(fā)送數據

I2cstop(); //停止

}

7. 讀取24C02寄存器addr中的數據

unsigned char At24c02Read(unsigned char addr) //讀取24C02寄存器addr中的數據

{

unsigned char num;

I2cstart(); //開(kāi)始

I2cSendByte(0xa0); //發(fā)送24C02設備地址-寫(xiě)

I2cSendByte(addr); //發(fā)送24C02寄存器地址

I2cstart(); //改變傳輸方式,重新開(kāi)始

I2cSendByte(0xa1); //發(fā)送24C02設備地址-讀

num=I2cReadByte(); //接收數據并保存至num

I2cstop(); //停止

return num; //返回讀取值num

}

8.I2C寫(xiě)數據八個(gè)步驟

第一步,發(fā)送一個(gè)起始信號。

第二步,發(fā)送7bit從機地址,即24C02的地址。此處需要注意,發(fā)送數據時(shí),無(wú)法發(fā)送7bit數據,此處發(fā)送了7bit地址+1bit讀寫(xiě)選擇位,即發(fā)送7bit+r/w。最低位為1表示讀,為0表示寫(xiě)。

第三步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為從機器件產(chǎn)生的應答。

第四步,發(fā)送寄存器地址,8bit數據。

第五步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為從機器件產(chǎn)生的應答。

第六步,發(fā)送一個(gè)數據,8bit數據。

第七步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為從機器件產(chǎn)生的應答信號。

第八步,發(fā)送一個(gè)停止信號。

9. I2C讀數據十一個(gè)步驟

第一步,發(fā)送一個(gè)起始信號。

第二步,發(fā)送7bit從機地址,即24C02的地址。此處需要注意,發(fā)送數據時(shí),無(wú)法發(fā)送7bit數據,此處發(fā)送了7bit地址+1bit讀寫(xiě)選擇位,即發(fā)送7bit+r/w。最低位為1表示讀,為0表示寫(xiě)。

第三步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為從機器件產(chǎn)生的應答。

第四步,發(fā)送寄存器地址。

第五步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為從機器件產(chǎn)生的應答。

第六步,再次發(fā)送一個(gè)起始信號。

第七步,發(fā)送7bit從機地址,即24C02的地址。此處需要注意,發(fā)送數據時(shí),無(wú)法發(fā)送7bit數據,此處發(fā)送了7bit地址+1bit讀寫(xiě)選擇位,即發(fā)送7bit+r/w。最低位為1表示讀,為0表示寫(xiě)。

第八步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為從機器件產(chǎn)生的應答。

第九步,讀取一個(gè)字節(8bit)的數據。

第十步,產(chǎn)生一個(gè)ACK應答信號,此應答信號為CPU產(chǎn)生。

第十一步,產(chǎn)生一個(gè)停止信號。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
I2C總線(xiàn)協(xié)議(AT24c02)程序
ADXL345程序。 (amoBBS 阿莫電子論壇)
51單片機”光控窗簾“簡(jiǎn)易版c(帶視頻)
PIC單片機之I2C總線(xiàn)
MSP430F149模擬IIC讀寫(xiě)24C02程序
EX85 將數據"0X0F"寫(xiě)入AT24C02再讀出送P1口顯示
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久