AY0438 and Arduino?

I am just starting out with this. I am trying to get a 4 digit 7 Segment LCD to work with an Arduino. I have been able to get the normal 2x24 lcds, but no luck so far with the 7 segment? I came across the AY0438 chip which is a serial LCD driver. New to serial, new to lcd...

Anyone have a suggestion for starting with this chip. If not, do you have a suggestion on another chip or how to directly control a 7 segment lcd?

Okay, I think I at least now know how to better ask my question. First I am very new to arduino and this is my first attempt at serial communication. I am trying to control a 7 segment 4 digit LCD with a AY0438 lcd driver which communicates serially.

This is where my trouble comes in. Is there a site that lists the commands used for serial communication? I can look at other codes out there and get some of it but not all of it.

The trouble is I see several ways to do it but not sure what all the parts of the code are doing. ... I am looking for something that says "to send do this", "to stop sending do this", or to "send multiple strings do this", and maybe "store info like this." Does this exist?

At this point I am willing to pay someone for help too. I am trying to learn, but there isnt anyone nearby that I can talk too, so I spend hours online and get closer and closer but just can't make the final plunge. Most of what I find is well past my current abilities and think if I can get it broke down for me I can move up quickly.

The data sheet for the driver is at http://ww1.microchip.com/downloads/en/devicedoc/80438a.pdf
The pin layout for the LCD is at http://rocky.digikey.com/WebLib/Varitronix/Web%20Data/VI422.htm

I swapped from LED to LCD for several reasons. The main reason is this is going to be used in full sun making the LED hard to read especially from some of the older guys. Another big one was power consumption. This will need to run as long as possible with only one charge. My goal is a week on one 9v before recharging. Price point is a real big deal expecting about the 4-8 range. One of my friends was looking and found a 7 segment lcd with the driver chip built in which would make wiring easier but I wasnt a big fan of the $75 price.

This is basically a glorified counter. I have three buttons. Two the increment the counter by one and the the third button increments by two. Then simply display that number. There are a few more peripherals, but primarily that is it.

Like I said I have been working on this, just dont know SPI. I can get most info that you need, just don't know what you need.

I found Busaboi's code for a serial LED from Sparkfun. I managed to cannibalize his code to get what I need. Though i don't get 100% of it, I did manage to wrangle to core out of it enough to get a basic understanding of SPI. It was helpful to see a code and go through each step since I have never used SPI before. I will try to post the code later tonight.

#define DATAOUT 11 //MOSI
#define DATAIN 12 //MISO - not used, but part of builtin SPI
#define SPICLOCK 13 //sck
#define SLAVESELECT 10 //ss
int A=0x38; // To be assigned later in code but for not simply an invert of starting placeholders
int B=0x38; // To be assigned later in code but for not simply an invert of starting placeholders
int C=0x3E; // To be assigned later in code but for not simply an invert of starting placeholders
int D=0x73; // To be assigned later in code but for not simply an invert of starting placeholders
char spi_transfer(volatile char data)

{
SPDR = data; // Start the transmission
while (!(SPSR & (1<<SPIF))) // Wait the end of the transmission
{ }
return SPDR; // return the received byte
}

void setup(){ //setup code
byte clr;
pinMode(DATAOUT, OUTPUT); // Pin 11 is output
pinMode(DATAIN, INPUT); // Pin 12 is in input
pinMode(SPICLOCK, OUTPUT); //Pin 13, clock, is output
pinMode(SLAVESELECT, OUTPUT); // Pin 10 is output
digitalWrite(SLAVESELECT, LOW); //disable device by setting LOW, enable by making HIGH

// SPCR = 01010010
//SPIE interrupt disabled,SPE spi enabled,DORD msb 1st,MSTR master,CPOL clk low when idle,CPHA sample on falling edge of clk,system clock/64
SPCR = (1<<SPE)|(1<<MSTR)|(1<<CPHA);

clr=SPSR; clr=SPDR; delay(10); //clear any junk that may have found its way into the registry

write_lcd_numbers(0b1110011,0b0111110,0b0111000,0b0111000); //says pull 0x73, 0x3E, 0x38, 0x38
delay (1500);
}

//code to display digits
void write_lcd_numbers(int digit1, int digit2, int digit3, int digit4){
spi_transfer(digit1); // Thousands Digit
spi_transfer(digit2); // Hundreds Digit
spi_transfer(digit3); // Tens Digit
spi_transfer(digit4); // Ones Digit

digitalWrite(SLAVESELECT, HIGH); // start slave device listening
delay (10); //wait just because I saw it in lots of others code will try later without the delay
digitalWrite(SLAVESELECT, LOW);//release chip, signal end transfer
}

void loop(){
//insert code here to interact with digit 1,2...

write_lcd_numbers(A,B,C,D);
}