Yes,
the DEFINES have default-values, they work for the most hardware.

But,
"Hserout [str frame\7]"
here you transfer seven Byte (0..6) which are NOT 64 Bits !!!!


But,
how do you receive this 56 Bits ?
HSERIN... placed this bits into Byte-Variables.
If you print them to a LCD, you get 7 charaters.
If you want to see 56 Bits (0 and 1), you have to use LCDOUT BIN frame[x]!

Just sit down and write on a sheet of paper, what you really want.
Then we will deliver the ready code ;-)