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).
Interfacing of seven segment with LPC2148:
C Code: for 0-9
#include<lpc214x.h>
void delay(int );
int i;
unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int main()
{
IO0DIR=IO0DIR|0xff;
while(1)
{
for(i=0;i<=9;i++)
{
IO0SET=IO0SET|a[i];
delay(1000);
IO0CLR=IO0CLR|a[i];
}
}
return 0;
}
void delay(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<=1000;j++);
}
Simulation of seven segments:
C Code: for 0-99:
#include<lpc21xx.h>
void delay(unsigned int c)
{unsigned int a;
for(a=1;a<=60000;a++);}
int main()
{
PINSEL0=0x00000000;
PINSEL1=0x00000000;
PINSEL2=0x00000000;
IO0DIR|=0xffffffff;
while(1)
{ unsigned long int j;
int i,a[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
for(j=0;j<10;j++)
{ IO0SET=IO0SET|a[j];
for(i=0;i<10;i++)
{
IO0SET= IO0SET|(a[i]<<8);
delay(100000);
IO0CLR= IO0CLR|(a[i]<<8);
}
IO0CLR=a[j];
}
}
}
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:
C Code: for 0-9
#include<lpc214x.h>
void delay(int );
int i;
unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int main()
{
IO0DIR=IO0DIR|0xff;
while(1)
{
for(i=0;i<=9;i++)
{
IO0SET=IO0SET|a[i];
delay(1000);
IO0CLR=IO0CLR|a[i];
}
}
return 0;
}
void delay(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<=1000;j++);
}
Simulation of seven segments:
C Code: for 0-99:
#include<lpc21xx.h>
void delay(unsigned int c)
{unsigned int a;
for(a=1;a<=60000;a++);}
int main()
{
PINSEL0=0x00000000;
PINSEL1=0x00000000;
PINSEL2=0x00000000;
IO0DIR|=0xffffffff;
while(1)
{ unsigned long int j;
int i,a[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
for(j=0;j<10;j++)
{ IO0SET=IO0SET|a[j];
for(i=0;i<10;i++)
{
IO0SET= IO0SET|(a[i]<<8);
delay(100000);
IO0CLR= IO0CLR|(a[i]<<8);
}
IO0CLR=a[j];
}
}
}
C Code: for 0-999:
#include<lpc21xx.h>
void delay(unsigned int c)
{unsigned int a;
for(a=1;a<=60000;a++);}
int main()
{
PINSEL0=0x00000000;
PINSEL1=0x00000000;
PINSEL2=0x00000000;
IO0DIR|=0xffffffff;
while(1)
{ unsigned long int j,k;
int i,a[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
for(j=0;j<10;j++)
{ IO0SET=IO0SET|a[j];
for(i=0;i<10;i++)
{
IO0SET= IO0SET|(a[i]<<8);
for(k=0;k<=9;k++)
{ IO0SET= IO0SET|(a[k]<<16);
delay(100000);
IO0CLR= IO0CLR|(a[k]<<16);
}
IO0CLR= IO0CLR|(a[i]<<8);
}
IO0CLR=a[j];
}
}
}
C Code: for 0-99: using multiplexing
#include<lpc21xx.h>
void delay(unsigned int c)
{unsigned int a;
for(a=1;a<=60000;a++);}
int main()
{
PINSEL0=0x00000000;
PINSEL1=0x00000000;
PINSEL2=0x00000000;
IO0DIR|=0xffffffff;
while(1)
{
int i,a[]={0x13f,0x106,0x15B,0x14F,0x166,0x16D,0x17D,0x107,0x17F,0x16F};
int j,b[]={0x23f,0x206,0x25B,0x24F,0x266,0x26D,0x27D,0x207,0x27F,0x26F};
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
{ IO0SET=a[i];
delay(100000);
IO0CLR=a[i];
IO0SET=b[j];
delay(100000);
delay(100000);
delay(100000);
delay(100000);
IO0CLR=b[j];
}}
}}
you can also for loop
ReplyDeletelike this
for(int i=0;i<10;i++)