Arduino+2X12 LCD to emulate a defective Kenwood HF rig display unit
That sounds like an interesting project to play with Arduino and MCUs. Hope that's not too late and you still working on the project.

If you have an oscilloscope you might want to start having a look on the SCK and Data lines, is there any CS or CE pin for chip-select? Check also the voltages on those pins to make sure nothing is going to burn...

If you don't have access to an oscilloscope, you might be able to use Arduino itself and an external interrupt. You'll basically create a very simple software SPI slave, something like that should do it:

(I haven't tried to compiled this code myself, might need some adjustments)

//Connect your Data to the pinMISO.
int pinSCK = 7;
int pinMISO = 8;

//Variables used inside interrupt functions needs to be volatile
volatile uint8_t myByte = 0;
volatile uint8_t bitCounter = 0;

int8_t byteCounter = 0;

void setup() {
  pinMode(pinSCK, INPUT);
  pinMode(pinMISO, INPUT);

  //This tells Arduino to execute bitRead() every time the pinSCK goes from LOW to HIGH. In other works, it'll get executed every clock.
  attachInterrupt(pinSCK, bitRead, RISING);

  //Add some serial output so you can debug on screen and don't worry with the second part of you code for now.
  Serial.begin(115200);
}

//This function will be called every time the interrupt is triggered, it's important to keep it very simple to run fast!
void bitRead() {
  //Left shit one bit, this assume the communication is MSB first
  myByte &lt;&lt;= 1;

  //Append the read value of the pinMISO to our byte (it'll be 0 or 1). I think I need to cast to (uint8_t) as digitalRead returns an int.
  myByte |= (uint8_t)digitalRead(pinMISO);

  //Increment our bit counter
  bitCounter++
}

void loop() {
  if(bitCounter == 8) {
    Serial.print("New byte [ "); Serial.print(byteCount); Serial.print("] "); Serial.println(myByte, bin);

    //Increment our byte counter
    byteCounter++;

    //Reset myByte and bitCounter for the next byte
    myByte = 0;
    bitCounter = 0;

}


This is just an example... I'm expecting the SCK speed being slow enough for the code to work and that the communication is using a multiple of 8 bits. One problem here could be the "print" getting in the way, so you might need to create a buffer of bytes and print from the buffer.

You could use an similar example just to count how many bits you're getting and create the correct buffer size. With this code you should be able to decode the screen and start thinking how to write the second part to print on the replacement screen.

Depending on your case, you might be able to use the AVR Hardware SPI as Slave. But that might be a bit difficult to understand if you're just starting with MCUs. Have a look on this page: http://www.gammon.com.au/forum/?id=10892&amp;reply=1#reply1

Good luck!