SEVEN SEGMENT:
Seven segment display (SSD),
or seven-segment indicator, is a form of electronic display device for
displaying decimal numerals that is an alternative to the
more complex dot matrix displays.
Seven segment display
consists of seven LEDs (hence its name) arranged in a rectangular fashion as
shown. Each of the seven LEDs is called a segment because when illuminated the
segment forms part of a numerical digit (both Decimal and Hex) to be displayed.
An additional 8th LED is sometimes used within the same package thus allowing
the indication of a decimal point, (DP) when two or more 7-segment displays are
connected together to display numbers greater than ten.
Each one of
the seven LEDs in the display is given a positional segment with one of its
connection pins being brought straight out of the rectangular plastic package.
These individually LED pins are labelled from a through to g representing each
individual LED. The other LED pins are connected together and wired to form
common pin.
So by forward biasing the
appropriate pins of the LED segments in a particular order, some segments will
be light and others will be dark allowing the desired character pattern of the
number to be generated on the display. This then allows us to display each of
the ten decimal digits 0 through to 9 on
the same 7-segment display. The displays common pin is generally used to
identify which type of 7-segment display it is. As each LED has two connecting
pins, one called the “Anode” and the other called the “Cathode”.
There
are two types of seven segments:
1) Common Cathode
2) Common Anode
1)
Common Cathode: In the common cathode
display, all the cathode connections of the LED segments are joined together to
logic 0 or ground. The individual segments are illuminated by application of a HIGH,
or logic 1 signal via a current limiting resistor to forward bias the
individual Anode terminals (a-g).
2) Common
Anode: In the common anode display, all the anode connections of
the LED segments are joined together to logic “1”. The individual segments are
illuminated by applying a ground, logic “0” or “LOW” signal via a suitable
current limiting resistor to the Cathode of the particular segment (a-g).
PIN Diagram of 7 segment:
7 Segment Display Segments for all Numbers:
Hexadecimal encodings
for 7 Segment common cathode:
Digit
|
gfedcba
|
abcdefg
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
0
|
0×3F
|
0×7E
|
on
|
on
|
on
|
on
|
on
|
on
|
off
|
1
|
0×06
|
0×30
|
off
|
on
|
on
|
off
|
off
|
off
|
off
|
2
|
0×5B
|
0×6D
|
on
|
on
|
off
|
on
|
on
|
off
|
on
|
3
|
0×4F
|
0×79
|
on
|
on
|
on
|
on
|
off
|
off
|
on
|
4
|
0×66
|
0×33
|
off
|
on
|
on
|
off
|
off
|
on
|
on
|
5
|
0×6D
|
0×5B
|
on
|
off
|
on
|
on
|
off
|
on
|
on
|
6
|
0×7D
|
0×5F
|
on
|
off
|
on
|
on
|
on
|
on
|
on
|
7
|
0×07
|
0×70
|
on
|
on
|
on
|
off
|
off
|
on
|
off
|
8
|
0×7F
|
0×7F
|
on
|
on
|
on
|
on
|
on
|
on
|
on
|
9
|
0×6F
|
0×7B
|
on
|
on
|
on
|
on
|
off
|
on
|
on
|
A
|
0×77
|
0×77
|
on
|
on
|
on
|
off
|
on
|
on
|
on
|
b
|
0×7C
|
0×1F
|
off
|
off
|
on
|
on
|
on
|
on
|
on
|
C
|
0×39
|
0×4E
|
on
|
off
|
off
|
on
|
on
|
on
|
off
|
d
|
0×5E
|
0×3D
|
off
|
on
|
on
|
on
|
on
|
off
|
on
|
E
|
0×79
|
0×4F
|
on
|
off
|
off
|
on
|
on
|
on
|
on
|
F
|
0×71
|
0×47
|
on
|
off
|
off
|
off
|
on
|
on
|
on
|
Hexadecimal encodings
for 7 Segment common anode:
Interfacing of seven
segment with 8051:
Circuit Diagram:
Program
to display 0 to 9 on seven segment common cathode:
1)
ASM code:
$mod51
org 00h
mov p1,#3fh
acall delay
mov p1,#06h
acall delay
mov p1,#5bh
acall delay
mov p1,#4fh
acall delay
mov p1,#66h
acall delay
mov p1,#6dh
acall delay
mov p1,#7dh
acall delay
mov p1,#47h
acall delay
mov p1,#7fh
acall delay
mov p1,#6fh
acall delay
delay:
mov r0,#255
L3: mov r1,#255
L2: mov r2,#50
L1: djnz r2,L1
djnz r1,L2
djnz r0,L3
ret
end
2) C code:
#include<reg51.h>
unsigned int i, j, k;
void delay( );
unsigned char
arr[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x47,0x7f,0x6f};
void main( )
{
for(i=0;i<=9;i++)
{
P1=arr[i];
delay();
}
}
void delay( )
{
for(j=0;j<=60000;j++);
}
3) Simulation on proteus:
Program to display 0 to 99 on seven segment common cathode:
1) ASM code:
$mod51
org 00h
mov p1,#3fh
acall L1
mov p1,#06h
acall L1
mov p1,#5bh
acall L1
mov p1,#4fh
acall L1
mov p1,#66h
acall L1
mov p1,#6dh
acall L1
mov p1,#7dh
acall L1
mov
p1,#47h
acall L1
mov p1,#7fh
acall L1
mov p1,#6fh
acall L1
L1:
mov p2,#3fh
acall delay
mov p2,#06h
acall delay
mov p2,#5bh
acall delay
mov p2,#4fh
acall delay
mov p2,#66h
acall delay
mov p2,#6dh
acall delay
mov p2,#4dh
acall delay
mov
p2,#47h
acall delay
mov p2,#7fh
acall delay
mov p2,#6fh
acall delay
delay:
mov r0,#255
L4:
mov r1,#255
L3:
mov r2,#20
L2:
djnz r2,L2
djnz r1,L3
djnz r0,L4
ret
end
2) C code:
#include<reg51.h>
unsigned int i, j, k;
void delay( );
unsigned char
arr[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x47,0x7f,0x6f};
void main( )
{
for(i=0;i<=9;i++)
{
P1=arr[i];
for(i=0;k<=9;k++)
{
P2=arr[k];
delay();
}
}
}
void delay( )
{
for(j=0;j<=60000;j++);
}
3) Simulation on proteus:
Program to display 0 to 999 on seven segment common cathode:
1) ASM code:
$mod51
org 00h
mov p3,#3fh
acall
L2
mov p3,#06h
acall L2
mov p3,#5bh
acall L2
mov p3,#4fh
acall L2
mov p3,#66h
acall L2
mov p3,#6dh
acall L2
mov p3,#7dh
acall L2
mov p3,#47h
acall L2
mov p3,#7fh
acall L2
mov p3,#6fh
acall L2
l2:
mov p1,#3fh
acall L1
mov
p1,#06h
acall L1
mov p1,#5bh
acall L1
mov p1,#4fh
acall L1
mov p1,#66h
acall L1
mov p1,#6dh
acall L1
mov p1,#7dh
acall L1
mov p1,#47h
acall L1
mov p1,#7fh
acall L1
mov p1,#6fh
acall L1
L1:
mov p2,#3fh
acall delay
mov p2,#06h
acall
delay
mov p2,#5bh
acall delay
mov p2,#4fh
acall delay
mov p2,#66h
acall delay
mov p2,#6dh
acall delay
mov p2,#4dh
acall delay
mov p2,#47h
acall delay
mov p2,#7fh
acall delay
mov p2,#6fh
acall delay
delay:
mov r0,#25
L4:
mov r1,#25
L3:
mov r2,#20
L21:
djnz r2,L21
djnz r1,L3
djnz r0,L4
ret
end
C code:
#include<reg51.h>
unsigned int i, j, k,m;
void delay( );
unsigned char
arr[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x47,0x7f,0x6f};
void main( )
{
for(i=0;i<=9;i++)
{
P3=arr[i];
for(k=0;k<=9;k++)
{
P1=arr[k];
for(m=0;m<=9;m++)
{
P2=arr[m];
delay();
}
}
}
}
void delay( )
{
for(j=0;j<=60000;j++);
}
0 comments:
Post a Comment
if you have any doubt please let me know