您的位置 首页 解答

AT89S52键盘程序

//返回键值/********************************************************************///键盘扫描子程序获取键值函数/********

//回来键值

/********************************************************************/

//键盘扫描子程序 获取键值函数

/****************************************************************************/

uchar keyscan(void)

{ uchar temp;

P0=0xfe; //榜首行置低

temp=P0;

temp&=0xf0;

if(temp!=0xf0)

{

delay_nms(10);

if(temp!=0xf0)

{

switch(temp) //依据列线获取榜首行的键值

{

case 0xe0: key=3; break;

case 0xd0: key=2; break;

case 0xb0: key=1; break;

case 0x70: key=0; break;

}

}

}

P0=0xfd; //扫描第二行,置低

temp=P0;

temp&=0xf0;

if(temp!=0xf0)

{

delay_nms(10);

if(temp!=0xf0)

{

switch(temp)

{

case 0xe0: key=7; break;

case 0xd0: key=6; break;

case 0xb0: key=5; break;

case 0x70: key=4; break;

}

}

}

P0=0xfb; //扫描第三行,置低

temp=P0;

temp&=0xf0;

if(temp!=0xf0)

{

delay_nms(10);

if(temp!=0xf0)

{

switch(temp)

{

case 0xe0: key=11; break;

case 0xd0: key=10; break;

case 0xb0: key=9; break;

case 0x70: key=8; break;

}

}

}

P0=0xf7; //扫描第四行,置低

temp=P0;

temp&=0xf0;

if(temp!=0xf0)

{

delay_nms(10);

if(temp!=0xf0)

{

switch(temp)

{

case 0xe0: key=15; break;

case 0xd0: key=14; break;

case 0xb0: key=13; break;

case 0x70: key=12; break;

}

}

}

else

{

;

}

return(key);

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/272770.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部