HT1632C Train Describers code

Good afternoon folks,

This is a project I'm currently building to use six 8x8 matrices controlled by a HT1632C, representing two Train Describers as seen in signalboxes on the railway. Each train describer is one half of the "full" display, at 8x24 each. In addition, the chip can also use the HT1632C to control discrete LEDs, for example on a model railway control panel.

The function of the program is to receive information about which characters to display on a display (0-4 characters, 0 being a blank display). It can receive an almost unlimited of commands at once, limited only by scratchpad size (5 bytes per command packet). On receiving the first command packet, it sets a status line to high, preventing the sending device from sending further commands until the previous commands have been processed. It can however finish sending its current "burst" of commands.

The program also automatically centers the text in the display, so that 1 & 2 digit codes are displayed neatly. Font data is stored in an external EEPROM, acting as a character generator. Fonts are 5x8.

I'm indebted to the folks in this thread for providing the basic code I needed to get the HT1632C to work.

NOTE - this is still untested... waiting on PCBs to arrive, since the HT1632Cs are SMD only...