启用端口RA0作为输入并从led检索值LDR

use*_*001 1 c embedded microcontroller microchip pic

我正在使用带有微芯片v8.63的picdem 18F4550和C18编译器.

我将PortA设置为输入,我将在端口RA0上连接LDR.以下是(我认为)

TRISAbits.TRISA0 = 1; <= set RA0 as input
Run Code Online (Sandbox Code Playgroud)

现在我想要LDR的值(如果LED打开了电压/值),我可以说:

int colorLed = PortAbits.RA0;
Run Code Online (Sandbox Code Playgroud)

现在在int类型的变量中,有我的Led的值/电压.

如我错了请纠正我.

Oli*_*rth 6

听起来你想要测量模拟电压,在这种情况下你需要使用引脚AN0而不是RA0.你应该阅读的章节21 数据表,但总的来说,你需要使用配置寄存器中的AD转换器ADCON0,ADCON1并且ADCON2,读这本上的结果ADRESH:ADRESL.

请注意,您可能使用数字输入读取LDR,但您将无法校准它.使用模拟输入稍微复杂一些,但更灵活.