1

我正在尝试用于 PIC 编译器的 MikroC pro 中的一个示例,该示例从 EEPROM 写入和读取一些位,并在连接到 PIC18F452 MCU 的 LED 上显示结果。

代码是用 C 编写的。我在 proteus 模拟中模拟所有这些。我的示意图如下所示:

示意图

PORTB 上的引脚显示出逻辑变化,但它们无法打开 LED。我知道这不是硬件问题,而是软件问题。

你能看到我的 C 代码并告诉我我做错了什么吗:

char ii;                                 // loop variable

void main(){
  ADCON1 = 0x07;

  PORTB = 0;
  PORTC = 0;
  PORTD = 0;

  TRISB = 0;
  TRISC = 0;
  TRISD = 0;

  for(ii = 0; ii < 32; ii++)             // Fill data buffer
    EEPROM_Write(0x80+ii, ii);           // Write data to address 0x80+ii

  EEPROM_Write(0x02,0xAA);               // Write some data at address 2
  EEPROM_Write(0x50,0x55);               // Write some data at address 0150

  Delay_ms(1000);                        // Blink PORTB and PORTC LEDs
  PORTB = 0xFF;                          //   to indicate reading start
  PORTC = 0xFF;
  Delay_ms(1000);
  PORTB = 0x00;
  PORTC = 0x00;
  Delay_ms(1000);

  PORTB = EEPROM_Read(0x02);             // Read data from address 2 and display it on PORTB
  PORTC = EEPROM_Read(0x50);             // Read data from address 0x50 and display it on PORTC

  Delay_ms(1000);

  for(ii = 0; ii < 32; ii++) {           // Read 32 bytes block from address 0x80
    PORTD = EEPROM_Read(0x80+ii);        //   and display data on PORTD
    Delay_ms(250);
    }
}
4

1 回答 1

2

从原理图中,您似乎以错误的方式连接了端口 B 上的 LED 条形图(极性似乎与其他两个条形图的极性相反)。

于 2016-08-01T21:46:23.447 回答