一、电路图
1、独立键盘
当选择独立键盘时,应该将J13的2,3引脚用跳帽连接,可以使S4、S5、S6、S7这四个按键接入电路。
//实现代码
sbit S4 = P3^3;
sbit S5 = P3^2;
sbit S6 = P3^1;
sbit S7 = P3^0;
//将这四个引脚赋给我们所定义的变量
void scankeys()
{
if (S4 == 0)
{
}
if (S5 == 0)
{
}
if (S6 == 0)
{
}
if (S7 == 0)
{
}
}
2、矩阵键盘
当选择独立键盘时,应该将J13的1,2引脚用跳帽连接,可以使16个按键都接入电路。
//实现代码
//如果使用的是reg52.h,还需再写一行代码
sfr P4 = 0xc0;
//行
sbit r1 = P3^0;
sbit r2 = P3^1;
sbit r3 = P3^2;
sbit r4 = P3^3;
//列
sbit c1 = P4^4;
sbit c2 = P4^2;
sbit c3 = P3^5;
sbit c4 = P3^4;
void scankeys()
{
r1 = 0;
r2 = r3 = r4 = 1;
c1 = c2 = c3 = c4 = 1; //目的是扫描第一行
if(c1 == 0) //第一行第一列S7是否被按下,等于0是按下
{
}
if(c2 == 0) //第一行第二列S11是否被按下,等于0是按下
{
}
if(c3 == 0) //第一行第三列S15是否被按下,等于0是按下
{
}
if(c4 == 0) //第一行第四列S19是否被按下,等于0是按下
{
}
r2 = 0;
r1 = r3 = r4 = 1;
c1 = c2 = c3 = c4 = 1; //目的是扫描第二行
if(c1 == 0) //第二行第一列S6是否被按下,等于0是按下
{
}
if(c2 == 0) //第二行第二列S10是否被按下,等于0是按下
{
}
if(c3 == 0) //第二行第三列S14是否被按下,等于0是按下
{
}
if(c4 == 0) //第二行第四列S18是否被按下,等于0是按下
{
}
r3 = 0;
r1 = r2 = r4 = 1