Button 简单PIC16F684输入/输出

Button 简单PIC16F684输入/输出,button,pic,basic,led,Button,Pic,Basic,Led,我对应该是一段非常简单的代码有困难。我的目标是在按下按钮时打开LED。在这种情况下,当我按下按钮时,输入逻辑将变低。LED连接到端口C.2,按钮连接到端口C.0。代码如下: dim test as bit main: TRISC = %00000001 ANSEL = %00000000 PORTC= 0 cmcon0=0 Testbutton: test = PORTC.0 if test = 0 then PORTC = %00000100 goto Testbu

我对应该是一段非常简单的代码有困难。我的目标是在按下按钮时打开LED。在这种情况下,当我按下按钮时,输入逻辑将变低。LED连接到端口C.2,按钮连接到端口C.0。代码如下:

dim test as bit

main:
TRISC = %00000001 
ANSEL = %00000000
PORTC= 0
cmcon0=0

Testbutton:

 test = PORTC.0
 if test = 0 then
    PORTC = %00000100
    goto Testbutton
    end if
    PORTC = %00000000

  end.
问题是,无论输入是什么,PIC总是输出高。到目前为止,我已经使用万用表来验证当按下按钮时,输入确实从5V变为0V,我尝试使用不同的输入引脚,我尝试使用不同的PIC。我怀疑,由于输入总是被读取为低,PIC可能没有正确初始化,但我不完全确定

感谢您能给我提供第42页上的状态:

ANSEL和CMCON0寄存器必须初始化,以将模拟通道配置为数字输入。配置为模拟输入的引脚将读取“0”

这些寄存器实际上是在代码中初始化的。ANSEL被初始化为0,因此所有模拟输入都被停用。然而,CMCON0寄存器应初始化为XXXXX 111或07h。参见第42页的示例4.3。CMCON0的最后三位对应于比较器的操作模式,选择111将关闭它们。见第60页

如果希望释放按钮时led再次亮起,请不要忘记添加goto Testbutton。这可能是故意的:这取决于你