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
Post a Comment