1,這個片子有硬件IIC,你可能用硬件IIC
2,雖說都是8051,但只是內(nèi)核相同而已,我沒有認真看,不知道端口是什么結(jié)構(gòu),并不是所有的單片機都能像STC這樣,不用更改端口配置就能讀寫的有的單片機,要么只能讀.要么只能寫
你可以參考一下PIC的IIC程序,PIC的IIC是這樣工作的:向從機寫入數(shù)據(jù)時,先把端口設(shè)定成輸出,然后再開始寫入
從從機讀取數(shù)據(jù)時,先把端口設(shè)定成強上拉輸入模式,然后再開始讀取
void Write_Byte(unsigned char Byte) //寫入器件的應答信號由從機給出
{
unsigned char i;
unsigned int k=0;
TRISCbits.TRISC4=0;//SDA作為輸出,這個是PIC把端口設(shè)置成輸入的語句,不用管,知道這是更改端口配置就行了
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出現(xiàn)低電平,出現(xiàn)低電平就表示器件已經(jīng)應答
SCL=0;
}
|