PIC omite secuencias de iluminación de leds

#1
Hola, tengo un curioso problema, estoy empezando en la programación de pics y tras realizar el encendido y apagado de un led con éxito decidí probar una secuencia con 5 leds conectados en el puerto B (RB0 a RB4).

El caso es que en mi programa he incluido 10 secuencias de encendido de leds y para mi sorpresa después de programar el pic sólo hace las 3 primeras secuencias, he probado a omitir las primeras y ver si se hace el resto y sí, las hace, pero nunca hace más de tres del total que le defina al programa.

USO:

MPLAB X IDE

XC8

PICKIT 3

16F84A

El código:

PHP:
/* 
 * File:   main.c
 * Author: nimio
 *
 * Programa para encender una secuencia de 5 Leds en el Puerto B (RB0-RB4)
 *
 * Created on 29 de octubre de 2012, 20:54
 */

#include <xc.h>  // Librerías del compilador XC8.

#define _XTAL_FREQ 4000000 // Frecuencia Cristal 4MHz.

#pragma config FOSC=XT, WDTE=ON, PWRTE=OFF, CP=OFF //Configuración de Bits del PIC.


void main(void) {

    TRISB=0; //Todos los puertos B como salidas.
    PORTB=0; //Todas las salidas del puerto B a 0 voltios.

    while (1) {

        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00000001; // RB0 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00000010; // RB1 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00000100; // RB2 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo a 600 milisegundos.
        PORTB=0b00001000; // RB3 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00010000; // RB4 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00011111; // RB0-RB4 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00010001; // RB0 Y RB4 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00001010; // RB1 y RB3 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo a 600 milisegundos.
        PORTB=0b00000100; // RB2 a 5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
        PORTB=0b00010101; //RB0, RB2 y RB4  5 voltios y el resto a 0 voltios.
        __delay_ms(600); // Retardo de 600 milisegundos.
    }
    

}
Tiene algo que ver con que no haya conectado el resto de pins que no uso a 5 voltios? Si así fuera... que pins se conectan? sólo los del puerto que uso (B)? o todos los puertos?
He visto que para pequeñas prácticas como esta no los suelen conectar, en que punto tendría que empezar a plantearme conectarlos?

Espero que me podáis ayudar porque no me esperaba este revés.

Gracias de antemano.

Saludos
 
#2
Hola, prueba a poner el WDTE=OFF, igual se te está reseteando por el whatchdog.

Un saludo.
 
Arriba