首先使用I2c 数据总线通信要理解其时序图,楼主是使用I2c总线建立 C51芯片与 E2Prom AT24C02 之间的通信,通信时序图如截图01,起始程序的时序图如截图02,如下所示是起始程序:
void delay()
{;;}
void start () // To start
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
楼主的问题是 delay函数的调用,若我换成
void delay ()
{
unsigned int i;
for (i=0;i=70;i++);
}
程序就不能正常运行了,不知道是什么原因?
本帖最后由 五加一等于六 于 2014-5-4 15:42 编辑
for (i=0;i=70;i++);这是什么意思
for (i=0;i=70;i++);
红字,估计应该是<或者<=
不好意思,貌似笔误造成 程序无法正常运行,那天编了一天程序,估计搞懵了。今天我找到原程序将 delay 改成如下
void delay()
{
uint i = 0;
for (i=70;i>0;i--);
}
程序可以运行,没有问题,谢谢老兄跟贴讨论。