关于三级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键盘说明的主要内容,如果未能解决你的问题,请参考以下文章

STM324*4键盘输入(附代码可直接使用)

STM324*4键盘输入(附代码可直接使用)

关于三级分销小程序开发的事实和奥秘

数据库三级

关于鬼泣4操作的问题

寻联想键盘FN热键驱动程序