Embedded - Kit Experiments
Embedded - Kit Experiments
Aim- Write a program to glow LED in different patterns Using ARM Embedded System Microcontroller Board.
//******************************************************************************
// LED Test on ARM7 Development Board
//
//******************************************************************************
// Microcontroller: LPC2148
// Compiler: Keil
// Target Hardware: ARM7 Universal Development Board
// Company: ADVANCE TECH (I) PVT. LTD
// Author : Prateek Gupta
//******************************************************************************
// Description
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
The firmware demonstrates the basic blinking LED experiment. All the LEDs // on-board blink at an
interval of 1 second.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Hardware Settings for ARM7 Development Board
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
Microcontroller:LPC2148
// Ext.Oscillator: 12 MHz
// PINOUT: LED - LPC2148
// ------------------ //
LED1 - P1.16
// LED2 - P1.17
// LED3 - P1.18
// LED4 - P1.19
// LED5 - P1.20
// LED6 - P1.21
// LED7 - P1.22 //
LED8 - P1.23
//***************************************************************************
//**************************INCLUDES********************************************
#include <LPC214x.h>
#include"delay.h"
//**********************End of INCLUDES*****************************************
//******************************************************************************
//******************************************************************************
// Microcontroller: LPC2148
// Compiler: Keil
// Target Hardware: ARM7 Universal Development Board
// Company: ADVANCE TECH (I) PVT. LTD
// Author : Prateek Gupta
//******************************************************************************
// Description
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// The firmware demonstrates the basic functionality of LCD 16X2 (CLCD) in 8-bit // Interface
for the ARM7 development Board. The firmware initializes the // CLCD as defined in the user
settings and displays a message on it.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Hardware Settings for ARM7 Development Board
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Microcontroller:LPC2148
// Ext.Oscillator: 12 MHz
// PINOUT: LCD - LPC2148
// ----------------- //
DB0 - P1.16
// DB1 - P1.17
// DB2 - P1.18
// DB3 - P1.19
// DB4 - P1.20
// DB5 - P1.21
// DB6 - P1.22
// DB7 - P1.23
// RS - P1.24
// E - P1.25
// R/W - GND
//***************************************************************************
//**************************INCLUDES********************************************
#include <LPC214x.h>
//////////////////////////USER SETTINGS//////////////////////////////////
#define DATA_PORT_SET IOSET1
#define DATA_PORT_CLR IOCLR1
#define DATA_DIR IODIR1
#define D7 23
#define D6 22
#define D5 21
#define D4 20
#define D3 19
#define D2 18
#define D1 17
#define D0 16
//Set data port pins
#define DATA_PORT (unsigned long)((1<<D7)|(1<<D6)|(1<<D5)|(1<<D4))|((1<<D3)|(1<<D2)|(1<<D1)|(1<<D0)) #define
CTRL_PORT_SET IOSET1
#define CTRL_PORT_CLR IOCLR1
#define CTRL_DIR IODIR1
#define CTRL_RS 24
#define CTRL_EN 25
unsigned char arr[] = {0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xff, 0xef}; IODIR0 =
0xffffffff; while(1)
{
for(a=0;a<=9;a++) delay.h
{ void delay_us(unsigned int count)
for(b=0;b<=9;b++) {
{ volatile unsigned int j,k;
for(c=0;c<=9;c++) for (j=0;j<count;j++)
{ {
for(d=0;d<=9;d++) for (k=0;k<10;k++)
{ {
for(e=0;e<=50;e++) __asm
{ {
IOCLR0 = 0xFFFFFFFF; nop;
IOSET0 = arr[d]<<16 | 0x0100; }
delay_ms(2); }
IOCLR0 = 0xFFFFFFFF; }
IOSET0 = arr[c]<<16 | 0x0200; void delay_ms(unsigned int count)
delay_ms(2); {
IOCLR0 = 0xFFFFFFFF; volatile unsigned int j,k;
IOSET0 = arr[b]<<16 | 0x0400; for (j=0;j<count;j++)
delay_ms(2); {
IOCLR0 = 0xFFFFFFFF; for (k=0;k<6000;k++)
IOSET0 = arr[a]<<16 | 0x0800; delay_ms(2); {
} __asm
} {
} nop;
} nop;
} }
} }
} }
}
Experiment-21
Aim- Write a program to control the speed of Stepper Motor Using ARM Embedded System Microcontroller Board.
#include"lpc214x.h" #include"delay.h"
delay.h
#define m1 16 #define m2 19 void delay_us(unsigned int count)
#define m3 17 {
#define m4 18 volatile unsigned int j,k;
#define PORT_SET IOSET1 for (j=0;j<count;j++)
#define PORT_CLR IOCLR1 #define DIR IODIR1 {
for (k=0;k<10;k++)
int main() { {
char i; __asm
DIR |= (1<<m1)|(1<<m2) | (1<<m3)|(1<<m4); PORT_CLR = {
(1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); while(1) nop;
{ for(i=0;i<12;i++) }
{ }
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); }
PORT_SET = (1<<m1); delay_ms(1000); void delay_ms(unsigned int count)
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); {
PORT_SET = (1<<m2); delay_ms(1000); volatile unsigned int j,k;
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); for (j=0;j<count;j++)
PORT_SET = (1<<m3); delay_ms(1000); {
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); for (k=0;k<6000;k++)
PORT_SET = (1<<m4); {
delay_ms(1000); __asm
} {
for(i=0;i<12;i++) nop;
{ nop;
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); }
PORT_SET = (1<<m4); delay_ms(1000); }
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); }
PORT_SET = (1<<m3); delay_ms(1000); }
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4);
PORT_SET = (1<<m2); delay_ms(1000);
PORT_CLR = (1<<m1) | (1<<m2)|(1<<m3) | (1<<m4); PORT_SET =
(1<<m1);
delay_ms(1000);
}
}
}