You have no items in your shopping cart.

Subtotal: 0.00

How to Interface LEDs with 8051 Advanced Development Board

8051 Advanced Development board

The 8051 Advanced Development board is specifically designed to help students to master the required skills in the area of embedded systems. The kit is designed in such way that all the possible features of the microcontroller will be easily used by the students. The kit supports in system programming (ISP) which is done through serial port.

NXP’s 8051 (AT89V51RD2), 8051 Advanced Development Kit is proposed to smooth the progress of developing and debugging of various designs encompassing of speed 8-bit Microcontrollers.

LED (Light Emitting Diodes)

Light Emitting Diodes (LED) is the most commonly used components, usually for displaying pins digital states. Typical uses of LEDs include alarm devices, timers and confirmation of user input such as a mouse click or keystroke.

Interfacing LED

Fig. 1 shows how to interface the LED to microcontroller. As you can see the Anode is connected through a resistor to GND & the Cathode is connected to the Microcontroller pin. So when the Port Pin is HIGH the LED is OFF & when the Port Pin is LOW the LED is turned ON.



Fig. 1 Interfacing LED to Microcontroller

 

Interfacing LED with 8051

We now want to flash a LED in 8051 Advanced Development board. It works by turning ON a LED & then turning it OFF & then looping back to START. However the operating speed of microcontroller is very high so the flashing frequency will also be very fast to be detected by human eye.

The 8051 Advanced Development board has eight numbers of point LEDs, connected with I/O Port lines (P1.0 – P1.7) to make port pins high.

Pin Assignment with 8051



 

Point LEDs

8051 Lines

LED Selection

DIGITAL OUTPUTS

LED1

P1.0





LED2

P1.1

LED3

P1.2

LED4

P1.3

LED5

P1.4

LED6

P1.5

LED7

P1.6

LED8

P1.7

 



Circuit Diagram to Interface LED with 8051





Source Code

The Interfacing LED with 8051 program is very simple and straight forward, that uses a delay procedure loop based software delay. In C programs you cannot be sure of delay, because it depends on compiler how it optimizes the loops as soon as you make changes in the options the delay changes.

C Program to switch ON and OFF LED using 8051

***************************************************************************************

Title : Program to Blink LEDs

***************************************************************************************

#include 

#include 

#define LED P1

//define prot P0 for LED void delay(void);

//Delay function void led_left(void);

//LED_Left void led_right(void);

//LED_Right unsigned int j;

//----------------------------------

//LED LEFT FUNCTIONS

//----------------------------------

void led_left()

{

for (j=0x01; j<=0x80; j<<=1)

{

LED = j;

delay();

}

}

//----------------------------------

//LED RIGHT FUNCTIONS

//----------------------------------

void led_right()

{

for (j=0x40; j>=0x01; j>>=1)

{

LED = j;

delay();

}

}

//----------------------------------

//Delay Functions

//----------------------------------

void delay(void)

{

unsigned int i;

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

}

//----------------------------------

// Main Program Starts

//----------------------------------

void main (void)

{

LED = 0x00;

//Initialize to 0x00 while (1)

//Loop forever

{

led_left();

//scroll left delay();

led_right();

//scroll right

}

}