The 20MHz oscillator is a encapsulated type that fits a 8pin DIL configuration. All that's needed is a pull-up resistor of about 1K. This is fed to the CLKIN input of the PIC.
The buttons are PCB click type - same as used in a computer mouse - and have pull-up resistors on each input to the PIC
The serial buffer needs to convert the negative input as a logic 1 and a positive input as logic 0. Also it needs to keep the Rx input to the PIC high when no input is connected otherwise the PIC will repeatedly try to receive a byte resulting in a frame error. This is accomplished simply by using a transistor inverter, with diodes in reverse bias to prevent damage to the transistor.
Finally the LCD display is a 16x2 dot matrix, alpha-numeric display - meaning it has a dot matrix output in 5x7 blocks for letters and numbers. Communication can be by 8-bit or 4-bit connection - I have used the 4-bit since it simplifies PCB routing. Only RS and Enable signals are needed to control the 4-bit data input. PR1 controls the contrast of the display.
* NOTE: R9 is used to illuminate the display. This wasn't used in the end with the prototype as the 78L05 regulator got quite warm and it wasn't essential to the function. However it does look better when the LED backlight is on and can be run safely from a 9v PP3 battery.
Current consumption is about 10mA without the LED backlight.
The bytes can be viewed using the "-" and "+" buttons to scroll the data left and right. The offset points to current byte (0 to Len-1)
The Menu button brings up the OPTIONS display.
The options, to clear the memory, change Text mode, change Baud rate or return are accessed by pressing one of the buttons.
The Text Mode menu.
The Baud Rate menu.