Для обычных сдвиговых регистров, например тут, через ShiftOut:
http://wiki.amperka.ru/конспект-arduino:счетчик-нажатий
Если важен сам принцип, то смотрите временные диаграммы, либо расковыряйте данную функцию.
Могу ошибаться, но вроде: выставить уровень на data, по фронту clock забить его в регистр, выставить следующее, снова фронтом clock его задвинуть в регистр, после забивания всех 8ми значений подать необходимый уровень на защелку latch, которая одновременно выставит все забитые значения на выходе регистра.