Seven Segment Controller

A scanning display controller for the seven-segment display

144

Seven segment displays are simple and inexpensive devices capable of showing a limited number of symbols, including the digits 0-9, some letters, and some arbitrary symbols. Each display element is made up of seven segments arranged in a figure-8 pattern, and each segment can be driven individually to create numbers (and some letters). Segments are commonly constructed using LEDs or liquid crystals, and they come in a variety of sizes and colors. They remain some of the most common electronic displays in use today.

In operation, a driver circuit produces the desired character on the display by illuminating certain segments and leaving others dark. Typically, a binary coded decimal code (BCD code) defines the digit to be displayed (recall a BCD code is a 4-bit code where only 0000-1001 are defined). The illumination patterns for the digits are shown below, and the truth table identifies exactly which segments are illuminated for each BCD digit.

Figure 1. Seven segment truth table and block diagram
Figure 1. Seven segment truth table and block diagram

Blackboard’s seven-segment display module has a single input port for driving the cathodes, and four digit enables. Since only one digit can be turned on at a time, a scanning display controller is needed to illuminate all four digits. A scanning display controller takes advantage of the enormous mismatch in response times between human sensory organs electronics systems. The display controller illuminates each display element for a short amount of time (perhaps 1ms or so), but long enough to saturate the human visual apparatus (saturation occurs in a fraction of a millisecond). Each display element is illuminated for part of the time, and then deselected so the next element can be illuminated. In this case, there are four display elements (the four digits), so each digit can be illuminated for 25% of the time.

The human visual apparatus also de-saturates relatively quickly, so if too much time transpires between display element illumination, flickering will be perceived. De-saturation occurs after about 20ms or so, which means display elements must be re-illuminated (or refreshed) at least 50 times per second.

The scanning display controller must turn on each digit at least once every 20ms (and faster is OK as well), and each digit must remain on for at least 100us. Further, the scanning controller must ensure the correct cathode pattern is present when the corresponding anode (digital enable) signal is asserted. The figure below shows a schematic of a suitable system, and a timing diagram that illustrates the system’s behavior.

Figure 2. Seven segment display system
Figure 2. Seven segment display system

Note the system is partitioned into two sections – the data source, which in this case is a four-digit decimal counter, and the display system. These two subsystems are independent, and one can be used without the other. The two clocks are also independent, and each can be chosen according to the needs of the subsystem.

In this example, the CLK signal frequency for the timer will determine the timer’s update rate, and that frequency can be chosen according to the needs of the timer.

Regardless of how often the input data is updated, the display system will simply display whatever input data is delivered to it on its four 4-bit input buses. The display system’s DISP_CLK frequency can be chosen according to the needs of the display, with no relationship whatsoever to any other time bases. To avoid flicker and to allow adequate time for each digit’s LEDs to adequately illuminate, a DISP_CLK in the range of 250Hz to 10KHz should suffice.

Figure 3. Seven segment controller timing
Figure 3. Seven segment controller timing