Alphanumeric LED Displays
Patrick Berry & Anjana Rajan
Team QRAP

Introduction

This document would be useful for projects which require simple character displays, more flexible than 7-segment LEDs, and less complicated than LCD screens or video interfacing. The Alphanumeric dispay is a 14-segment LED which can display any character of the alphabet, along with numerous other characters and symbols.
 

Hardware of Choice

We used a part manufactured by LITEON (click here for a .PDF datasheet). This particular model was ordered through DIGIKEY ($3 to $6) but LITEON will send samples if you request them early enough. What this component provides is a dual display, although single displays are availiable. The dispalays are arranged as follows...

As noted, the 14 segments can display any character of the alphabet, as well as any number. Included are two decimal points.
 

Wiring Issue

The hardware comes with only 18-pins, when there are 30 segments altogether (2*14 + 2*decimal-pt). How does this work? Well, there are two "select" pins on the chip. These pins decide which display (left or right) to send the character to. This cuts down the number of wires required to display two characters, but will make the VHDL code for interfacing a bit more complicated.
 

VHDL Code for Interfacing

In order to display two numbers at the same time, your VHDL will have to toggle the select signals, and the display signals based on a clock. Here is a general sample of how to do that.

*********************************************************

process
begin
        -- Set the select signals based on the clock.
        left_select <= clock;
        right_select <= not left_select;

        -- Output a character based on the select signals
        if left_select = '1' then
                DIGIT <= left_letter;
        else
                DIGIT <= right_letter;
        end if;
end process;
*********************************************************

The select signals will be outputted to the select pins of the component, while the DIGIT signals will be outputted to the appropriate segment pins (see the datasheet for the appropriate segment pins).

Note that the system clock runs too fast for the component to switch back and forth at correct times. We used a clock divider to produce a clock pulse that was 512-times the period of the system clock and that seemed to work just fine.
 

Common Character Displays

The following characters may be commonly displayed.

*********************************************************

This is based on the following pin assignments and sequence of pins.

     A
  -------
F|\  |G /|B
 |P\ | /H|
 |  \|/  |
 N--   --J
 |  /|\  |
E|M/ | \K|C
 |/  |L \|
  -------
     D

and character <= "ABCDEFGHJKLMNP";

letter_a <= "11101100100010";
letter_b <= "00111100000000";
letter_c <= "10011100100010";
letter_d <= "01111000100010";
letter_e <= "10011100100010";
letter_f <= "10001100100010";
letter_g <= "10111100100000";
letter_h <= "01101100100010";
letter_i <= "10010010001000";
letter_j <= "01110000000000";
letter_k <= "00001101010010";
letter_l <= "00011100000000";
letter_m <= "01101101000001";
letter_n <= "01101100010001";
letter_o <= "11111100000000";
letter_p <= "11001100100010";
letter_q <= "11111100010000";
letter_r <= "11001100110010";
letter_s <= "10110100100010";
letter_t <= "10000010001000";
letter_u <= "01111100000000";
letter_v <= "00001101000100";
letter_w <= "01101100010100";
letter_x <= "00000001010101";
letter_y <= "00000001001001";
letter_z <= "10010001000100";
number_0 <= "11111100010001";
number_1 <= "01100000000000";
number_2 <= "11011000100010";
number_3 <= "11110000100010";
number_4 <= "01100100100010";
number_5 <= "10110100100010";
number_6 <= "10111100100010";
number_7 <= "11100000000000";
number_8 <= "11111100100010";
number_9 <= "11110100100010";
*********************************************************
NOTE: This code assumes that the configuration you've selected for your display is "Active High". If it is "Active Low", then simply assign the output <= not character.


Prepared By: Patrick Berry & Anjana Rajan
Team QRAP
Document Created: 2001/03/26
Last Updated: 2001/03/26