在51上用P1口模拟I2C
点击数:7782 次 录入时间:03-04 11:50:53 整理:http://www.55dianzi.com 嵌入式系统-技术
if(!Check_AcknowLEDge())
{
IIC_Stop();
return(i==n);
}
}
IIC_Stop();
return TRUE;
}
 
www.55dianzi.com
; uchar Read_Byte(void)reentrant
{
//从 I2C 总线读一个字节
uchar b=0,i;
for(i=0;i<8;i++)
{
SDA=1; //释放总线
SCL=1; //接受数据
DELAY(10);
F0=SDA;
DELAY(10);
SCL=0;
if(F0==1)
{
b=b<<1;
b=b|0x01;
}
else
b=b<<1;
}
&
www.55dianzi.com
nbsp; return b;
}
bit Read_N_Bytes(uchar SlaveAdr,uchar n,uchar *buffer)
{
//从 I2C 总线读n个字节
uchar i;
IIC_Start();
Write_Byte(SlaveAdr); //向总线发送接收器地址
if(!Check_AcknowLEDge()) //等待接收器应答信号
return FALSE;
for(i=0;i
{
buffer[i]=Read_Byte();
if(i!=n)
SEND_0(); //发送应答
else
SEND_1(); //发送非应答
}
IIC_Stop();
 
www.55dianzi.com
; returnTRUE;
}
使用上述代码,你可以在51上用P1口模拟 I2C
上一页 [1] [2]
本文关键字:暂无联系方式嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术