2016-08-01 2 views
1

J'essaie un exemple disponible dans le compilateur MikroC pro pour PIC qui écrit et lit quelques bits de l'EEPROM, et affiche les résultats sur les LEDs attachés à la MCU PIC18F452.PORTB de PIC18F452 ne fonctionne pas

Le code est écrit en C. Et je simule tout cela dans la simulation Proteus. Mon schéma est comme indiqué ci-dessous:

Schematic

Les broches PORTB montrent le changement dans la logique, mais ils ne sont pas en mesure d'allumer les LEDs. Je sais que ce n'est pas un problème matériel, mais un problème de logiciel.

Pouvez-vous voir mon code C et dites-moi ce que je fais mal:

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

Avez-vous la polarité à droite sur ce graphique à barres LED? Vous avez celui sur PORTB connecté en face de la façon dont vous avez connecté les deux autres. – Dmitri

+0

Hahaha ... Comme c'est stupide de ma part: Tu avais raison! Merci –

+0

Répondez à cette question afin que je puisse marquer votre réponse comme correcte. –

Répondre

2

De le schéma, il semble que vous avez connecté le graphique à barres LED sur le port B dans le mauvais sens (la la polarité semble être opposée à ce que vous avez pour les deux autres graphiques à barres).