Autor Tema: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E  (Leído 13923 veces)

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

Desconectado johnyague

  • PIC10
  • *
  • Mensajes: 3
HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« en: 26 de Julio de 2007, 21:06:59 »
Hola a Todos.

Todo comenzó con la idea de hacer prender un led con un microcontrolador y leyendo encontré que el 12f629 es una dispositivo  el cual su montaje no necesita de oscilador externo y dije bueno vamos hacerlo funcionar....

El codigo que tengo es basado en un respuesta dada por ustedes
Código: [Seleccionar]
LIST P=PIC12F629
      #include <P12F629.INC>
ERRORLEVEL   -302
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &_INTRC_OSC_NOCLKOUT & _MCLRE_OFF


CounterA EQU 0x20
CounterB EQU 0x21
CounterC EQU 0x22

#Define PIN0  GPIO,0 ; Salida 1
#Define PIN1  GPIO,3 ; Salida 2
#Define PIN2 GPIO,2 ; Salida 3


      ORG   H'0000'
      GOTO  INICIO

      ORG   H'0004'
      GOTO  INICIO


      ORG   H'0005'

INICIO

BCF    STATUS,RP0 
CLRF   GPIO       
    MOVLW  07h             
    MOVWF  CMCON       
    BSF    STATUS,RP0 
    MOVLW  B'11100000'
CALL   CALIBRAROSC
    MOVWF  OSCCAL
    CLRF   INTCON           
    BCF    STATUS,RP0
    CLRF   GPIO             

;aca comenzaria tu programa


LOOP
CALL Temp
BSF     PIN0
CALL Temp
BCF     PIN0
BSF     PIN1
CALL Temp
BCF     PIN1
GOTO LOOP


Temp movlw D'4'
movwf CounterC
movlw D'209'
movwf CounterB
movlw D'255'
movwf CounterA
loop decfsz CounterA,1
goto loop
decfsz CounterB,1
goto loop
decfsz CounterC,1
goto loop
return

ORG                0X3FF
CALIBRAROSC
        RETLW            0x80  ;


end


Ven algo que tenga mal....???? no me presenta errores al compilar   :shock:

Pero el problema esta en que cuando comencé a programar el micro lo borre completamente y siempre me presenta problemas al programarlo

Me sale un letrero "valor de calibración ausente desea utilizar el valor del fichero, si le digo si me sale un error que dice fallo verificacion del codigo 0000h y si le digo no también me sale el mismo error  :?


Que me recomiendan que deba hacer....  :(


Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #1 en: 26 de Julio de 2007, 21:23:09 »
Hola Jhony, como no se que programador estas empleando, mira estos casos similares en la seccion programadores
http://www.todopic.com.ar/foros/index.php?action=search2

Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado johnyague

  • PIC10
  • *
  • Mensajes: 3
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #2 en: 26 de Julio de 2007, 22:01:27 »
Norberto, primero gracias por responder,

La verdad el progrador es uno que configuro como Propic 2 Programmer en el IC-prog, eso sirve de lago la verdad no conosco mucho del tema.

Queado ateto

Desconectado Veguepic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2119
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #3 en: 27 de Julio de 2007, 03:02:05 »
Hola Johnyaque:

Creo que solo deberias poner

Código: ASM
  1. call    0x3FF
  2.     movwf   OSCCAL
  3.  
  4.  
  5.  
  6.  
  7.    org      0x3FF
  8.    retlw    0x20

Y tambien si mal no recuerdo el valor del osccal es de 6 bits y al poner 0x80 excedes los 6 bits, revisa bien el datasheet para salir de dudas.

Suerte
« Última modificación: 27 de Julio de 2007, 03:04:16 por Veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #4 en: 27 de Julio de 2007, 08:59:44 »
Hola Saludos!!

Yo uso el valor del calibrador con 0x78

es el valor que trae de fabrica, lo cheque con varios pic.


Otra punto es que te falta configurar el registro TRISIO.

TRISIO configuras el pin como entrada o salida.



Saludos!!



Desconectado johnyague

  • PIC10
  • *
  • Mensajes: 3
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #5 en: 27 de Julio de 2007, 21:35:48 »
Comparos Buenas noches...


Analizando sus comentarios considero que el codigo quedaria asi:

Código: [Seleccionar]
LIST P=PIC12F629
      #include <P12F629.INC>
ERRORLEVEL   -302
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &_INTRC_OSC_NOCLKOUT & _MCLRE_OFF


CounterA EQU 0x20
CounterB EQU 0x21
CounterC EQU 0x22

#Define PIN0  GPIO,0 ; Salida 1
#Define PIN1  GPIO,3 ; Salida 2
#Define PIN2 GPIO,2 ; Salida 3



      ORG   H'0000'
      GOTO  INICIO

      ORG   H'0004'
      GOTO  INICIO


      ORG   H'0005'

INICIO

    call    0x3FF     ; acatando reocmendacion de Veguepic
    movwf   OSCCAL ; acatando reocmendacion de Veguepic

BCF    STATUS,RP0 
CLRF   GPIO       
    MOVLW  07h             
    MOVWF  CMCON       
    BSF    STATUS,RP0 
    MOVLW  B'11100000'
    MOVWF  TRISIO   ; Instruccion que falta observacion de AKENAFAB
;   CALL   CALIBRAROSC
;   MOVWF  OSCCAL
    CLRF   INTCON           
    BCF    STATUS,RP0
    CLRF   GPIO             

;aca comenzaria tu programa


LOOP
CALL Temp
BSF     PIN0
CALL Temp
BCF     PIN0
BSF     PIN1
CALL Temp
BCF     PIN1
GOTO LOOP


Temp movlw D'4'
movwf CounterC
movlw D'209'
movwf CounterB
movlw D'255'
movwf CounterA
loop decfsz CounterA,1
goto loop
decfsz CounterB,1
goto loop
decfsz CounterC,1
goto loop
return

; ORG                0X3FF
;CALIBRAROSC
;        RETLW              0x78  ;

   org      0x3FF   ; acatando reocmendacion de Veguepic
   retlw    0x20    ; acatando reocmendacion de Veguepic tambien probado con 0x78 comentario de AKENAFAB

end

Pero me queda la inquietud si lo calibro con 0x78 o con 0x20 ya intente con justos y me siga saliendo el mismo error:

Citar
Me sale un letrero "valor de calibración ausente desea utilizar el valor del fichero, si le digo si me sale un error que dice fallo verificacion del codigo 0000h y si le digo no también me sale el mismo error

Algun otro comentario para salucionar el problema....

Desconectado Veguepic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2119
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #6 en: 28 de Julio de 2007, 01:24:07 »
En el datasheet casi siempre estan las respuestas, revisa estas imagenes:





Que programador estas utilizando para grabar los PICs ?

Saludos

« Última modificación: 28 de Julio de 2007, 02:32:48 por Veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado PICKEROJOVATO

  • PIC10
  • *
  • Mensajes: 6
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #7 en: 03 de Noviembre de 2009, 22:06:16 »
Hola, soy nuevo en el tema de programacion de pic y estoy por empezar oviamente con el encendido y apagado de un led.
Mi consulta es la siguiente : he notado por ejemplo en los ejemplos de codigo que en este post se citan que utilizan " #define pin0 GPIO0 ,0 "
la pregunta es : cual es el comando o instruccion que  usa el compilador ? es  " GPIO" ?.Pregunto esto por que en un curso de programacion de cekit que me an prestado para definir los pines de entrada o salida era mas complicado....

Otra: En otros segmentos de codigo que encontre en el foro note que al declarar variables, ya no utilizan el "equ"... es esto posible o estoy equivocado ?
Gracias

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: HACER PRENDER UN LED - PIC 12F629 - IC-PROG1.5E
« Respuesta #8 en: 03 de Noviembre de 2009, 22:30:01 »
Hola, bienvenido al foro

Una aclaración, gpio se emplea en los pic pequeños.. tipo 12f , en las lineas mayores se emplea PORT
lo que leiste de definicion de entrada salida, es correcto (mas complicado)
pero aquí  con #define  lo que hacen seria "cambiar de nombre" por uno mas facil de interpretar, y ademas de corregir...
 por ejemplo

#define LED_ROJO  portb,3

aqui no defino como salida, solamente  me serà mas facil acordar de LED_ROJO , que donde està conectado
la salida la programaras con TRIS (como supongo habras leido en cekit)

Y entonces, tambien sera mas facil escribir  BSF LED_ROJO   que  BSF.mmmmmm donde estaba conectado...  ahhh  BSF PORTB,3  je je je

tambien podrias hacer
#define ENCENDER BSF
#define  APAGAR BCF


y luego escribir

ENCENDER LED_ROJO
APAGAR LED_ROJO   :mrgreen:

y al compilarlo... FUNCIONARÀ! :D

espero se entienda

y con respecto a equ
se emplea  CBLOCK y una direccion donde comenzaran los registros

luego los terminas con ENDC



Norberto


Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado D.Evick

  • PIC10
  • *
  • Mensajes: 7
HACER PRENDER UN LED PIC 12F629 IC PROG1 5E
« Respuesta #9 en: 08 de Noviembre de 2009, 15:41:57 »
en verda eso no sabia ke con el amperaje era mas exacto cuando prnder el auto, lo bueno ke en se link ke puse tambien biene como hacer el amperimetro. checalo haber si ese funciona, para tomarlo en cuenta.

muchas gracias por la observacion.