移位寄存器(74hc595)和以ccs为单位的pic

时间:2018-05-22 14:29:39

标签: microcontroller pic mplab shift-register

当我在hc595移位寄存器中写入8位时,i2c的最后一位在第二个hc595中转到Q0。

为什么?

示意图:

enter image description here

我的代码:

i2c_write(0b10101010);

latch_led_sensors_out();

delay_ms(200);

1 个答案:

答案 0 :(得分:1)

这是因为I2C协议。即使您想发送8位,您实际上也是在发送9. I2C工作的方式是初始帧包含7(或10)位地址,加上一位用于读/写。在初始8位被输出后,主机发送一个额外的时钟脉冲以读取来自从机设备的ACK / NACK位。请记住,即使从器件正在驱动数据引脚,主器件也会控制时钟。