4 4矩阵键盘c语言,单片机4×4矩阵键盘设计方案

7、C语言源程序

#include

unsigned char code table[]={0x3f,0x66,0x7f,0x39,

0x06,0x6d,0x6f,0x5e,

0x5b,0x7d,0x77,0x79,

0x4f,0x07,0x7c,0x71};

void main(void)

{ unsigned char i,j,k,key;

while(1)

{ P3=0xff; //给P3口置1//

P3_4=0; //给P3.4这条线送入0//

i=P3;

i=i&0x0f; //屏蔽低四位//

if(i!=0x0f) //看是否有按键按下//

{ for(j=50;j>0;j--) //延时//

for(k=200;k>0;k--);

if(i!=0x0f) //再次判断按键是否按下//

{ switch(i) //看是和P3.4相连的四个按键中的哪个//

{ case 0x0e:

key=0;

break;

case 0x0d:

key=1;

break;

case 0x0b:

key=2;

break;

case 0x07:

key=3;

break;

}

P0=table[key]; //送数到P0口显示//

}

}

P3=0xff;

P3_5=0; //读P3.5这条线//

i=P3;

i=i&0x0f; //屏蔽P3口的低四位//

if(i!=0x0f) //读P3.5这条线上看是否有按键按下//

{ for(j=50;j>0;j--) //延时//

for(k=200;k>0;k--);

i=P3; //再看是否有按键真的按下//

i=i&0x0f;

if(i!=0x0f)

{ switch(i) //如果有,显示相应的按键//

{ case 0x0e:

key=4;

break;

case 0x0d:

key=5;

break;

case 0x0b:

key=6;

break;

case 0x07:

key=7;

break;

}

P0=table[key]; //送入P0口显示//

}

}

P3=0xff;

P3_6=0; //读P3.6这条线上是否有按键按下//

i=P3;

i=i&0x0f;

if(i!=0x0f)

{ for(j=50;j>0;j--)

for(k=200;k>0;k--);

i=P3;

i=i&0x0f;

if(i!=0x0f)

{ switch(i)

{ case 0x0e:

key=8;

break;

case 0x0d:

key=9;

break;

case 0x0b:

key=10;

break;

case 0x07:

key=11;

break;

}

P0=table[key];

}

}

P3=0xff;

P3_7=0; //读P3.7这条线上是否有按键按下//

i=P3;

i=i&0x0f;

if(i!=0x0f)

{ for(j=50;j>0;j--)

for(k=200;k>0;k--);

i=P3;

i=i&0x0f;

if(i!=0x0f)

{ switch(i)

{ case 0x0e:

key=12;

break;

case 0x0d:

key=13;

break;

case 0x0b:

key=14;

break;

case 0x07:

key=15;

break;

}

P0=table[key];

}

}

}

}

8、注意事项

在硬件电路中,要把8联拨动拨码开关JP2拨下,把8联拨动拨码开关JP3拨上去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值