2016-08-01 14 views
1

Ich versuche ein Beispiel in der MikroC Pro für PIC-Compiler, die einige Bits aus dem EEPROM schreibt und liest, und zeigt die Ergebnisse auf den LEDs an der PIC18F452 MCU.PORTB von PIC18F452 funktioniert nicht

Der Code ist in C geschrieben. Und ich simuliere all dies in der Proteus-Simulation. Mein Schema ist wie folgt:

Schematic

Die Stifte auf PORTB Änderung der Logik zeigen, aber sie sind nicht in der Lage auf die LEDs einzuschalten. Ich weiß, das ist kein Hardwareproblem, sondern ein Softwareproblem.

Können Sie meinen C-Code zu sehen und mir sagen, was ich falsch mache:

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

Haben Sie die richtige Polarität in diesem LED-Balkendiagramm? Sie haben den Anschluss an PORTB angeschlossen, so wie Sie die beiden anderen verbunden haben. – Dmitri

+0

Hahaha ... Wie dumm von mir: P Sie hatten Recht! Danke –

+0

Beantworten Sie diese Frage, damit ich Ihre Antwort als richtig markieren kann. –

Antwort

2

Aus dem schematischen, es sieht aus wie Sie das LED-Balkendiagramm auf Port B falsch herum angeschlossen haben (die Polarität scheint entgegengesetzt zu dem zu sein, was Sie für die anderen zwei Balkendiagramme haben).