1

我正在使用 pic 18f14k50,我正在尝试使用它进行简单测试。只需让 LED 闪烁即可。问题是,我已经将 ANSEL、ANSELH、ADCON1 等全部设置为 0,还将所有端口都设置为输出。我还没有看到 LED 闪烁。

这是代码(我正在使用MicroC)

void main() {

  TRISA = 0;           // set direction to be output
  TRISB = 0;           // set direction to be output
  TRISC = 0;           // set direction to be output
  ANSEL = 0;
  ANSELH = 0;
  IOCA = 0;
  IOCB = 0;
  CM2CON0.C2ON = 0;
  CM1CON0.C1ON = 0;
  ADCON1 = 0;


  //PORTC = 0xFF;

  while(1){
    LATA = 0x00;       // Turn OFF LEDs on PORTA
    LATB = 0x00;       // Turn OFF LEDs on PORTB
    LATC = 0x00;       // Turn OFF LEDs on PORTC
    delay_ms(1000);    // 1 second delay

    LATA = 0xFF;       // Turn ON LEDs on PORTA
    LATB = 0xFF;       // Turn ON LEDs on PORTB
    LATC = 0xFF;       // Turn ON LEDs on PORTC
    delay_ms(1000);    // 1 second delay
  }          // Endless loop
}

感谢所有的帮助!

4

1 回答 1

1

为什么这个 PIC 代码不能点亮我的 LED?

“如果您不设置 ANSEL 寄存器,则该引脚不能用作输出,因为它被配置为模拟输入。”

配置位在这里不可见。您的振荡器配置位必须正确,处理器才能启动代码。

18f14k50 可能难以编程。它需要 PGC 和 PGD 引脚上的 3 伏电压,并且 vpp 远低于标准的 13 伏电压。您使用的是编程器(PIC 套件 1、2、3、ICD 2、3)还是引导加载程序(HID 引导加载程序)?

于 2015-08-03T22:55:24.667 回答