Home Microcontrollers Abbreviations Useful Tools Gallery hot links feedback

seven segments

Seven segment display is a basic type of output device, which can display numbers from 0 to 9. The circuit for interfacing single 7 segment display is shown below.

seven segment display interfacing

Driving a 7 segment display is as simple as driving LEDs, but here the difference is we are lighting up 7+1 LEDs in aspecific pattern. The 7 segment display module has 8 LEDs (7 segments to display number and one segment for decimal point or dot) arranged in a 10 pin module as shown in the image below.

seven segment display illustration

common cathode internal circuit

common anode internal circuit


By driving (in the sense controlling ON and OFF conditions) these LEDs in various combinations, we can display the numbers 0 to 9. There are basically two types of 7 segment displays, they are common cathode and common anode. In common cathode, the cathodes of all the LED segments are connected together, we should apply a logic 1 or high input to a segment pin to light up that particular segment, and in common cathode the case is opposite. Table below shows the combinations of inputs to be applied to 7 segment display for digits 0 to 9.

For common cathode displays
Digit binary input value hex input value
0 11111100 FC
1 01100000 60
2 11011010 DA
3 11110010 F2
4 01100110 66
5 10110110 B6
6 10111110 BE
7 11100000 E0
8 11111110 FE
9 11110110 F6
For common anode displays
Digit binary input value hex input value
0 00000011 03
1 10011111 9F
2 00100101 25
3 00001101 0D
4 10011001 99
5 01001001 49
6 01000001 41
7 00011111 1F
8 00000001 01
9 00001001 09

The images shown below are the photographs of 7 segment add-on board for my microcontroller board, I have included one 7 segment in the current version of my development board, so if you are using that circuit then you don't need an external 7 segment display board. Click on the image to enlarge.

seven segment display addon seven segment display working

The assembly language source code for interfacing 7 segment display is given below.

;Program: Driving seven segment display
;Author: Srikanth
;Description: Displays numbers 0 to 9 on
;the LED seven segment display continuously

port equ P0


;Main program
org 0000h
ljmp main
org 30h

main:mov r0,#08h
mov a,#00000001b      ;test all segments of disp
up:  rr a
mov port,a
acall delay
djnz r0,up

again:mov port,#11111100b  ;'0'
acall delay
mov port,#01100000b   ;'1'
acall delay
mov port,#11011010b   ;'2'
acall delay
mov port,#11110010b   ;'3'
acall delay
mov port,#01100110b   ;'4'
acall delay
mov port,#10110110b   ;'5'
acall delay
mov port,#10111110b   ;'6'
acall delay
mov port,#11100000b   ;'7'
acall delay
mov port,#11111110b   ;'8'
acall delay
mov port,#11110110b   ;'9'
acall delay
sjmp again


delay:mov r2,#0ffh         ;delay subroutine
up3: mov r4,#03fh
up2: mov r3,#0fh
up1: djnz r3,up1
djnz r4,up2
djnz r2,up3