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

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