|
谁能帮我分析一下这个矩阵键盘的扫描函数。我最后一句看不出
[复制链接]
#include
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xee,0xed,0xeb,0xe7,
0xde,0xdd,0xdb,0xd7,
0xbe,0xbd,0xbb,0xb7,
0x7e,0x7d,0x7b,0x77,};
uchar code tab1[]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,
0X80,0X90,0xa0,0x83,0xc9,0x86,0xc1,0xe1};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar i,j;
void scan();
void display();
void main()
{
SCON=0;
while(1)
{
scan();
display();
}
}
void scan()
{
uchar temp,temp1;
P0=0xf0;
if(P0!=0xf0)
{
delay(3);
if(P0!=0xf0)
{
temp1=P0;
P0=0x0f;
temp=temp1|P0;
}
}
for(i=0;i<16;i++)
{
if(temp==tab) break;
}
}
void display()
{
for(j=0;j<6;j++)
{
SBUF=tab1;
while(!TI);
TI=0;
}delay(100);
}
|
|