Sunteți pe pagina 1din 33

SEVEN SEGMENT

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 (g).

COMMON ANODE METHOD

TASK 1

LPC 2148 interfacing with 7 Segment

#include<LPC21XX.H>

void delay() // delay function

int j;

for(j=0;j<25000;j++);

int main()

IO0DIR =0X000000FF; // 7 pin as output and other as input of port0

while(1)

IO0SET =0xC0;//DISPLAY 0

delay();

IO0CLR =0XC0;//CLEAR 0

IO0SET =0xF9;//DISPLAY 1

delay();

IO0CLR =0XF9;//CLEAR 1

IO0SET =0xA4;//DISPLAY 2

delay();

IO0CLR =0XA4;//CLEAR 2
IO0SET =0xB0;//DISPLAY 3

delay();

IO0CLR =0XB0;//CLEAR 3

IO0SET =0x99;//DISPLAY 4

delay();

IO0CLR =0X99;//CLEAR 4

IO0SET =0x92;//DISPLAY 5

delay();

IO0CLR =0X92;//CLEAR 5

IO0SET =0x82;//DISPLAY 6

delay();

IO0CLR =0X82;//CLEAR 6

IO0SET =0xF8;//DISPLAY 7

delay();

IO0CLR =0XF8;//CLEAR 7

IO0SET =0x80;//DISPLAY 8

delay();

IO0CLR =0X80;//CLEAR 8

IO0SET =0x90;//DISPLAY 9

delay();

IO0CLR =0X90;//CLEAR 9

}
PROTEUS OUTPUT
TASK 2

LPC 2148 interfacing with 7 Segment using array

#include<LPC21XX.H>

void delay() // delay function

int j;

for(j=0;j<25000;j++);

unsigned int i;

unsigned int ar[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; // array

int main()

IO0DIR =0X000000FF; // 7 pin as output and other as input of port0

while(1)

for(i=0;i<10;i++)

IO0SET =ar[i];

delay();

IO0CLR =ar[i];

return 0;

}
PROTEUS OUTPUT
TASK 3

LPC2148 INTERFACING WITH SWITCH FORWARD AND REVERSE

#include<lpc214x.h>

#define SW (IOPIN0 & 0x00000100)//configuring P0.8 as input

void delay()

int i;

for(i=0;i<25000;i++);

int main()

IO0DIR=0x1FF;

while(1)

if(SW!=0)//Forward (0-9)

IOSET0=0xC0;//display 0

delay();

IOCLR0=0xC0;//clear 0

IOSET0=0xF9;//display 1

delay();

IOCLR0=0xF9;//clear 1

IOSET0=0xA4;//display 2

delay();

IOCLR0=0xA4;//clear 2

IOSET0=0xB0;//display 3

delay();
IOCLR0=0xB0;//clear 3

IOSET0=0x99;//display 4

delay();

IOCLR0=0x99;//clear 4

IOSET0=0x92;//display 5

delay();

IOCLR0=0x92;//clear 5

IOSET0=0x82;//display 6

delay();

IOCLR0=0x82;//clear 6

IOSET0=0xF8;//display 7

delay();

IOCLR0=0xF8;//clear 7

IOSET0=0x80;//display 8

delay();

IOCLR0=0x80;//clear 8

IOSET0=0x98;//display 9

delay();

IOCLR0=0x98;//clear 9

else //reverse 0-9

IOSET0=0x98;//display 9

delay();

IOCLR0=0x98;//clear 9

IOSET0=0x80;//display 8

delay();

IOCLR0=0x80;//clear 8
IOSET0=0xF8;//display 7

delay();

IOCLR0=0xF8;//clear 7

IOSET0=0x82;//display 6

delay();

IOCLR0=0x82;//clear 6

IOSET0=0x92;//display 5

delay();

IOCLR0=0x92;//clear 5

IOSET0=0x99;//display 4

delay();

IOCLR0=0x99;////clear 4

IOSET0=0xB0;//display 3

delay();

IOCLR0=0xB0;////clear 3

IOSET0=0xA4;//display 2

delay();

IOCLR0=0xA4;////clear 2

IOSET0=0xF9;//display 1

delay();

IOCLR0=0xF9;//clear 1

IOSET0=0xC0;//display 0

delay();

IOCLR0=0xC0;//clear 0

}
PROTEUS OUTPUT
TASK 4

(00-99) 7 SEGMENT DISPLAY

#include<lpc214x.h>

void abc();

void delay()

int i;
for(i=0;i<25000;i++);

int main()

IO0DIR=0xFFFF;

while(1)

IOSET0=0xC000;//display 0

abc();

delay();

IOCLR0=0xC000;//clear 0

IOSET0=0xF900;//display 1

abc();

delay();

IOCLR0=0xF900;//clear 1

IOSET0=0xA400;//display 2

abc();

delay();

IOCLR0=0xA400;//clear 2

IOSET0=0xB000;//display 3

abc();

delay();

IOCLR0=0xB000;//clear 3

IOSET0=0x9900;//display 4

abc();

delay();

IOCLR0=0x9900;//clear 4

IOSET0=0x9200;//display 5
abc();

delay();

IOCLR0=0x9200;//clear 5

IOSET0=0x8200;//display 6

abc();

delay();

IOCLR0=0x8200;//clear 6

IOSET0=0xF800;//display 7

abc();

delay();

IOCLR0=0xF800;//clear 7

IOSET0=0x8000;//display 8

abc();

delay();

IOCLR0=0x8000;//clear 8

IOSET0=0x9800;//display 9

abc();

delay();

IOCLR0=0x9800;//clear 9

void abc()

IOSET0=0xC0;//display 0

delay();

IOCLR0=0xC0;//clear 0

IOSET0=0xF9;//display 1

delay();
IOCLR0=0xF9;//clear 1

IOSET0=0xA4;//display 2

delay();

IOCLR0=0xA4;//clear 2

IOSET0=0xB0;//display 3

delay();

IOCLR0=0xB0;//clear 3

IOSET0=0x99;//display 4

delay();

IOCLR0=0x99;//clear 4

IOSET0=0x92;//display 5

delay();

IOCLR0=0x92;//clear 5

IOSET0=0x82;//display 6

delay();

IOCLR0=0x82;//clear 6

IOSET0=0xF8;//display 7

delay();

IOCLR0=0xF8;//clear 7

IOSET0=0x80;//display 8

delay();

IOCLR0=0x80;//clear 8

IOSET0=0x98;//display 9

delay();

IOCLR0=0x98;//clear 9

}
PROTEUS OUTPUT
TASK 5

(00-99) 7 SEGMENT DISPLAY (TRAFFIC SIGNALS)

#include<lpc214x.h>

void abc();

void delay()

int i;

for(i=0;i<25000;i++);

int main()

IO0DIR=0xFFFFF;

while(1)

IOSET0=0xC000;//display 0

IOSET0=0x10000;//red on

abc();

delay();

IOCLR0=0xC000;//clear 0

IOSET0=0xF900;//display 1

abc();

delay();

IOCLR0=0xF900;//clear 1

IOSET0=0xA400;//display 2

abc();

delay();

IOCLR0=0xA400;//clear 2
IOSET0=0xB000;//display 3

IOSET0=0x20000;//yellow on

IOCLR0=0x10000;//red OFF

abc();

delay();

IOCLR0=0xB000;//clear 3

IOSET0=0x9900;//display 4

abc();

delay();

IOCLR0=0x9900;//clear 4

IOSET0=0x9200;//display 5

abc();

delay();

IOCLR0=0x9200;//clear 5

IOSET0=0x8200;//display 6

abc();

delay();

IOCLR0=0x8200;//clear 6

IOSET0=0xF800;//display 7

IOSET0=0x40000;//Green on

IOCLR0=0x20000;//Yellow OFF

abc();

delay();

IOCLR0=0xF800;//clear 7

IOSET0=0x8000;//display 8

abc();

delay();

IOCLR0=0x8000;//clear 8
IOSET0=0x9800;//display 9

abc();

delay();

IOCLR0=0x9800;//clear 9

IOCLR0=0x40000;//Green OFF

void abc()

IOSET0=0xC0;//display 0

delay();

IOCLR0=0xC0;//clear 0

IOSET0=0xF9;//display 1

delay();

IOCLR0=0xF9;//clear 1

IOSET0=0xA4;//display 2

delay();

IOCLR0=0xA4;//clear 2

IOSET0=0xB0;//display 3

delay();

IOCLR0=0xB0;//clear 3

IOSET0=0x99;//display 4

delay();

IOCLR0=0x99;//clear 4

IOSET0=0x92;//display 5

delay();

IOCLR0=0x92;//clear 5

IOSET0=0x82;//display 6
delay();

IOCLR0=0x82;//clear 6

IOSET0=0xF8;//display 7

delay();

IOCLR0=0xF8;//clear 7

IOSET0=0x80;//display 8

delay();

IOCLR0=0x80;//clear 8

IOSET0=0x98;//display 9

delay();

IOCLR0=0x98;//clear 9

}
PROTEUS OUTPUT
TASK 6

(000-999) 7 SEGMENT DISPLAY

#include<lpc214x.h>

void abc();

void bcd();

void delay()

int i;

for(i=0;i<25000;i++);

int main()

IO0DIR=0xFFFFFF;

while(1)

IOSET0=0xC00000;//display 0

abc();

delay();

IOCLR0=0xC00000;//clear 0

IOSET0=0xF90000;//display 1

abc();

delay();

IOCLR0=0xF90000;//clear 1

IOSET0=0xA40000;//display 2

abc();

delay();

IOCLR0=0xA40000;//clear 2

IOSET0=0xB00000;//display 3
abc();

delay();

IOCLR0=0xB00000;//clear 3

IOSET0=0x990000;//display 4

abc();

delay();

IOCLR0=0x990000;//clear 4

IOSET0=0x920000;//display 5

abc();

delay();

IOCLR0=0x920000;//clear 5

IOSET0=0x820000;//display 6

abc();

delay();

IOCLR0=0x820000;//clear 6

IOSET0=0xF80000;//display 7

abc();

delay();

IOCLR0=0xF80000;//clear 7

IOSET0=0x800000;//display 8

abc();

delay();

IOCLR0=0x800000;//clear 8

IOSET0=0x980000;//display 9

abc();

delay();

IOCLR0=0x980000;//clear 9

}
}

void abc()

IOSET0=0xC000;//display 0

bcd();

delay();

IOCLR0=0xC000;//clear 0

IOSET0=0xF900;//display 1

bcd();

delay();

IOCLR0=0xF900;//clear 1

IOSET0=0xA400;//display 2

bcd();

delay();

IOCLR0=0xA400;//clear 2

IOSET0=0xB000;//display 3

bcd();

delay();

IOCLR0=0xB000;//clear 3

IOSET0=0x9900;//display 4

bcd();

delay();

IOCLR0=0x9900;//clear 4

IOSET0=0x9200;//display 5

bcd();

delay();

IOCLR0=0x9200;//clear 5

IOSET0=0x8200;//display 6
bcd();

delay();

IOCLR0=0x8200;//clear 6

IOSET0=0xF800;//display 7

bcd();

delay();

IOCLR0=0xF800;//clear 7

IOSET0=0x8000;//display 8

bcd();

delay();

IOCLR0=0x8000;//clear 8

IOSET0=0x9800;//display 9

bcd();

delay();

IOCLR0=0x9800;//clear 9

void bcd()

IOSET0=0xC0;//display 0

delay();

IOCLR0=0xC0;//clear 0

IOSET0=0xF9;//display 1

delay();

IOCLR0=0xF9;//clear 1

IOSET0=0xA4;//display 2

delay();

IOCLR0=0xA4;//clear 2

IOSET0=0xB0;//display 3
delay();

IOCLR0=0xB0;//clear 3

IOSET0=0x99;//display 4

delay();

IOCLR0=0x99;//clear 4

IOSET0=0x92;//display 5

delay();

IOCLR0=0x92;//clear 5

IOSET0=0x82;//display 6

delay();

IOCLR0=0x82;//clear 6

IOSET0=0xF8;//display 7

delay();

IOCLR0=0xF8;//clear 7

IOSET0=0x80;//display 8

delay();

IOCLR0=0x80;//clear 8

IOSET0=0x98;//display 9

delay();

IOCLR0=0x98;//clear 9

}
PROTEUS OUTPUT
TASK 7

7 SEGMENT DISPLAY + 2 SW + LEDS

#include<lpc21xx.h>

#define sw1 (IO0PIN&(1<<0))

#define sw2 (IO0PIN&(1<<1))

#define led (0xff<<2)

void delay()

int i;

for(i=0;i<25000;i++);

int data1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; // array data

int main()

{
int i=0;

IO0DIR=0XFFFFFFFD;

while(1)

if(sw1==1)

IO0SET=led;

delay();

delay();

IO0CLR=led;

delay();

if(sw2==0)

if(i==10)

i=0;

IO0SET=(data1[i]<<12);

delay();

IO0CLR=(data1[i]<<12);

i++;

}
PROTEUS OUTPUT

S-ar putea să vă placă și