Salida inestable pic16f877

#1
Hola a todos. Cuando creo un programa en c para el pic 16f877, intento leer el puerto A y copiarlo completo a la salida B. La cuestion es que la salida B es inestabe, si yo pongo todos unos el la entrada A en la salida B es intermitente (inestable). Si toco con la mano el pin de la salida B apaga por completo el led que intento prender.
 
#3
Ahí va el programa, gracias.


Código:
#include <16f877.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#include<lcd.c> // libreria del LCD.
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
int8 dato;

void main (void)
{
SET_TRIS_b( 0xfF );
SET_TRIS_c( 0xfF );
SET_TRIS_a( 0x00 );
do{
dato=input_c();
output_a(dato);

//LA SIGUIENTE SECCION FUNCIONA BIEN
lcd_init(); //inicializa lcd
lcd_putc("\f q hace\n"); // Escribe en el lcd
delay_ms(1000); //Espero dos segundos
lcd_putc(" rewv"); //Escribo en la segunda fila
}While(true);
}
 
Última edición por un moderador:
#4
Ya funciona. Al parecer mi viejo programador puerto paralelo no funcionaba bien. La salida intermitente era como si estubiera el wachdog (no usado-> fuse) algo extraño. Cambie por un programador usb y se estabilizo.
La salida empeso a replicar la entrada cuando use la sentecia
port_b_pullups(false)
para desabilitar las pullups inernas de los puertos.
 
Arriba