Alphanumeric Display Driver

In this post I’ll show how a single alphanumeric display can be driven by PIC16f877A micro controller. There are dedicated IC’s for this purpose  however a micro-controller can be programmed to perform this task. By using a microcontroller you’ll get a more flexible design not limiting the characters being displayed or additional functionality that can be easily added by modifying the code. Various MCU can be chosen for this task the main consideration is 16 available I/O lines for each of display segments and enough current to drive the display without additional components. I originally planned to implement a full ASCII LUT and use 8 inputs, however in order to simplify the design I’ve limited the output to 0-9 digits and capital letters A-F by using only 4 bits, so this driver essentially converts binary digits to hexadecimal representation. However you can add additional symbols by editing the source code. Input a desired character binary code and microcontroller will drive the relevant segments of the Alphanumeric Display. In a addition to 4 binary inputs this decoder has Latch (LE),LED Test inverted (LT) and Blanking inverted (BL) pins. Look at BCD to 7 Segment Display Decoder post for additional information. Next you can see the schematic of this circuit and all characters currently being implemented. I’ve used a standard common anode alphanumeric display (all + are connected together)

Alphanumeric Display Driver Schematic

Alphanumeric Display Driver Digits

680 Ohm resistors were used to limit segments current, also 20 MHz oscillator connected to pin 13 CLKIN. You’ll need a programmer like PICKit3 to program the controller. Learn how to connect it at this link. Pay attention: For PIC16F877 — MCLR/VPP is pin 1, ICSPDAT is 40 and ICSPCLK is 39.

Alphanumeric Display Driver Prototype Board