当前位置:文档之家› 矩阵键盘输入多位数

矩阵键盘输入多位数

#include
#define uchar unsigned char
#define uint unsigned int

uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar we[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar key1 = 0,key2 = 0;
uchar num =17;
void delay(uchar x)
{
int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar a,uchar b)
{
P2=0x40;
P0=we[0];
P2=0x60;
P0=table[a];
delay(3);

P2=0x40;
P0=we[1];
P2=0x60;
P0=table[b];
delay(3);
}

void matrixkeyscan1()
{
uchar temp;
P3=0x7f;
temp=P3;

if(temp!=0x7f)
{
delay(10);
temp=P3;
if(temp!=0x7f)
{
switch(temp)
{
case 0x7e:num=0;break;
case 0x7d:num=1;break;
case 0x7b:num=2;break;
case 0x77:num=3;break;
default :num = 17;break;
}

while(temp!=0x7f)
{
delay(10);
P3=0x7f;
temp=P3;
}



}
}

P3=0xbf;
temp=P3;
if (temp!=0xbf)
{
delay(10);
temp=P3;

if(temp!=0xbf)
{
switch(temp)
{
case 0xbe:num=4;break;
case 0xbd:num=5;break;
case 0xbb:num=6;break;
case 0xb7:num=7;break;
default :num = 17;break;
}

while(temp!=0xbf)
{
delay(10);
P3=0xbf;
temp=P3;
}




}
}

P3=0xdf;
temp=P3;
if(temp!=0xdf)
{
delay(10);
temp=P3;
if(temp!=0xdf)
{
switch(temp)
{
case 0xde:num=8;break;
case 0xdd:num=9;break;
case 0xdb:num=10;break;
case 0xd7:num=11;break;
default :num = 17;break;
}
while(temp!=0xdf)
{
delay(10);
P3=0xdf;
temp=P3;
}

}
}
}

void main()
{
P2=0x20;
P0=0x00;

while(1)
{
matrixkeyscan1();

if(num ==11 )
{
// matrixkeyscan1();
num=17;
while(num == 17)
{
matrixkeyscan1();
if(num < 10)
key2 = num;
display(key1,key2);
}

num = 17;
while(num == 17)
{
matrixkeyscan1();
if(num < 10)
key1 = num;
display(key1,key2);
}
}
//display(key1,key2);
// delay(2);

}
}

相关主题
文本预览
相关文档 最新文档