2

我正在使用带有 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;
        }
    }
}

演示板用户指南

4

2 回答 2

4

RA3 也是 /MCLR,数据表的表 3 表明该引脚上的上拉仅通过外部 /MCLR 配置激活。如果没有上拉,您将不会得到更改。引脚读数是连续高还是低?

我会避免使用 RA3,至少在调试时,如果你必须在发布代码中使用它,在调试时将引脚换成另一个。

PORTA 的另一个常见问题是默认情况下它是一个模拟输入端口。ANSEL 位已设置,需要清零才能用作数字输入,但 RA3 未映射到模拟输入。

于 2011-05-12T07:34:58.703 回答
1

我一直遇到同样的问题,发现以下问题。

在 MPLAB IDE 的编程器设置中,勾选“3-State on Release from Reset”。我还将包含的头文件从“htc.h”更改为“pic.h”,该按钮现在可以使用。

于 2012-01-15T18:07:22.817 回答