#include <reg51.h>
#define COL P2
#define ROW P0
void MSDelay(unsigned int vaulue);
void SerTx(unsigned char);
// void lcddata(unsigned char value);
unsigned char keypad[4][4]= {'0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F'};
void main()
{
unsigned char colloc, rowloc;
TMOD=0X20;
TH1=-3;
SCON=0X50;
TR1=1;
COL=0xFF;
while(1)
{
do
{
ROW=0x00;
colloc =COL;
colloc &=0x0F;
}
while(colloc!=0x0F);
do
{
do
{
MSDelay(20);
colloc=COL;
colloc&=0x0F;
}
while(colloc==0x0F);
MSDelay(20);
colloc=COL;
colloc&=0x0F;
}
while(colloc==0x0F);
while(1)
{
ROW=0xFE;
colloc=COL;
colloc&=0x0F;
if(colloc!=0x0F)
{
rowloc=0;
break;
}
ROW=0xFD;
colloc=COL;
colloc&=0x0F;
if(colloc!=0x0F)
{
rowloc=1;
break;
}
ROW=0xFB;
colloc=COL;
colloc&=0x0F;
if(colloc!=0x0F)
{
rowloc=2;
break;
}
ROW=0xF7;
colloc=COL;
colloc&=0x0F;
rowloc=3;
break;
}
if (colloc==0x0E)
SerTx(keypad[rowloc][0]);
else if(colloc==0x0D)
SerTx(keypad[rowloc][1]);
else if(colloc==0x0B)
SerTx(keypad[rowloc][2]);
else
SerTx(keypad[rowloc][3]);
}
}
void SerTx(unsigned char x)
{
SBUF=x;
while(TI==0);
TI=0;
}
void MSDelay(unsigned int value)
{
unsigned int x, y;
for(x=0;x<1275;x++)
for(y=0;y<value;y++);
}
#define COL P2
#define ROW P0
void MSDelay(unsigned int vaulue);
void SerTx(unsigned char);
// void lcddata(unsigned char value);
unsigned char keypad[4][4]= {'0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F'};
void main()
{
unsigned char colloc, rowloc;
TMOD=0X20;
TH1=-3;
SCON=0X50;
TR1=1;
COL=0xFF;
while(1)
{
do
{
ROW=0x00;
colloc =COL;
colloc &=0x0F;
}
while(colloc!=0x0F);
do
{
do
{
MSDelay(20);
colloc=COL;
colloc&=0x0F;
}
while(colloc==0x0F);
MSDelay(20);
colloc=COL;
colloc&=0x0F;
}
while(colloc==0x0F);
while(1)
{
ROW=0xFE;
colloc=COL;
colloc&=0x0F;
if(colloc!=0x0F)
{
rowloc=0;
break;
}
ROW=0xFD;
colloc=COL;
colloc&=0x0F;
if(colloc!=0x0F)
{
rowloc=1;
break;
}
ROW=0xFB;
colloc=COL;
colloc&=0x0F;
if(colloc!=0x0F)
{
rowloc=2;
break;
}
ROW=0xF7;
colloc=COL;
colloc&=0x0F;
rowloc=3;
break;
}
if (colloc==0x0E)
SerTx(keypad[rowloc][0]);
else if(colloc==0x0D)
SerTx(keypad[rowloc][1]);
else if(colloc==0x0B)
SerTx(keypad[rowloc][2]);
else
SerTx(keypad[rowloc][3]);
}
}
void SerTx(unsigned char x)
{
SBUF=x;
while(TI==0);
TI=0;
}
void MSDelay(unsigned int value)
{
unsigned int x, y;
for(x=0;x<1275;x++)
for(y=0;y<value;y++);
}
No comments:
Post a Comment