三级嵌入式之非标准键盘的相关问题
本文由@虚晓柏原创,转载请注明出处 。
本人是一名大学生,大二。最近准备了三级嵌入式考试,一共准备了7天,遇到了非标准键盘问题特别苦恼,不知道原理是什么。为此,专门针对这个问题详细介绍一下,为自学嵌入式没有基础的同学排排忧解难。
三级嵌入式非标准键盘的考法常见就那几种,什么4*3,4*4啦,原理基本都是一样,下面见具体题目:
(1)如输入密码的键盘采用非标准键盘,键盘接口设计成43的阵列。若设计时选用了GPE0GPE3来输出键盘行扫描信号,选用GPD0GPD2来输入键盘列信号。请补充下面的扫描函数:
//**keyoutput 是键盘扫描时的输出地址,keyinput是键盘读入时的地址
#define KEYOUTPUT((volatile INT8U)0x56000044)
#define KEYINPUT(*(volatile INT8U)0x56000034)
INT16U ScanKey()
{
INT16U key=0xFFFF;
INT16U i;
INT8U temp=0xFF,output;
rGPDCON=rGPDCON&0xFFFFFFC0;
rGPDCON=((rGPDCON&0xFFFFFF00)|0x00000055);
for(i=1;i<=8&&i>=0;i<<1)
{
output|=oxFF;
output&=(~i);
KEYOUTP