关于三级4*4键盘说明
Posted Vanau
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于三级4*4键盘说明相关的知识,希望对你有一定的参考价值。
一般意义上的非标准键盘,通常设置为4*4阵列或者5*5阵列,现在单讲前者。关于具体的原理不必多说,主要是三级里面有这样的程序,加深印象,就此说明一下。
接口电路选择:
GPE0~3,行扫描,输出
GPE4~7,列扫描,输入
注:每行左侧均连一电至5V电源
//该端口为GPECON寄存器地址
#define KEYOUTPUT (*(volatile INT8U *)0x56000044)
#define KEYINPUT (*(volatile INT8U *)0x56000044)
INT16U KeyScan()
INT16U key=0xffff,i;
INT8U temp=0xff,output;
//端口寄存器配置
rGPECON=((rGPECON&0xffffff00)|0x00000055);
rGPECON=rGPECON&0xffff00ff;
//查询是否有按键落下
for(i=1;((i<=8)&&(i>0));i<<=1)
//这里的for加上下面三行指的是行扫描,也就是GPE0-3不断依次输出为0
output|=0xff;
output&=(~i);
KEYOUTPUT=output;
//检查列信号是否为0,当某一列为0的话,表示该按键被按下
temp=KEYINPUT;
if((temp&0xf0)!=0xf0)
key=(~i);
key<<=8;
//行信号移至高八位与低八位的列信号合并
key|=((temp&0xf0)|0x0f);
return key;
return 0xffff;
注:当然用16bit是比较麻烦的,用8bit组合更直观,只不过人家程序是这样做的。
再将所有返回的可能值组合排列成一个数组,通过查询该值对应的数字按键,即可转移到相应的程序中。
以上是关于关于三级4*4键盘说明的主要内容,如果未能解决你的问题,请参考以下文章