0% found this document useful (0 votes)
21 views22 pages

All Codes Arm

Uploaded by

asha vkr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views22 pages

All Codes Arm

Uploaded by

asha vkr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Relay BUZZER LED

#include <lpc17xx.h>

#define SwitchPinNumber 11// port P2.11 connected to switch

#define LedPinNumber 19 //port 1.19-p1.26 connected to 8 leds

#define relayPinNumber 28 //port P1.28 connected to relay

#define buzzerPinNumber 27 //port P1.27 connected to buzzer

int main (void)

uint32_t switchStatus;

LPC_GPIO1->FIODIR = 0x1ff80000; /* P1.xx defined as Outputs */

LPC_GPIO1->FIOCLR = 0x1ff80000; /* turn off all the LEDs&relay&buzzer */

LPC_GPIO2->FIODIR = 0x00000000; /* P2.xx defined as input */

while(1)

/* Turn On all the leds and wait for one second */

switchStatus = (LPC_GPIO2->FIOPIN>>SwitchPinNumber) & 0x01 ; // Read the switch status

if(switchStatus == 0) //if switch pressed

LPC_GPIO1->FIOPIN = (1<<buzzerPinNumber)|(1<<relayPinNumber)|(1<<LedPinNumber);//turn on led,relay and


buzzer

else //if switch released

LPC_GPIO1->FIOPIN = (0<<buzzerPinNumber)|(0<<relayPinNumber)|(0<<LedPinNumber); //if switch


released led,relay,buzzer off

DC MOTOR

#include <lpc17xx.h>
void delay_ms(unsigned int ms)

unsigned int i,j;

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

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

#define SBIT_CNTEN 0 //counter enable

#define SBIT_PWMEN 2 //pwm 2 block enable

#define SBIT_PWMMR0R 1 //This bit is used to Reset PWMTC whenever it Matches PWMRx(x:0-6)

#define SBIT_PWMENA3 11 //This bit is used to enable/disable the PWM output for PWMx(x:1-6)

#define PWM_3 4 //P2_2 (0-1 Bits of PINSEL4)

int main(void)

int dutyCycle;

SystemInit();

/* Cofigure pins(P2_2 ) for PWM mode. */

LPC_PINCON->PINSEL4 = (1<<PWM_3) ;

/* Enable Counters,PWM module */

LPC_PWM1->TCR = (1<<SBIT_CNTEN) | (1<<SBIT_PWMEN);

LPC_PWM1->PR = 0x00; /* No Prescalar */

LPC_PWM1->MCR = (1<<SBIT_PWMMR0R); /*Reset on PWMMR0, reset TC if it matches MR0 */

LPC_PWM1->MR0 = 100; /* set PWM cycle(Ton+Toff)=100) */

/* Enable the PWM output pins for PWM_1-PWM_4(P2_0 - P2_3) */

LPC_PWM1->PCR = (1<<SBIT_PWMENA3);

while(1)

LPC_PWM1->MR3 = dutyCycle; /* Increase the dutyCycle from 0-100 */

delay_ms(5);
}

if(!(LPC_GPIO2->FIOPIN & 0x00000800))//if sw 23 pressed

while(!(LPC_GPIO2->FIOPIN & 0x00000800));

dutyCycle-=10; //decrement duty cycle 10%

if(dutyCycle<0)

dutyCycle=0;

else if(!(LPC_GPIO2->FIOPIN & 0x00001000)) //if SW 22 pressed

while(!(LPC_GPIO2->FIOPIN & 0x00001000));

dutyCycle+=10; //increment duty cycle 10%

if(dutyCycle>100)

dutyCycle=99;

STEPPER DIRECTION

#include "lpc17xx.h"

void delay();

void delay()

int i,j;

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

for(j=0;j<0x400;j++);
}

int main (void)

char rotate=0;

SystemInit();

LPC_GPIO0->FIODIR |= 0x00078000;

while(1)

if(rotate==1)

LPC_GPIO0->FIOPIN = 0x00008000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00010000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00020000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00040000 ;

delay();

else

LPC_GPIO0->FIOPIN = 0x00040000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00020000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00010000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00008000 ;

delay();
}

if(!(LPC_GPIO2->FIOPIN & 0x00000800))

while(!(LPC_GPIO2->FIOPIN & 0x00000800));

rotate=1;

else if(!(LPC_GPIO2->FIOPIN & 0x00001000))

while(!(LPC_GPIO2->FIOPIN & 0x00001000));

rotate=0;

STEP ANGLE

#include <lpc17xx.h>

void delay(unsigned int ms)

unsigned int i,j;

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

for(j=0;j<20000;j++); //delay subroutine

/* start the main program */

int main()

int cycle;

SystemInit(); //Clock and PLL configuration

LPC_GPIO0->FIODIR |= 0x00078000; //Configure the PORT0 pins as OUTPUT;


for(cycle=0; cycle<13; cycle++)// for loop condition for number of rotation.

LPC_GPIO0->FIOPIN = 0x00008000 ; // p0.15 pin

delay(100);

LPC_GPIO0->FIOPIN = 0x00010000 ;// p0.16 pin

delay(100);

LPC_GPIO0->FIOPIN = 0x00020000 ; // p0.17 pin

delay(100);

LPC_GPIO0->FIOPIN = 0x00040000 ;// p0.18 pin

delay(100);

TOGGLE LED

#include "lpc17xx.h"

#define Switch 11//p2.11

#define Led1 19//p1.19

#define Led2 20 //p1.20

#define Led3 21//p1.21

#define Led4 22 //p1.22

#define Led5 23//p1.23

#define Led6 24 //p1.24

#define Led7 25//p1.25

#define Led8 26 //p1.26

int main (void)

uint32_t switchStatus;

LPC_GPIO1->FIODIR = 0x07f80000; /* P1.xx defined as Outputs */

LPC_GPIO1->FIOCLR = 0x07f80000; /* turn off all the LEDs */

LPC_GPIO2->FIODIR = 0x00000000; /* P2.xx defined as Outputs */


while(1)

/* Turn On all the leds and wait for one second */

switchStatus = (LPC_GPIO2->FIOPIN>>Switch) & 0x01 ; // Read the switch status

if(switchStatus == 1) //Turn ON/OFF LEDs depending on switch status

LPC_GPIO1->FIOPIN = (1<<Led1)|(1<<Led2)|(1<<Led3)|(1<<Led4);//turn on 1st 4 leds (normal condition)

else

LPC_GPIO1->FIOPIN = (1<<Led5)|(1<<Led6)|(1<<Led7)|(1<<Led8);//turn on next 4 leds(switch


pressed)

TRIANGULAR WAVE

#include "LPC17xx.h"

uint32_t val;

int main()

SystemInit();

LPC_PINCON->PINSEL1 |= 0x02<<20; //p0.26 pinsel bits 20 and 21

while(1)

while(1)

val++;// increment values by 6

LPC_DAC->DACR=(val<<6);//send values to dac


if(val>=0x3ff)// if value exceeds 1024

break;

while(1)

val--; // decrement value by 6

LPC_DAC->DACR=(val<<6);// send value to dac

if(val<=0x000)// if value come down by 0

break;

SQUARE WAVE

#include "LPC17xx.h"

void delay(unsigned int ms)// delay subroutine

{ unsigned int i,j;

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

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

int main()

{ SystemInit();

LPC_PINCON->PINSEL1 |= 0x02<<20;//p0.26 pinsel bits 20 and 21

while(1)

{
LPC_DAC->DACR=0xffff;// send maximum values to dac

delay(20); // delay

LPC_DAC->DACR=0x0000;// send min values to dac

delay(20);

7SEGMENT

#include <lpc17xx.h>

void delay_ms(unsigned int ms)

unsigned int i,j;

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

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

/* start the main program */

int main()

SystemInit(); //Clock and PLL configuration

LPC_GPIO0->FIODIR = 0x00000100; //Configure the PORT0 pins as OUTPUT;

LPC_GPIO1->FIODIR = 0x00004713;

while(1)

{ LPC_GPIO0->FIOSET = 0x00000100; // Make all the Port pins as high

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00004000;// set g to make 0

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00004701;//set a,d,e,f,g to make 1

delay_ms(200);
LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000410;//set c,f to make 2

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000600;//set e and f to make 3

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000301;//set a,d,e to make 4

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000202;//set b,e to make 5

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000002;//set b to make 6

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00004700;//set d,e,f,g to make 7

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000000;//set all 0 to make 8

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000300;//set e to make 9

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000100;//set d to make A

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000003;//set a,b to make b


delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00004012;//set set b,c,g to make C

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000401;//set a,f to make d

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000012;//set b,c to make E

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x00004713;//clear all segments

LPC_GPIO1->FIOSET = 0x00000112;//set b,c,d to make F

delay_ms(200);

4x4 KEYPAD

#include "lpc17xx.h"

#include "lcd.h"

/////////////////////////////////////////////

// Matrix Keypad Scanning Routine

//

// COL1 COL2 COL3 COL4

// 0 1 2 3 ROW 1

// 4 5 6 7 ROW 2

// 8 9 A B ROW 3

// C D E F ROW 4

//////////////////////////////////////////////

#define COL1 0
#define COL2 1

#define COL3 4

#define COL4 8

#define ROW1 9

#define ROW2 10

#define ROW3 14

#define ROW4 15

#define COLMASK ((1<<COL1) |(1<< COL2) |(1<< COL3) |(1<< COL4))

#define ROWMASK ((1<<ROW1) |(1<< ROW2) |(1<< ROW3) |(1<< ROW4))

#define KEY_CTRL_DIR LPC_GPIO1->FIODIR

#define KEY_CTRL_SET LPC_GPIO1->FIOSET

#define KEY_CTRL_CLR LPC_GPIO1->FIOCLR

#define KEY_CTRL_PIN LPC_GPIO1->FIOPIN

/////////////// COLUMN WRITE /////////////////////

void col_write( unsigned char data )

unsigned int temp=0;

temp=(data) & COLMASK;

KEY_CTRL_CLR |= COLMASK;

KEY_CTRL_SET |= temp;

///////////////////////////////// MAIN ///////////////////////////////////////

int main (void)

unsigned char key, i;

unsigned char rval[] = {0x77,0x07,0x0d};

unsigned char keyPadMatrix[] =


{

'4','8','B','F',

'3','7','A','E',

'2','6','0','D',

'1','5','9','C'

};

SystemInit();

init_lcd();

KEY_CTRL_DIR |= COLMASK; //Set COLs as Outputs

KEY_CTRL_DIR &= ~(ROWMASK); // Set ROW lines as Inputs

lcd_putstring16(0,"Press HEX Keys..");

lcd_putstring16(1,"Key Pressed = ");

while (1)

key = 0;

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

// turn on COL output one by one

col_write(rval[i]);

// read rows - break when key press detected

if (!(KEY_CTRL_PIN & (1<<ROW1)))

break;

key++;

if (!(KEY_CTRL_PIN & (1<<ROW2)))

break;

key++;

if (!(KEY_CTRL_PIN & (1<<ROW3)))

break;

key++;
if (!(KEY_CTRL_PIN & (1<<ROW4)))

break;

key++;

if (key == 0x10)

lcd_putstring16(1,"Key Pressed = ");

else

{ lcd_gotoxy(1,14);

lcd_putchar(keyPadMatrix[key]);

LCD DISPLAY

#include "lpc17xx.h"

#include "lcd.h"

void Lcd_CmdWrite(unsigned char cmd);

void Lcd_DataWrite(unsigned char dat);

#define LCDRS 9

#define LCDRW 10

#define LCDEN 11

#define LCD_D4 19

#define LCD_D5 20

#define LCD_D6 21

#define LCD_D7 22

#define LcdData LPC_GPIO0->FIOPIN

#define LcdControl LPC_GPIO0->FIOPIN

#define LcdDataDirn LPC_GPIO0->FIODIR

#define LcdCtrlDirn LPC_GPIO0->FIODIR


#define LCD_ctrlMask ((1<<LCDRS)|(1<<LCDRW)|(1<<LCDEN))

#define LCD_dataMask ((1<<LCD_D4)|(1<<LCD_D5)|(1<<LCD_D6)|(1<<LCD_D7))

void delay(unsigned int count)

int j=0, i=0;

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

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

void sendNibble(char nibble)

LcdData&=~(LCD_dataMask); // Clear previous data

LcdData|= (((nibble >>0x00) & 0x01) << LCD_D4);

LcdData|= (((nibble >>0x01) & 0x01) << LCD_D5);

LcdData|= (((nibble >>0x02) & 0x01) << LCD_D6);

LcdData|= (((nibble >>0x03) & 0x01) << LCD_D7);

void Lcd_CmdWrite(unsigned char cmd)

sendNibble((cmd >> 0x04) & 0x0F); //Send higher nibble

LcdControl &= ~(1<<LCDRS); // Send LOW pulse on RS pin for selecting Command register

LcdControl &= ~(1<<LCDRW); // Send LOW pulse on RW pin for Write operation

LcdControl |= (1<<LCDEN); // Generate a High-to-low pulse on EN pin

delay(100);

LcdControl &= ~(1<<LCDEN);

delay(10000);

sendNibble(cmd & 0x0F); //Send Lower nibble

LcdControl &= ~(1<<LCDRS); // Send LOW pulse on RS pin for selecting Command register

LcdControl &= ~(1<<LCDRW); // Send LOW pulse on RW pin for Write operation

LcdControl |= (1<<LCDEN); // Generate a High-to-low pulse on EN pin


delay(100);

LcdControl &= ~(1<<LCDEN);

delay(1000);

void Lcd_DataWrite(unsigned char dat)

sendNibble((dat >> 0x04) & 0x0F); //Send higher nibble

LcdControl |= (1<<LCDRS); // Send HIGH pulse on RS pin for selecting data register

LcdControl &= ~(1<<LCDRW); // Send LOW pulse on RW pin for Write operation

LcdControl |= (1<<LCDEN); // Generate a High-to-low pulse on EN pin

delay(100);

LcdControl &= ~(1<<LCDEN);

delay(1000);

sendNibble(dat & 0x0F); //Send Lower nibble

LcdControl |= (1<<LCDRS); // Send HIGH pulse on RS pin for selecting data register

LcdControl &= ~(1<<LCDRW); // Send LOW pulse on RW pin for Write operation

LcdControl |= (1<<LCDEN); // Generate a High-to-low pulse on EN pin

delay(100);

LcdControl &= ~(1<<LCDEN);

delay(1000);

void lcd_clear( void)

Lcd_CmdWrite( 0x01 );

int lcd_gotoxy( unsigned char x, unsigned char y)

{ unsigned char retval = TRUE;


if( (x > 1) && (y > 15) )

{ retval = FALSE;

else

{ if( x == 0 ) Lcd_CmdWrite( 0x80 + y );

else if( x==1 ) Lcd_CmdWrite( 0xC0 + y );

return retval;

void lcd_putchar( unsigned char c )

Lcd_DataWrite( c );

void lcd_putstring( char *string )

while(*string != '\0')

lcd_putchar( *string );

string++;

void lcd_putstring16( unsigned char line, char *string )

unsigned char len = 16;

lcd_gotoxy( line, 0 );

while(*string != '\0' && len--)

lcd_putchar( *string );
string++;

void init_lcd( void )

LcdDataDirn |= LCD_dataMask; // Configure all the LCD pins as output

LcdCtrlDirn |= LCD_ctrlMask;

// Initialize Lcd in 4-bit mode

Lcd_CmdWrite(0x03);

delay(2000);

Lcd_CmdWrite(0x03);

delay(1000);

Lcd_CmdWrite(0x03);

delay(100);

Lcd_CmdWrite(0x2);

Lcd_CmdWrite(0x28);

Lcd_CmdWrite(0x0e);

Lcd_CmdWrite(0x06);

Lcd_CmdWrite(0x01);

delay(1); // display on }

LED ON AND OFF

#include <lpc17xx.h>

void delay_ms(unsigned int ms)

unsigned int i,j;

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

for(j=0;j<20000;j++);
}

/* start the main program */

int main()

SystemInit(); //Clock and PLL configuration

LPC_GPIO1->FIODIR = 0x07F80000; //Configure the PORT1 pins as OUTPUT;

while(1)

LPC_GPIO1->FIOSET = 0x07F80000; // Make all the Port pins as high

delay_ms(200);

LPC_GPIO1->FIOCLR = 0x07F80000; // Make all the Port pins as low

delay_ms(200);

stepper MOTOR CLOCKWISE 90 DEGREE

#include "lpc17xx.h"

void delay();

void delay()

int i,j;

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

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

int main (void)

SystemInit();

LPC_GPIO0->FIODIR |= 0x00078000;

while(1)

{
LPC_GPIO0->FIOPIN = 0x00008000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00010000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00020000 ;

delay();

LPC_GPIO0->FIOPIN = 0x00040000 ;

delay();

DC MOTOR

#include <lpc17xx.h>

void delay_ms(unsigned int ms)

unsigned int i,j;

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

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

}
#define SBIT_CNTEN 0

#define SBIT_PWMEN 2

#define SBIT_PWMMR0R 1

#define SBIT_PWMENA3 11

#define PWM_3 4 //P2_2 (0-1 Bits of PINSEL4)

int main(void)

int dutyCycle;

SystemInit();

/* Cofigure pins(P2_0 ) for PWM mode. */

LPC_PINCON->PINSEL4 = (1<<PWM_3) ;

/* Enable Counters,PWM module */

LPC_PWM1->TCR = (1<<SBIT_CNTEN) | (1<<SBIT_PWMEN);

LPC_PWM1->PR = 0x00; /* No Prescalar */

LPC_PWM1->MCR = (1<<SBIT_PWMMR0R); /*Reset on PWMMR0, reset TC if it matches MR0 */

LPC_PWM1->MR0 = 100; /* set PWM cycle(Ton+Toff)=100) */

/* Enable the PWM output pins for PWM_1-PWM_4(P2_0 - P2_3) */

LPC_PWM1->PCR = (1<<SBIT_PWMENA3);
while(1)

for(dutyCycle=0; dutyCycle<100; dutyCycle++)

LPC_PWM1->MR3 = dutyCycle; /* Increase the dutyCycle from 0-100 */

delay_ms(15);

for(dutyCycle=100; dutyCycle>0; dutyCycle--)

LPC_PWM1->MR3 = dutyCycle; /* Decrease the dutyCycle from 100-0 */

delay_ms(2);

You might also like