Professional Documents
Culture Documents
LCD and Key Pad Interfacing
LCD and Key Pad Interfacing
h>
sbit rs=P3^0 ;
sbit rw=P3^1;
sbit en=P3^2;
sbit R0=P2^0;
sbit R1=P2^1;
sbit R2=P2^2;
sbit R3=P2^3;
sbit C0=P1^0;
sbit C1=P1^1;
sbit C2=P1^2;
sbit C3=P1^3;
void lcdcmd(void);
void delay(void);
void displayCMD(void);
void INIT(void);
void DisplayMSG(void);
void ClearLCD(void);
unsigned char keyb(void);
void delay2(void);
void main(void)
{
unsigned j=0;
INIT();
DisplayMSG();
while(1){
j=keyb();
P0=0X8E;
lcdcmd();
delay();
P0=j;
displayCMD();
delay2();
delay2();
delay2();
j=keyb();
P0=j;
displayCMD();
delay2();
delay2();
delay2();
}
}
void INIT(void)
{
P0=0X38;
lcdcmd();
P0=0X0f;
lcdcmd();
P0=0X01;
lcdcmd();
void lcdcmd(void)
{
delay();
rs=0;
rw=0;
en=1;
delay();
en=0;
return;
}
void displayCMD(void)
{
delay();
rs=1;
rw=0;
en=1;
delay();
en=0;
}
void delay(void)
{
unsigned int j;
for(j=0;j<100;j++);
}
void DisplayMSG(void)
{
char *P,t;
P=&MSG1;
P0=0X80;
lcdcmd();
for(t=0;t<16;t++)
{
P0=*P++;
displayCMD();
delay();
}
void ClearLCD(void)
{
P0=0X01;
lcdcmd();
}
P2=0x0f;
P1=0x0f;
CHECKKEY:
if (C0==1)
if (C1==1)
if (C2==1)
if (C3==1) goto CHECKKEY;
R0=1;
R1=0;
R2=0;
R3=0;
if (C0==0) KEY=0x30;
if (C1==0) KEY=0x31;
if (C2==0) KEY=0x32;
if (C3==0) KEY=0x33;
R0=0;
R1=1;
R2=0;
R3=0;
if (C0==0) KEY=0x34;
if (C1==0) KEY=0x35;
if (C2==0) KEY=0x36;
if (C3==0) KEY=0x37;
R0=0;
R1=0;
R2=1;
R3=0;
if (C0==0) KEY=0x38;
if (C1==0) KEY=0x39;
if (C2==0) KEY=0x41;
if (C3==0) KEY=0x42;
R0=0;
R1=0;
R2=0;
R3=1;
if (C0==0) KEY=0x43;
if (C1==0) KEY=0x44;
if (C2==0) KEY=0x45;
if (C3==0) KEY=0x46;
return(KEY);
}
void delay2(void)
{
unsigned int j,k;
for(j=0;j<650;j++){
for(k=0;k<65;k++);
}
}