Raspberry PiにはC#でしょ?
KiCADでマザーボード作って、Windows Coreで一発、高度OOPシステムの出来上がりー。
GPIOでラッチ制御なんてお手の物。

private void OutReg(int sel, byte data)
{
ChangeDataPortMode(OUTPUT);

SetSelect(sel);

for (int i = 0; i < 8; i++)
{
if ((data & (1 << i)) != 0)
{
if (i == 0)
D0.Write(GpioPinValue.High);
else if (i == 1)
D1.Write(GpioPinValue.High);
else if (i == 2)
D2.Write(GpioPinValue.High);
else if (i == 3)
D3.Write(GpioPinValue.High);
else if (i == 4)
D4.Write(GpioPinValue.High);
else if (i == 5)
D5.Write(GpioPinValue.High);
else if (i == 6)
D6.Write(GpioPinValue.High);
else if (i == 7)
D7.Write(GpioPinValue.High);
}
else
{
if (i == 0)
D0.Write(GpioPinValue.Low);
else if (i == 1)
D1.Write(GpioPinValue.Low);
else if (i == 2)
D2.Write(GpioPinValue.Low);
else if (i == 3)
D3.Write(GpioPinValue.Low);
else if (i == 4)
D4.Write(GpioPinValue.Low);
else if (i == 5)
D5.Write(GpioPinValue.Low);
else if (i == 6)
D6.Write(GpioPinValue.Low);
else if (i == 7)
D7.Write(GpioPinValue.Low);
}
}

// ----|_______|----
SCS.Write(GpioPinValue.Low);
SCS.Write(GpioPinValue.High);

}