久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

I2C通信模塊c語言庫文件

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年08月17日   【字體:

文件名i2c.h

/***************************************************
名稱:I2C通信模塊修改版
編寫:YuMin_Dong
時間:2012.11.17
***************************************************/
#ifndef _I2C_H_
#define _I2C_H_
sbit SDA=P1^0;
sbit SCL=P1^1;
uint8 ACK;


//開啟I2C總線
void I2C_Start()
{
SDA=1;
//_nop_();
//_nop_();
//_nop_();
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;//鉗主總線
_nop_();
_nop_();
}

//停止I2C總線
void I2C_Stop()
{
SDA=0;
//_nop_();
//_nop_();
//_nop_();
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}

//I2C通信主機發(fā)送字節(jié)
void I2C_SendByte(uint8 byte)
{
uint8 i;
 for(i=0;i<8;i++)
 {
 if(byte&0x80)
 SDA=1;
 else SDA=0;
 _nop_();
 SCL=1;//使SDA數(shù)據(jù)有效
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 SCL=0;
 byte<<=1;
 _nop_();
 _nop_();
 }
 SDA=1;//數(shù)據(jù)線浮高
 _nop_();
 _nop_();
 SCL=1;//使讀取的數(shù)據(jù)有效,判斷是否應(yīng)答或非應(yīng)答
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 if(SDA==1)
 ACK=0;//收到非應(yīng)答信號
 else ACK=1;//收到應(yīng)答信號
 SCL=0;//鉗總線
 _nop_();
 _nop_();
}

//I2C通信主機接收字節(jié)
uint8 I2C_ReceiveByte()
{
uint8 i;
uint8 byte;

for(i=0;i<8;i++)
{
SDA=1;//拉高準(zhǔn)備接收
_nop_();
SCL=1;
byte<<=1;
if(SDA==1)
byte|=0x01;
else byte&=0xfe;
SCL=0;
_nop_();
_nop_();
}
return byte;
}

//(主機接收函數(shù)將要調(diào)用)從設(shè)備發(fā)生的應(yīng)答信號
void I2C_Ack()
{
SDA=0;
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
_nop_();
_nop_();
_nop_();
}

//非應(yīng)答信號產(chǎn)生函數(shù)
void I2C_NoAck()
{
SDA=1;
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
_nop_();
_nop_();
_nop_();
}

//主機發(fā)送多字節(jié)函數(shù)
bit SendString(uint8 address,uint8 *s,uint8 num)
{
uint8 i;
I2C_Start();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
I2C_SendByte(address);
if(ACK==0)
return 0;
for(i=0;i<num;i++)
{
I2C_SendByte(*s);
if(ACK==0)
return 0;
DelayMs(10);//以等待設(shè)備寫入數(shù)據(jù)處理完成
s++;
}
I2C_Stop();
DelayUs(10);
return 1;
}

//主機接收多字節(jié)函數(shù)
bit ReceiveString(uint8 address,uint8 *s,uint8 num)
{
uint8 i;
I2C_Start();
I2C_SendByte(address);
if(ACK==0)
return 0;
I2C_Start();
I2C_SendByte(address+1);
if(!ACK)
return 0;
for(i=0;i<num-1;i++)
{
*s=I2C_ReceiveByte();
I2C_Ack();          
DelayMs(10);
s++;
}
*s=I2C_ReceiveByte();
I2C_NoAck();         //給的非應(yīng)答信號
I2C_Stop();          //停止總線
return 1;
}

#endif

庫文件的調(diào)用例子:http://m.zg4o1577.cn/bbs/dpj-20623-1.html
 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久草资源在线观看 | 欧美精品在线观看视频 | 毛片视频免费 | 精品视频国产 | 国产又粗又大又硬 | 成人黄色免费网站 | 亚洲欧美另类在线 | 天天躁狠狠躁 | 好色综合 | 国语对白做受欧美 | 欧美国产一区二区 | 老司机免费福利视频 | 亚洲国产精品一区二区三区 | 日韩一区二区三区在线 | 精品久久久久久久久久久久久久 | 在线中文字幕网站 | 解开岳的丰满奶罩bd | 日韩伦理一区 | 久久久久久97 | 久久久久久精 | 国产黄色小说 | 小sao货撅起屁股扒开c微博 | 一级片免费播放 | 91av视频 | 一级黄色a | 97免费在线 | a级片在线播放 | 免费在线成人网 | 一区二区福利 | 亚洲精品影院 | 午夜激情在线观看 | 91av免费 | 在线观看av网站 | 99视频在线精品免费观看2 | 免费成人在线观看 | 亚洲高清免费 | 男人操女人视频网站 | 人人草在线视频 | 免费视频国产 | 欧美日韩免费一区二区三区 | 免费一级a毛片 |