I don't understand what you mean by "protocol". My understanding of that word is the way a sequence of bytes is arranged, but that does not fit in with what you want to do.
Are you talking about latching just 1 bit or a whole byte?
"using UART protocol or other"
I vote for other. UART has built in clock that samples the data to decide when to captures highs & lows.
Use shiftout() or SPI.transfer() to provide the clock and do the same into a shift register.