LEDs are often used on manmachine
interfaces (MMIs) or
device front panels to illuminate
switches or backlight text information
so that the user knows
what the device is supposed to
be doing at the time. Occasionally,
the designer wants these
LEDs to start blinking at a particular
rate in order to alert the user
to a condition needing attention.
One such condition may be to
indicate a low battery.
Many devices use embedded
microprocessors or microcontrollers
to handle the MMI,
along with all other command
and control functions. The simple
task of causing the LED to
blink may add undesired overhead
to the software design.
However, this task can easily be
offloaded to hardware by using
the following technique.
Memory-mapped hardwarecontrol
registers are commonly
used to turn multiple LEDs on or
off with one instruction.
Similarly, memory-mapping a
“blink-control” register can set a
mask to control which LEDs
should be blinking at any particular
time, if the output of each
bit of that register gates a lowrate
(i.e., 1-Hz) clock signal for
blink timing. By connecting the
gated signal to the LED using a
tri-state buffer that’s enabled via
the LED control signal, the LED
can be turned on, off, or onblinking
(Fig. 1). If the blink
function isn’t needed, an LED
can simply be turned on or off
using the simplified circuit
shown in Figure 2.