用PCF8574来扩展单片机的IO口,虽然IIC通信程序网上到处都是,但是之前也是驱动一个关于iic总线的芯片,那芯片怎么也不答应我,估计是地址的原因吧。地址这个事情总是不好把握。所以当拿到文档的时候,有点害怕这个芯片的时候有点不知所措,也害怕不答应我。还好运气比较好,后来居然立马就答应了。
1、利用Arduino,将硬件测试一下,很顺利就通了,这样就可以顺利的进行下一步了。
2、拷贝iic的通信程序
/********************延时***************/
void nop4()
{
_nop_(); //等待一个机器周期
_nop_(); //等待一个机器周期
_nop_(); //等待一个机器周期
_nop_(); //等待一个机器周期
}
//***************************************
void Start()
{
SDA=1;
_nop_();
SCL=1;
nop4();
SDA=0;
nop4();
SCL=0;
_nop_();
_nop_();
}
void Stop()
{
SDA=0;
_nop_();
SCL=0;
nop4();//>4us后SCL跳变
SCL=1;
nop4();
SDA=1;
_nop_();
_nop_();
}
//******************************************
void Write_A_Byte(unsignedchar c)
{
unsigned char BitCnt;
for(BitCnt=0;BitCnt<8;BitCnt++) //要传送的数据长度为8位
{
if((c<<BitCnt)&0x80) SDA=1; //判断发送位
else SDA=0;
_nop_();
SCL=1; //置时钟线为高,通知被控器开始接收数据位
nop4();
_nop_();
SCL=0;
}
_n