您的位置 首页 新品

4X4矩阵键盘操控LED —-AT89C51

#includereg51.h>#includeintrins.h>#defineucharunsignedchar#defineuintunsignedint/*键盘按键特征码*//*这

#include

#include
#define uchar unsigned char
#define uint unsigned int
/*键盘按键特征码*/
/*这儿的特征码与详细的硬件衔接有关*/
uchar code keycodetable[]={0x11,0x12,0x14,0x18,
0x21,0x22,0x24,0x28,
0x41,0x42,0x44,0x48,
0x81,0x82,0x84,0x88};
void delayms(uint x)
{ uchar i;
while(x–) for(i=0;i<120;i++);
}
uchar key_scan()
{
uchar scode,kcode,i,k;
P1=0xf0;
if((P1&0xf0)!=0xf0)
{
delayms(2); /*延时,消除按键颤动*/
if((P1&0xf0)!=0xf0)
{
scode=0xfe;
for(k=0;k<4;k++)
{
P1=scode;
if((P1&0xf0)!=0xf0)
{
kcode=~P1; /*读取键值*/
for(i=0;i<16;i++) /*查找键值表*/
if(kcode==keycodetable[i])
return(i);
}
else
scode=_crol_(scode,1); /*左移,低位补1,由scode的高位补到低位*/
}
}
}
return (-1);
}
void main()
{
uchar i,p2_led,p3_led;
uchar keyno=-1;
while(1)
{
keyno=key_scan();
if(keyno!=-1)
{
p2_led=0xff;
p3_led=0xff;
for(i=0;i
{
if(i<8)
p3_led>>=1;
else
p2_led>>=1;
}
P3=p3_led;
P2=p2_led;
}
}
}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部