74HC595 outputs from Q7 to Q0 - is this normal?


I've got an arduino sending bits out to a single 74HC595 shift register and reading from Q0 to Q7 I get the reversed (not inverted) output. Eventually this will be one or two shift registers used to multiplex a keyboard switch array.

I.e. if I send 01111111, pins Q0 to Q7 read out 11111110. Likewise, 10000000 reads out as 00000001. Output goes to Q7 first rather than Q0 as I was expecting.

Is this something I can just accept and ignore or is their a fault somewhere?

The simple bit of code I'm using is below.

const int dataPin = 8;
const int latchPin = 9;
const int clockPin = 10;

void setup()
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(latchPin, OUTPUT);

void loop()
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, B01111111);
  digitalWrite(latchPin, HIGH);


is their a fault somewhere

It is your understanding about what you expect to happen.