PIC MikroC - 制作 2x2 键盘扫描仪

PIC MikroC - Making a 2x2 Keypad Scanner

我正在创建一个 2x2 键盘扫描仪,其中 RC0 和 RC1 是输入线,RC2 和 RC3 是输出线。我已将 TRISC 设置如下

TRISC = 0b00000011;    

然后我创建了键盘扫描仪方法

char keyPadScanner(){
    PORTC.RC2 = HIGH; PORTC.RC3 = LOW;
        if (PORTC.RC0 != 0) return '1';
        if (PORTC.RC1 != 0) return '2';
    PORTC.RC2 = LOW; PORTC.RC3 = HIGH;
        if (PORTC.RC0 != 0) return '4';
        if (PORTC.RC1 != 0) return '5';}

在 while(1) 循环中,我将其显示在 GLCD 显示器上

test = keyPadScanner();
Delay_Ms(50);
Sm_Glcd_char2(30, 90, test);    

我只是想知道我哪里出错了,我花了太长时间试图解决这个问题,如果你能把我推向正确的方向而不是给我一个答案,那就太好了:)

编辑:HIGH 定义为 1,LOW 定义为 0,测试只是 'char'

这是我正在关注的伪代码

设置RC2为高,RC3为低
读取 RC0。如果高,则按下 1
阅读 RC1。如果高,则按下 2
设置 RC2 为低,RC3 为高
读取 RC0。如果高,则按下 4
阅读 RC1。如果高,则按下 5

对于与您的设计类似的设计,我已经看到拉 down 电阻被遗漏的地方,从而使 PORTC.RC1 和 PORTC.RC0 在没有按钮时处于未知状态按下。