1,这个片子有硬件IIC,你可能用硬件IIC
2,虽说都是8051,但只是内核相同而已,我没有认真看,不知道端口是什么结构,并不是所有的单片机都能像STC这样,不用更改端口配置就能读写的有的单片机,要么只能读.要么只能写
你可以参考一下PIC的IIC程序,PIC的IIC是这样工作的:向从机写入数据时,先把端口设定成输出,然后再开始写入
从从机读取数据时,先把端口设定成强上拉输入模式,然后再开始读取
void Write_Byte(unsigned char Byte) //写入器件的应答信号由从机给出
{
unsigned char i;
unsigned int k=0;
TRISCbits.TRISC4=0;//SDA作为输出,这个是PIC把端口设置成输入的语句,不用管,知道这是更改端口配置就行了
for(i=0;i<8;i++)
{
if(Byte&0x80)SDA=1;
else SDA=0;
Delay();
SCL=1;
Delay();
SCL=0;
Delay();
Byte<<=1;
}
TRISCbits.TRISC4=1;//SDA作为输入
SCL=1;
Delay();
SDA=1;
while((SDA==1)&&(k<1000)) //超时就不再等待应答
{
k++;
Delay();
} //等待SDA出现低电平,出现低电平就表示器件已经应答
SCL=0;
}
|