On & OFF CHIP Interfacing Codes
On & OFF CHIP Interfacing Codes
include<lpc21xx.h>
void delay(int);
int main()
{
IO0DIR=0x00000020;
while(1)
{
IO0SET=0x00000020;
delay(20000);
IO0CLR=0x00000020;
delay(20000);
}
}
void delay(int x)
{
int i;
for(i=0;i<x;i++);
}
#include<lpc21xx.h>
void command(unsigned int);
void data(unsigned int);
void delay(unsigned int);
int main()
{
unsigned char message[]= {"hello"};
unsigned int c[]={0x30,0x30,0x20,0x20,0x28,0x01,0x06,0x0e,0x89};
unsigned int i,j;
IO0DIR=0x000000fc;
for(i=0;i<9;i++)
{
command(c[i]);
delay(2000);
}
while(1)
{
command(0x89);
delay(2000);
for(j=0;j<5;j++)
{
data(message[j]);
delay(2000);
}
delay(2000);
command(0x10);
delay(2000);
}
}
void command(unsigned int x)
{
unsigned int y;
y=x;
y=y & 0x0f;
IO0CLR=0x000000fc;
IO0CLR=0x00000004;
IO0SET=y;
IO0SET=0x00000008;
delay(2000);
IO0CLR=0x00000008;
y=x;
y=y & 0x0f;
y=y<<4;
IO0CLR=0x00000004;
IO0SET=y;
IO0SET=0x00000008;
delay(2000);
IO0CLR=0x00000008;
}
void data(unsigned int a)
{
unsigned int b;
b=a;
b=b & 0x0f;
IO0CLR=0x000000fc;
IO0SET=0x00000004;
IO0SET=b;
IO0SET=0x00000008;
delay(100);
b=a;
b=b& 0x0f;
b=b<<4;
IO0CLR=0x000000fc;
IO0SET=0x00000004;
IO0SET=b;
IO0SET=0x00000008;
delay(100);
IO0CLR=0x00000008;
}
void delay(unsigned int x)
{
unsigned int i;
for(i=0;i<2000;i++);
}
Stepper motor
#include<lpc21xx.h>
void delay(unsigned int);
int main()
{
unsigned int x;
PINSEL2=0x0010000;
IO0DIR=0xf0000000;
IO1DIR=0x00000000;
x=IOPIN1;
x=x & 0x00f00000;
while(1)
{ if(x==0x00100000)
{
IO0SET=0x10000000;
delay(20000);
IO0CLR=0x10000000;
delay(20000);
IO0SET=0x20000000;
delay(20000);
IO0CLR=0x20000000;
delay(20000);
IO0SET=0x40000000;
delay(20000);
IO0CLR=0x40000000;
delay(20000);
IO0SET=0x80000000;
delay(20000);
IO0CLR=0x80000000;
delay(20000);
}
else
{
IO0SET=0x80000000;
delay(20000);
IO0CLR=0x80000000;
delay(20000);
IO0SET=0x40000000;
delay(20000);
IO0CLR=0x40000000;
delay(20000);
IO0SET=0x20000000;
delay(20000);
IO0CLR=0x20000000;
delay(20000);
IO0SET=0x10000000;
delay(20000);
IO0CLR=0x10000000;
delay(20000);
}
}
}
void delay(unsigned int x)
{
unsigned int i;
for(i=0;i<x;i++);
}
Arm c code to have led walking display from left to right and right to left
Program:
#include<lpc21xx.h>
int main()
unsigned char I;
PINSEL1=0x00000000;
IODIR0=0x000f0000;
while(1)
IOCLR0=0x00010000;
for(i=0;i<1000;i++);
IOSET0=0x00010000;
IOCLR0=0x00020000;
for(i=0;i<1000;i++);
IOSET0=0x00020000;
IOCLR0=0x00040000;
for(i=0;i<1000;i++);
IOSET0=0x00040000;
IOCLR0=0x00080000;
for(i=0;i<1000;i++);
IOSET0=0x00080000;
IOCLR0=0x00040000;
for(i=0;i<1000;i++);
IOSET0=0x00040000;
IOCLR0=0x00020000;
for(i=0;i<1000;i++);
IOSET0=0x00020000;
IOCLR0=0x00010000;
Program:
#include<lpc21xx.h>
int main()
unsigned char i;
PINSEL1=0x00000000;
IODIR0=0x000f0000;
while(1)
IOSET0=0x000f0000;
for(i=0;i<1000;i++);
IOCLR0=0x00080000;
for(i=0;i<1000;i++);
IOCLR0=0x00040000;
for(i=0;i<1000;i++);
IOCLR0=0x00020000;
for(i=0;i<1000;i++);
IOCLR0=0x000f0000;
for(i=0;i<1000;i++);
IOSET0=0x00080000;
for(i=0;i<1000;i++);
IOSET0=0x00040000;
for(i=0;i<1000;i++);
IOSET0=0x00020000;
for(i=0;i<1000;i++);
If ‘s’-stepper motor
If ‘d’-DC motor
#include<LPC21xx.h>
void delay(void);
void serial(void);
int main()
while(1)
serial();
mg=U0RBR;
U0THR=mg;
delay();
if(mg=='s')
{
PINSEL0=0x0000000;
IODIR0=0xf0000000;
IOCLR0=0Xf0000000;
for(k=0;k<=25;k++)
{
IOSET0=0x10000000;
delay();
delay();
IOCLR0=0x10000000;
IOSET0=0x20000000;
delay();
delay();
IOCLR0=0x20000000;
IOSET0=0x40000000;
delay();
delay();
IOCLR0=0x40000000;
IOSET0=0x80000000;
delay();
delay();
IOCLR0=0x80000000;
else if(mg=='d')
{
PINSEL1=0x00000000;
IODIR0=0x00000C00;
IOCLR0=0x00000C00;
for(y=0;y<=15;y++)
{
IOSET0=0x00000400;
IOCLR0=0x00000800;
delay();
IOSET0=0x00000800;
IOCLR0=0x00000400;
delay();
}
}
}
void serial()
PINSEL0=0X00000005;
U0LCR=0X83;
U0DLL=0X61;
U0LCR=0X03;
void delay()
unsigned int i;
for(i=0;i<1000000;i++);
PROGRAM:
#include<lpc21xx.h>
void delay(void);
void serial(void);
void cmd(unsigned int);
void data(unsigned int);
int main()
{ unsigned char mg;
unsigned int c[]={0x30,0x30,0x20,0x20,0x28,0x01,0x06,0x0e,0x89};
unsigned char i,j;
unsigned int k,m;
unsigned char msg[]={"BVB"};
PINSEL0=0x00000000;
IODIR0=0x000000fc;
IOCLR0=0x000000fc;
serial();
for(k=0;k<3;k++)
{
while(!(U0LSR&0x20));
U0THR=msg[k];
}
while(!(U0LSR&0x01));
mg=U0RBR;
U0THR=mg;
delay();
for(i=0;i<9;i++)
{
cmd(c[i]);
delay();
}
while(1)
{
cmd(0xc0);
delay();
for(j=0;j<3;j++)
{
data(msg[j]);
for(m=0;m<500;m++);
}
for(m=0;m<65000;m++);
for(m=0;m<65000;m++);
for(m=0;m<65000;m++);
cmd(0x01);
for(m=0;m<65000;m++);
for(m=0;m<65000;m++);
for(m=0;m<65000;m++);
for(m=0;m<65000;m++);
}
}
void serial()
{
PINSEL0=0x00000005;
U0LCR=0x83;
U0DLL=0x61;
U0LCR=0x03;
}
void cmd(unsigned int value)
{
unsigned int y,m;
y=value;
y=y & 0xf0;
IOCLR0=0x000000fc;
IOCLR0=0X00000004;
IOSET0=y;
IOSET0=0x00000008;
for(m=0;m<10;m++);
IOCLR0=0x00000008;
y=value;
y=y&0x0f;
y=y<<4;
IOCLR0=0x000000fc;
IOCLR0=0X00000004;
IOSET0=y;
IOSET0=0x00000008;
for(m=0;m<10;m++);
IOCLR0=0x00000008;
}
void data(unsigned int data)
{
unsigned int y,m;
y=data;
y=y & 0xf0;
IOCLR0=0x000000fc;
IOSET0=0X00000004;
IOSET0=y;
IOSET0=0x00000008;
for(m=0;m<10;m++);
IOCLR0=0x00000008;
y=data;
y=y & 0x0f;
y=y<<4;
IOCLR0=0x000000fc; IOSET0=0X00000004;
IOSET0=y;
IOSET0=0x00000008;
for(m=0;m<10;m++);
IOCLR0=0x00000008;
}
void delay()
{
unsigned int l;
for(l=0;l<10000;l++);
}
ARM C program for displaying 0-99 on seven segment
#include<lpc21xx.h>
int delay1();
void delay()
{
int i;
for(i=0;i<2000000;i++);
}
main()
{
int j;
int
b[10]={0x003f0000,0x0006000,0x005b0000,0x004f0000,0x00660000,0x006d0000,0x007d0000,0x00
700000,0x007f0000,0x006f0000};
for(j=0;j<10;j++)
{
IO0DIR=0x10FF0000;
IO0SET=0x10000000;
IO0SET=b[j];
delay1();
}
}
int delay1()
{ int i;
int
a[10]={0x003f0000,0x0006000,0x005b0000,0x004f0000,0x00660000,0x006d0000,0x007d0000,0x00
700000,0x007f0000,0x006f0000};
for(i=0;i<10;i++)
{
IO0DIR=0x20FF0000;
IO0SET=0x20000000;
IO0SET=a[i];
delay();
IO0CLR=a[i];
delay();
}
}
// ARM C code using 4x4 keypad to find LCM and GCD of a given two numbers based on choice of
following keys
Key10:LCM
Key15:GCD
#include<stdio.h>
#include<lpc214x.h>
int main()
PINSEL1=0x00000000;
IO1DIR=0xfff0ffff;
IODIR0=0X10FF0000;
IOSET0=0X10000000;
while(1)
IOPIN1=0x00ff0000;
IOCLR1=0x00100000;
value=IOPIN1;
delay(50000);
value=value&0x00ff0000;
for(i=0;i<4;i++)
if(value==row0[i])
display(i);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
IOPIN1=0x00ff0000;
IOCLR1=0x00200000;
value=IOPIN1;
delay(50000);
value=value&0x00ff0000;
for(i=0;i<4;i++)
if(value==row1[i])
display(i+4);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
IOPIN1=0x00ff0000;
IOCLR1=0x00400000;
value=IOPIN1;
delay(50000);
value=value&0x00ff0000;
if(value==row2[1])
i=lcm(1,4);
display(i);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
IOPIN1=0x00ff0000;
IOCLR1=0x00800000;
value=IOPIN1;
delay(50000);
value=value&0x00ff0000;
if(value==row3[3])
i=gcd(10,12);
display(i);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
unsigned int i;
for(i=0;i<k;i++);
}
void display(int temp)
int a[10]={0x003f0000,0x00060000,0x005b0000,0x004f0000,0x00660000,
0x006d0000,0x007d0000,0x00070000,0x007f0000,0x006f0000};
j=temp%10;
i=temp/10;
IOCLR0=0x00ff0000;
for(k=0;k<30000;k++)
IOSET0=a[j]|0x20000000;
delay(150);
IOCLR0=a[j]|0x20000000;
delay(150);
IOSET0=a[i]|0x10000000;
delay(150);
IOCLR0=a[i]|0x10000000;
delay(150);
if(a==0||b==0)
return 0;
if(a==b)
return a;
if(a>b)
return(gcd(a-b,b));
return (gcd(a,b-a));
return((a*b)/gcd(a,b));
If ' a ' is pressed - sort given array in half ascending and half descending format.
If ' b ' is pressed - sort given array in half descending and half ascending format.
CODE:
#include<lpc21xx.h>
void delay(void);
void serial(void);
unsigned char k;
int main()
unsigned int i;
serial();
for(i=0;i<29;i++)
{
U0THR = msg1[i];
mg = U0RBR;
U0THR = mg;
mg = mg - 48;
for(i=0;i<mg;i++)
number[i] = U0RBR;
U0THR = number[i];
delay();
for(i=0;i<35;i++)
U0THR = msg2[i];
k = U0RBR;
if(k == 'a')
{
a = number[i];
number[i] = number[j];
number[j] = a;
a = number[i];
number[i] = number[j];
number[j] = a;
if(k == 'b')
{
for (j = i + 1; j < mg/2; ++j)
a = number[i];
number[i] = number[j];
number[j] = a;
a = number[i];
number[i] = number[j];
number[j] = a;
for(i=0;i<mg;i++)
{
U0THR = number[i];
delay();
}
void serial(void)
{
PINSEL0 = 0x00000005;
U0LCR = 0x83;
U0DLL = 0x61;
U0LCR = 0x03;
void delay(void)
unsigned int i;
for(i=0;i<12000;i++);
Key2: scrolling display of message using both first and second line(circular fashion).
PROGRAM:
#include<lpc21xx.h>
int main(){
IODIR1 = 0xFFF0FFFF;
PINSEL1 = 0x00000000;
IODIR0 = 0xF0FF0000;
IOSET0 = 0xE0000000;
while(1){
IOPIN1 = 0x00ff0000;
IOCLR1 = 0x00100000;
val = IOPIN1;
delay(50000);
if(val==row0[i])
{
if(i==1)
d1(i);
else if(i==0)
d2(i);
unsigned int i;
unsigned int y;
y = value;
y = y & 0xf0;
IOCLR0 = 0x000000fc;
IOCLR0 = 0x00000004;
IOSET0 = y;
IOSET0 = 0x00000008;
delay(10);
IOCLR0 = 0x00000008;
y = value;
y = y & 0x0f;
y = y<<4;
IOCLR0 = 0x000000fc;
IOCLR0 = 0x00000004;
IOSET0 = y;
IOSET0 = 0x00000008;
delay(10);
IOCLR0 = 0x00000008;
unsigned int y;
y = dat;
y = y&0xf0;
IOCLR0 = 0x000000fc;
IOSET0 = 0x00000004;
IOSET0 = y;
IOSET0 = 0x00000008;
delay(10);
IOCLR0 = 0x00000008;
y = dat;
y = y&0x0f;
y = y<<4;
IOCLR0 = 0x000000fc;
IOSET0 = 0x00000004;
IOSET0 = y;
IOSET0 = 0x00000008;
delay(10);
IOCLR0 = 0x00000008;
unsigned int c[] = { 0x20, 0x20, 0x28,0x28, 0x01, 0x06, 0x0e, 0xcf};
PINSEL0 = 0x00000000;
IODIR0 = 0x000000fc;
IOCLR0 = 0x000000fc;
for(i=0; i<9;i++){
cmd(c[i]);
delay(10000);
}
while(1){
cmd(0xcf);
delay(1000000);
{
data(msg[j]);
cmd(0x10);
delay(1000000);
cmd(0x18);
delay(650000);
delay(650000);
delay(650000);
delay(650000);
delay(650000);
unsigned int c[] = { 0x20, 0x20, 0x28,0x28, 0x01, 0x06, 0x0e, 0x8f};
PINSEL0 = 0x00000000;
IODIR0 = 0x000000fc;
IOCLR0 = 0x000000fc;
for(i=0; i<9;i++){
cmd(c[i]);
delay(10000);
while(1){
cmd(0x8f);
delay(1000000);
{
data(msg[j]);
cmd(0x10);
delay(1000000);
cmd(0x18);
delay(650000);
delay(650000);
delay(650000);
delay(650000);
delay(650000);
break;
delay(650000);
delay(650000);
delay(650000);
delay(650000);
Program:
#include<lpc21xx.h>
int z=0,g=0,h=0;
int main()
IODIR1 = 0X00F00000;
PINSEL0=0x00000000;
IODIR0=0x000000FC;
IOCLR0=0x000000FC;
while(1)
{
IOPIN1=0x00ff0000;
IOCLR1=0x00100000;
value=IOPIN1;
delay(50000);
for(i=0; i<3;i++)
if(value==row0[0])
//temp1=row0[i];
//while(value==temp1)
disp(49);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
} }
if(value==row0[2])
if(z==3)
{
disp(51);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
z=0;
} //temp1=row0[i];
else
{//while(value==temp1)
disp(z+68);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
z++;}
}
if(value==row0[1])
if(g==3)
{
disp(50);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
g=0;
}
//temp1=row0[i];
//while(value==temp1)
else
{
disp(g+65);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
g++;
}
}
IO1PIN=0x00ff0000;
IOCLR1=0x00200000;
value=IOPIN1;
delay(50000);
delay(50000);
if(value==row1[0])
if(h==3)
{
disp(52);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
h=0;
}
//temp1=row0[i];
//while(value==temp1)
else
{
disp(h+71);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
h++;
} }
if(value==row1[1])
if(z==3)
{
disp(53);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
z=0;
} //temp1=row0[i];
else
{//while(value==temp1)
disp(z+74);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
z++;}
}
if(value==row1[2])
if(g==3)
{
disp(54);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
g=0;
}
//temp1=row0[i];
//while(value==temp1)
else
{
disp(g+77);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
g++;
}
} }
if(value==row2[0])
if(h==3)
{
disp(52);
delay(1275000);
delay(1275000);
delay(1275000);
h=0;
}
//temp1=row0[i];
//while(value==temp1)
else
{
disp(h+71);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
h++;
} }
if(value==row2[1])
if(z==3)
{
disp(53);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
z=0;
} //temp1=row0[i];
else
{//while(value==temp1)
disp(z+74);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
z++;}
}
if(value==row2[2])
if(g==3)
{
disp(54);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
g=0;
}
//temp1=row0[i];
//while(value==temp1)
else
{
disp(g+77);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
delay(1275000);
g++;
}
} }
unsigned char i;
PINSEL0=0x00000000;
IODIR0=0x000000FC;
IOCLR0=0x000000FC;
for(i=0;i<9;i++)
cmd(c[i]);
delay(10000);
delay(65000);
cmd(0x01);
delay(65000);
cmd(0x80);
delay(100000);
data(msg);
delay(50000);
//delay(50000);
delay(65000);
delay(65000);
//
//cmd(0x01);
delay(65000);
//delay(65000);
//delay(65000);
//delay(65000);
unsigned int y;
y=value;
IOCLR0=0x000000fc;
IOCLR0=0x00000004;
IOSET0=y;
IOSET0=0x00000008;
delay(10);
IOCLR0=0x00000008;
y=value;
y=y<<4;
IOCLR0=0x000000fc;
IOCLR0=0x00000004;
IOSET0=y;
IOSET0=0x00000008;
delay(10);
IOCLR0=0x00000008;
{
unsigned int y;
y=data;
IOCLR0=0x000000fc;
IOSET0=0x00000004;
IOSET0=y;
IOSET0=0x00000008;
delay(10);
IOCLR0=0x00000008;
y=data;
y=y<<4;
IOCLR0=0x000000fc;
IOSET0=0x00000004;
IOSET0=y;
IOSET0=0x00000008;
delay(10);
IOCLR0=0x00000008;
unsigned int k;
for(k=0;k<del;k++);
4x4 keypad controlled stepper motor and display the number of rotationgs on seven segment
Program:
#include<lpc21xx.h>
int main()
IO1DIR =0XFFF0FFFF;
PINSEL1=0x00000000;
IODIR0=0xf0ff0000;
IOSET0=0X20000000;
while(1)
IO1PIN=0x00ff0000;
IOCLR1=0x00100000;
value=IOPIN1;
delay(50000);
if(value==row0)
PINSEL0=0x00000000;
IODIR0=0xf0000000;
IOCLR0=0Xf0000000;
for(j=0;j<500;j++)
for(i=0;i<50;i++)
{
IOSET0=0x80000000;
delay(30000);
// delay(1000000);
IOCLR0=0xF0000000;
IOSET0=0x40000000;
delay(30000);
//delay(1000000);
IOCLR0=0xF0000000;
IOSET0=0x20000000;
delay(30000);
// delay(1000000);
IOCLR0=0xF0000000;
IOSET0=0x10000000;
delay(30000);
//delay(1000000);
IOCLR0=0x10000000;
disp(b);
b++;
0x007D0000,0x00070000,0x007F0000,0x006F0000,
0x00770000,0x007F0000,
0x00390000,0x003F0000,0x00790000,0x00710000};
unsigned int i;
i=temp;
PINSEL1=0X00000000;
IODIR0=0X30FF0000;
IOSET0=0X20000000;
IOSET0=da[i];
delay(65000);
delay(65000);
delay(65000);
delay(65000);
delay(65000);
IOCLR0=0X00FF0000;
{unsigned int k;
for(k=0;k<del;k++);
PROGRAM:
#include<lpc21xx.h>
#include<stdio.h>
int main()
unsigned char x;
PINSEL0=0X00000005;
U0LCR=0X83;
U0DLM=0X00;
U0DLL=0X61;
U0LCR=0X03;
while(1)
p=U0RBR;
U0THR=p;
p=p-48;
x=U0RBR;
if(x=='+')
b=U0RBR;
U0THR=b;
b=b-48;
c=p+b;
sprintf(a,"=%d \n",c);
while(a[i]!='\0')
U0THR=a[i];
i++;
else if(x=='-')
b=U0RBR;
U0THR=b;
b=b-48;
c=p-b;
sprintf(a,"=%d \n",c);
while(a[i]!='\0')
{
while(!(U0LSR & 0x20));
U0THR=a[i];
i++;
else if(x=='*')
b=U0RBR;
U0THR=b;
b=b-48;
c=p*b;
sprintf(a,"=%d \n",c);
while(a[i]!='\0')
U0THR=a[i];
i++;
else
b=U0RBR;
U0THR=b;
b=b-48;
c=p/b;
sprintf(a,"=%d \n",c);
while(a[i]!='\0')
U0THR=a[i];
i++;