我正在使用picdem 18F4550和C18编译器的microchip v8.63。
我将使port a设置为输入,我将在端口RA0上连接一个LDR。
如下(我想)

TRISAbits.TRISA0 = 1; <= set RA0 as input

现在我想要LDR的值(如果led亮起,电压/值),我可以说:
int colorLed = PortAbits.RA0;

现在在int类型的变量中有我的Led的值/电压。
如果我错了就纠正我。

最佳答案

听起来你想测量一个模拟电压,在这种情况下,你需要使用的引脚是AN0,而不是RA0您应该阅读datasheet的第21节,但总而言之,您需要使用寄存器ADCON0ADCON1ADCON2配置A-D转换器,并阅读ADRESH:ADRESL上的结果。
请注意,您可以使用数字输入读取LDR,但无法对其进行校准。使用模拟输入稍微复杂一些,但更灵活。

10-05 18:25