- 3
- 0
- 约4.4千字
- 约 5页
- 2019-07-05 发布于未知
- 举报
NBCPIC-V2.0—矩阵键盘部分
北方蓝芯科技开发有限公司
NBCPIC-V2.0 使用手册
目 录
矩阵键盘原理及硬件介绍3
EX6.1、4X4 键盘扫描4
2 北方蓝芯科技开发有限公司
NBCPIC-V2.0 使用手册
矩阵键盘原理及硬件介绍
矩阵键盘部分电路和实物图片如下所示。
矩阵键盘部分电路
矩阵键盘由行线和列线组成,J6_1 、J6_2 、J6_3 、J6_4 对应键盘的行线,J6_5 、J6_6 、J6_7 、
J6_8 对应键盘的列线。矩阵键盘通过扫描来获得键盘的输入值,所谓扫描,就是对行线置低电平,
然后检测列线的状态,如果某个按键按下,则某个列线将变为低电平状态,从而确定是哪个按键按
下。例如将行线J6_1 置低电平,读得列线J6_6 为低电平,可判断是S2 按下。
矩阵键盘电路实物图
3 北方蓝芯科技开发有限公司
NBCPIC-V2.0 使用手册
EX6.1、4X4 键盘扫描
实验源程序:
//***********************************************************************************
//矩阵键盘扫描函数
//***********************************************************************************
void keyScan()
{
uchar x,y;
PORTC=0xf0; //RC 赋值0xf0
if((PORTC0xf0)!=0xf0) //判断高4 位是否为全1(高4 位全1 代表没按键按下)
{
delay(20); /*延时去抖动,一般为 5ms~10ms (由于机械触点的
弹性作用,按键
在闭合时不会马上稳定地接通, 而在闭合瞬间伴
随有一连串的抖
动,键抖动会引起一次按键被误读多次)*/
if((PORTC0xf0)!=0xf0) //如果还能检测到有键盘按下去
{
x=PORTC0xf0; //读取RC 口数据
PORTC=0x0f; //反转,RC 赋值0x0f
y=PORTC0x0f; //读取RC 口数据
keyValue=x|y; //得到扫描结果
}
}
}
//***********************************************************************************
//矩阵键盘扫描结果处理函数
//******** ***************************************************************************
uchar keyHandle
原创力文档

文档评论(0)