KEYPAD PROGRAM FOR ARM7 LPC2129


                    KEYPAD PROGRAM FOR ARM7 LPC2129


PROFGRAM FOR PRINTING PHONE KEY-PAD 

#include<lpc21xx.h>
#define ROW (0Xf<<17)//r1 r2 r3 r4
 #define COL (0Xf<<21)//c1 c2 c3 c4

void delay(int count)
{
int i,j;
for(i=0;i<count;i++)
{
for(j=0;j<5000;j++)
{
}
}
}

void lcdcmd(int cmd)
{
IOCLR0=(0xff<<15);
IOSET0=(cmd<<15);
IOCLR0=(1<<10);//rs
IOCLR0=(1<<12); //RW
IOSET0=(1<<13);//EN
delay(30);
IOCLR0=(1<<13);//EN

}

void lcddata(char data)
  {
  IOCLR0=(0xff<<15);
 IOSET0=(data<<15);
IOSET0=(1<<10);//rs
IOCLR0=(1<<12); //RW
IOSET0=(1<<13);//EN
delay(30);
IOCLR0=(1<<13);//EN
  }

void lcdstr(char *str)
{
 while(*str)
 {
 lcddata(*str);
 str++;

 }
 }
  void row()
{
int C_VAL;

IODIR1 |=COL;
IOCLR1 =COL;
IODIR1&=~(ROW);
C_VAL=IOPIN1&(ROW);
C_VAL>>=17;
switch(C_VAL)
 {
case 0x0e: lcdstr("1");
break;
case 0x0d: lcdstr("2");
break;
case 0x0b: lcdstr("3");
break;
case 0x07: lcdstr("4");
break;
default: break;

}
}
 void row1()
{
int C_VAL;

IODIR1 |=COL;
IOCLR1 =COL;
IODIR1&=~(ROW);
C_VAL=IOPIN1&(ROW);
C_VAL>>=17;
switch(C_VAL)
 {
case 0x0e: lcdstr("5");
break;
case 0x0d: lcdstr("6");
break;
case 0x0b: lcdstr("7");
break;
case 0x07: lcdstr("8");
break;
default: break;

}
   }
    void row2()
{
int C_VAL;

IODIR1 |=COL;
//IOCLR1 =COL;
IODIR1&=~(ROW);
C_VAL=IOPIN1&(ROW);
C_VAL>>=17;
switch(C_VAL)
 {
case 0x0e: lcdstr("9");
break;
case 0x0d: lcdstr("a");
break;
case 0x0b: lcdstr("b");
break;
case 0x07: lcdstr("c");
break;
default: break;

}
   }
    void row3()
{
int C_VAL;

IODIR1 |=COL;
//IOCLR1 =COL;
IODIR1&=~(ROW);
C_VAL=IOPIN1&(ROW);
C_VAL>>=17;
switch(C_VAL)
 {
case 0x0e: lcdstr("d");
break;
case 0x0d: lcdstr("e");
break;
case 0x0b: lcdstr("f");
break;
case 0x07: lcdstr("g");
break;
default: break;

}
   }
int main()
{
 
int C_VAL;
IODIR0|=(1<<10)|(1<<12)|(1<<13)|(0xff<<15);
lcdcmd(0x38);
   lcdcmd(0x0E);
     lcdcmd(0x01);
   lcdcmd(0x80);
   
while(1)
{
lcdcmd(0xc0);
IODIR1 |=ROW;
//IOCLR1 =ROW;
IODIR1&=~(COL);
C_VAL=IOPIN1&(COL);
C_VAL>>=21;
switch(C_VAL)
{
case 0x0e:
row();

break;
case 0x0d:
row1();
break;
case 0x0b:
row2();
break;
case 0x07:
row3();
break;
default:break;
}
}
}

Comments

Popular posts from this blog

READING VALUES FROM SENSOR AND THAT WRITING TO EEPROM

Smart Power management system in any management system

project for checking status of lights very day 12 :11 am