Monday, 23 July 2018

Interfacing Array of LED’s with ARM Microcontroller (LPC2148)

Aim:

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. The main aim of this project is how to interface a single LED to LPC2148 microcontroller.
images (1)

Description:

Interfacing LED:
Fig. 1 shows how to interface the LED to microcontroller. As you can see the Cathode is connected through a resistor to GND & the Anoode is connected to the Microcontroller pin. So when the Port Pin is HIGH the LED is ON & when the Port Pin is LOW the LED is turned OFF.
intetrface led
Interfacing LED with LPC2148
We now want to flash a LED in LPC2148 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 LPC2148 board has eight numbers of point LEDs, connected with I/O Port lines to make port pins high.
Pin Assignment with LPC2148
Point LEDsLPC2148  directionLPC2148 LinesLED SelectionConnections
DIGITAL OUTPUTSLED.0 IODIRx=0x01IOSETx=0x01dddConnect Any one PORT from
PORT0, PORT1
LED.1IODIRx=0x02IOSETx=0x02
LED.2IODIRx=0x04IOSETx=0x04
LED.3IODIRx=0x08IOSETx=0x08
LED.4IODIRx=0x10IOSETx=0x10
LED.5IODIRx=0x20IOSETx=0x20
LED.6IODIRx=0x40IOSETx=0x40
LED.7DDRx=0x80IOSETx=0x80

Block Diagram

2.interfacing array of leds

Schematic:


Code:

// ***********************************************************
// Project: Interfacing Single LED to LPC2148
// Author: Hack Projects
// Module description: Operate array of LED's
// ***********************************************************
#include<lpc214x.h>
void delay_ms(double ms)
{
 unsigned int i,j;
 for(i=0;i<ms;i++)
 for(j=0;j<1000;j++);
}
int main()
{
 PINSEL0=0x00000000;
 PINSEL1=0x00000000;
 PINSEL2=0x00000000;
 IO0DIR=0xff;
 while(1)
 {
  IO0SET=0xff;
  delay_ms(1000);
  IO0CLR=0xff;
  delay_ms(1000);
 }
}

Downloads:

The code was compiled in Keil uvision4 and simulation was made in Proteus v7.7.
To download code and proteus simulation click here.

Further Reading suggestions:

No comments:

Post a Comment