我正在创建一个 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,而 test 只是一个 'char'
这是我正在关注的伪代码
将 RC2 设置为高,RC3 设置为低
读取 RC0。如果为高,则按下 1
读取 RC1。如果为高,则按下 2
将 RC2 设置为低,RC3 为高
读取 RC0。如果为高,则按下 4
读取 RC1。如果高,则按下 5