gurong60 发表于 2013-10-23 11:07 ![](static/image/common/back.gif)
建议先卸载这个仿真软件,你这个问题是你没有仔细看手册,手册说的很清楚,要判断中断标志位,且需要软件清 ... void write_iic(uchar add,uchar p)
{
uchar i;
SSPIF=0;
SEN=1;
while(!SSPIF);
SSPIF=0;
SSPBUF=add&0xfe;//add是从机的地址
while(!SSPIF);
SSPIF=0; //等待ACK
SSPBUF=p;
while(!SSPIF);
SSPIF=0;
PEN=1;
while(!SSPIF);
SSPIF=0;
}
这个样子行吗? 我看你的帖子就是那样写的我才试了试,不管有没有收到应答,第9个脉冲的时候,总会把SSPIF置位!? |