Autor Tema: Problemas para encender un LED con PIC 16F819  (Leído 3161 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado quantic_stroker

  • PIC10
  • *
  • Mensajes: 1
Problemas para encender un LED con PIC 16F819
« en: 02 de Agosto de 2014, 19:20:48 »
Hola que tal, soy nuevo en el mundo de los PICS.

El problema es que trato de encender un led y que apague con un delay, es mi primer programa pero sólo se queda encendido.
Nunca se apaga.

Uso lo siguiente:

Compiler: PCW (PIC C COMPILER)
Tarjeta: PIC MASTER
Porgrama para bajar el programa: Programador Pic Master.

Mi programa es el siguiente:

#include <LED1.h>

//#include <16f819.h>  //Librería de PIC


//----------------------Declaración de Fuses---------------------------//
#fuses INTRC_IO   //Internal RC Osc, no CLKOUT

#fuses NOWDT  // No Watch Dog Timer
#fuses PUT  // Power Up Timer
#fuses NOMCLR   //Master Clear pin used for I/O
#fuses NOBROWNOUT //  No brownout reset
#fuses NOLVP  // No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#fuses NOCPD  // No EE protection
#fuses NOWRT  // Program memory not write protected
#fuses NODEBUG  // No Debug mode for ICD
#fuses NOPROTECT  // Code not protected from reading

#use delay (internal=20M) //Función para uso de retardos (Poner siempre)

// Declaración de registros, tu le das el nombre y lo igualas a la dirección que
//le corresponde en la memoria. Viene en la datasheet, pag 11
#Byte PORTA=0x05
#Byte TRISA=0x85

#Bit  Led=PORTA.1 //El LED será el pin A0 Le das un nombre a tu salida y la igualas al bit que corresponde
// Es para facilitar que cambies los pines sin tener que modificar tu código, observa
// como lo uso abajo.


void main (void)
{

   TRISA&= 0b11111101;  //PIN A0 es salida (ponemos 0) Si fuera entrada pondríamos 1, uso máscara.
   
   while (1)
   {
      Led=1; //Hacemos que el led cambie de estado
      delay_ms(1000); //Esperamos un segundo
     
      Led=0; //Hacemos que el led cambie de estado
      delay_ms(500);
   }
}


Lo de fuses me lo paso un amigo.


¿Tienen idea de que pueda suceder con mi circuito?

Saludos.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 441
    • Mcu Tronics
Re: Problemas para encender un LED con PIC 16F819
« Respuesta #1 en: 05 de Agosto de 2014, 12:02:49 »
Supongo que en "LED1.H" esta el mapeo deo PIC, o en su defecto un #include<16f819.h>, o no???

Las direcciones de los puertos son correctas???

Porque no pruebas sustituir la linea del
Código: [Seleccionar]
#use delay(internal=20M)
por

Código: [Seleccionar]
#use delay(clock=20Mhz)
he usado muchos pics con el oscilador interno habilitado y para serte sincero (que tal ves este mal mi practica, pero funciona jeje), no coloco lo de "internal", lo pongo como te digo.

Saludos.
Nunca se deja de aprender

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re: Problemas para encender un LED con PIC 16F819
« Respuesta #2 en: 18 de Septiembre de 2014, 12:09:27 »
¿Se debe configurar el puerto como entrada/salida digital (ADCON1)?
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 441
    • Mcu Tronics
Re: Problemas para encender un LED con PIC 16F819
« Respuesta #3 en: 19 de Septiembre de 2014, 11:49:59 »
Pues lo recomendable y correcto es eso, desactivar el canal analógico en caso de haberlo, y dejarlo con la función de I/O digital, pero en varias ocasiones he usado pines con canales analógicos y me han funcionado sin desactivarlos, como I/O digital, debe ser por el compilador y la función usada para activar o desactivar el pin.
Nunca se deja de aprender

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re: Problemas para encender un LED con PIC 16F819
« Respuesta #4 en: 19 de Septiembre de 2014, 11:53:56 »
Ya no he trabajado con PICC desde hace muchos años, pero recuerdo que al revisar el ensamblador generado, por defecto configura como I/Os a los puertos. (ADCON1). No sé si siga esa filosofía en las nuevas versiones de PICC.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32