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

时间:2015-01-03 14:47:55

标签: microcontroller pic mikroc

我正在创建一个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

1 个答案:

答案 0 :(得分:0)

对于与您类似的设计,我已经看到拉出 down 电阻器的位置,从而在没有按下按钮时PORTC.RC1和PORTC.RC0处于未知状态。