Friday, May 25, 2012

Program for Keypad interface with 8051 and Displayed on LCD

#include<8051.h>
#include
#define EN P1_7
#define RW P1_6
#define RS P1_5
#define DL P3
#define c0 P2_0
#define c1 P2_1
#define c2 P2_2
#define c3 P2_3
#define r1 P2_4
#define r2 P2_5
#define r3 P2_6
#define r4 P2_7

void delay(int time);
void lcd_init();
void cmd(char cmdbyte);
void dataa(char ch);
void clear();
void mov_cur(char pos);
void writeat(char ch,char pos);
void enterword();

void delay(int time)
{
int i,j;
for(i=0;i
{
for(j=0;j
{
}
}
}

void cmd(char cmdbyte)
{
EN=1;
RW=0;
RS=0;
DL=cmdbyte;
EN=0;
delay(10);
}

void dataa(char ch)
{
EN=1;
RW=0;
RS=1;
DL=ch;
EN=0;
delay(10);
}

void lcd_init()
{
cmd(0x38);
cmd(0x05);
cmd(0x0F);
cmd(0x06);
}

void clear()
{
cmd(0x01);
}

void mov_cur(char pos)
{
cmd(pos);
}

void keypad()
{
if ((r1==0) && (r2==1) && (r3==1) && (r4==1))
{
if ((c0==0) && (c1==1) && (c2==1) && (c3==1))
{
dataa('a');
}
if ((c0==1) && (c1==0) && (c2==1) && (c3==1))
{
dataa('b');
}
if ((c0==1) && (c1==1) && (c2==0) && (c3==1))
{
dataa('c');
}
if ((c0==1) && (c1==1) && (c2==1) && (c3==0))
{
dataa('d');
}
}
if ((r1==1) && (r2==0) && (r3==1) && (r4==1))
{
if ((c0==0) && (c1==1) && (c2==1) && (c3==1))
{
dataa('e');
}
if ((c0==1) && (c1==0) && (c2==1) && (c3==1))
{
dataa('f');
}
if ((c0==1) && (c1==1) && (c2==0) && (c3==1))
{
dataa('g');
}
if ((c0==1) && (c1==1) && (c2==1) && (c3==0))
{
dataa('h');
}
}
if ((r1==1) && (r2==1) && (r3==0) && (r4==1))
{
if ((c0==0) && (c1==1) && (c2==1) && (c3==1))
{
dataa('i');
}
if ((c0==1) && (c1==0) && (c2==1) && (c3==1))
{
dataa('j');
}
if ((c0==1) && (c1==1) && (c2==0) && (c3==1))
{
dataa('k');
}
if ((c0==1) && (c1==1) && (c2==1) && (c3==0))
{
dataa('l');
}
}
if ((r1==1) && (r2==1) && (r3==1) && (r4==0))
{
if ((c0==0) && (c1==1) && (c2==1) && (c3==1))
{
dataa('m');
}
if ((c0==1) && (c1==0) && (c2==1) && (c3==1))
{
dataa('n');
}
if ((c0==1) && (c1==1) && (c2==0) && (c3==1))
{
dataa('o');
}
if ((c0==1) && (c1==1) && (c2==1) && (c3==0))
{
dataa('p');
}
}
}

void main()
{
P1=0xFF;
P2=0xFF;
P3=0xFF;
lcd_init();
clear();
RW=0;
keypad();
delay(10);
}

No comments: