移位寄存器(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 位。请记住,主机控制时钟,即使从机正在驱动数据引脚。
当我在 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 位。请记住,主机控制时钟,即使从机正在驱动数据引脚。