我正在使用带有 16f690 芯片的 PICkit2 低引脚数演示板。我已经能够编写简单的代码来打开和关闭 LED,但是在尝试使用按钮来更改 LED 的状态时,却无法做到这一点。我的代码如下,以及设备原理图的链接。
#include <htc.h>
__CONFIG(MCLRE_OFF & BOREN_OFF & PWRTE_OFF & IESO_OFF & CP_OFF & FCMEN_ON);
void main()
{
//initialization
TRISAbits.RA3 = 1; //make button (RA3) input
TRISCbits.RC0 = 0; //make LED (RC0) output
for(;;) // loop forever
{
//set RC0 if RA3 is low (button pressed), else clear RC0
if(PORTAbits.RA3)
{
RC0 = 1;
}
else
{
RC0 = 0;
}
}
}
最佳答案
RA3 也是/MCLR,数据表的表 3 表示该引脚上的上拉仅在外部/MCLR 配置时激活。如果没有上拉,您将不会得到更改。引脚读数持续高还是低?
我会避免使用 RA3,至少在调试时如此,如果您必须在发布代码中使用它,请在调试时将引脚交换为另一个引脚。
PORTA 的另一个常见问题是它默认是模拟输入端口。 ANSEL 位已设置,需要清除才能用作数字输入,但 RA3 未映射到模拟输入。
关于带按钮的 PICkit2 闪烁 LED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965208/