移位寄存器(74hc595)和 ccs 中的 pic

shift register(74hc595) and pic in ccs

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

为什么?

原理图:

我的代码:

i2c_write(0b10101010);

latch_led_sensors_out();

delay_ms(200);

是因为I2C协议。即使你想发送 8 位,你实际上发送的是 9。I2C 的工作方式是初始帧包含 7(或 10)位地址,再加上 read/write 的一位。在那些初始的 8 位时钟输出后,主设备发送一个额外的时钟脉冲以从从设备读取 ACK/NACK 位。请记住,主机控制时钟,即使从机正在驱动数据引脚。