求解!!!89C51模拟的I2C通信中的应答信号和非应答信号的SDA和SCL怎么变化和理解的,好蒙啊!最好详细点

2024-12-28 04:57:08
推荐回答(1个)
回答1:

ACK(应答SDA=0)和NACK(非应答SDA=1)的使用实际上是取决你的通讯协议的:

1. 如果是89C51要和其他设备通讯,要看通讯设备的通讯要求,下面是接触得较多的用法:
从机给ACK表示让主机继续发送数据,NACK表示不接收了,让主机给STOP信号。

2. 如果89C51和89C51之间通讯,特别是用模拟的方式,接收和发送都是由你自己控制。你可以在通讯过程忽略ACK/NACK,写的时候,从机(SLAVE)一直接收直到主机给出STOP信号,读的时候也要先写,这时候可以写一个读的长度让从机知道。(这个可以根据需要自己制定通讯协议)

不知道你所谓的变化和理解具体是什么,所以只是简单回答如上。