Ayuda para programar pic16f819

Bueno estoy tratanto de programar este pic con un programador jmd (q estaba funcionando bien) y el icprog y me falla la verificacion en la org 05. El programita q le quiero cargar es un simple programa para ver si los puertos y las int estan funcionando bien adjunto el asm para q vean q no tiene nada del otro mundo el programa ( al menso para mi ). Por q puede ser q pase estod e q falla la verificacion? sera problema del programador? o sera problema del icprog o del pic? Desde ya cualquier ayudita q me puedan dar sera bien recibida!
 

Adjuntos

  • asm_730.txt
    2.1 KB · Visitas: 56
Ivan N. dijo:
Bueno estoy tratanto de programar este pic con un programador jmd (q estaba funcionando bien) y el icprog y me falla la verificacion en la org 05. El programita q le quiero cargar es un simple programa para ver si los puertos y las int estan funcionando bien adjunto el asm para q vean q no tiene nada del otro mundo el programa ( al menso para mi ). Por q puede ser q pase estod e q falla la verificacion? sera problema del programador? o sera problema del icprog o del pic? Desde ya cualquier ayudita q me puedan dar sera bien recibida!

El programa no tiene nada que ver con un fallo de verificación

Las posibles causas son las que mencionaste

1) El software programador
2) El programador en sí
3) El PIC

Los más probables son el 2 y el 3.

Saludos
 
Ya me va pasando 2 veces con 2 16f819 distintos q era la primera vez q los usaba... la primera vez pense q por ahi estaba malo el pic, pero ahora compre uno nuevo y de vuelta lo mismo asi q supongo q debera ser el programador, no? Alguien alguna vez programo algun 16f819 con el quark pro 2 o algun programador jmd? O alguien sabe de algun programador q funcione bien con el 16f819 y con q software usarlo? Desde ya muchas gracias!
 
Ivan N. dijo:
Ya me va pasando 2 veces con 2 16f819 distintos q era la primera vez q los usaba... la primera vez pense q por ahi estaba malo el pic, pero ahora compre uno nuevo y de vuelta lo mismo asi q supongo q debera ser el programador, no? Alguien alguna vez programo algun 16f819 con el quark pro 2 o algun programador jmd? O alguien sabe de algun programador q funcione bien con el 16f819 y con q software usarlo? Desde ya muchas gracias!

No, no use ese programador pero sí esos basados en puerto serie y a la 3ra o 4ta vez se me terminaba quemando el pic.

La razón? --> enviaba mucho voltaje en el pin Vpp.

Saludos
 
muchas gracias por la información. Latension de Vpp la medimos con el profesor y no supera los 12.1V. Ahora logre q no saltara este error en la verificacion, pero se suele dar esporadicamente y los programas q grabo no andan como deberian... asi q la verdad no se q conclusiones sacar
 
Ivan N. dijo:
muchas gracias por la información. Latension de Vpp la medimos con el profesor y no supera los 12.1V. Ahora logre q no saltara este error en la verificacion, pero se suele dar esporadicamente y los programas q grabo no andan como deberian... asi q la verdad no se q conclusiones sacar

Si al programar hay desfasaje entre el dato y el clock (la programación se termina efectivizando por dos pines PGC y PGD) entonces podrías tener resultados como los que comentas.

Solución --> cambiar el programador.
 
Gracias a todos por su ayuda! Al final lo q estaba pasando era q uno de los capacitores de la fuente duplicadora del programador estaba mal soldado DD. Lo q hacia q esporadicamente programara mal el pic, asi q le solde bien el pin y ya no hay mas problemas de verificacion.
Pero ahora me surgio otro problemita: quiero pasar los datos del puerto A a W, y de W pasarlos al puerto B. Todo esto lo hago cuando hay una interupcion en RB0. El problema es q no lo hace, e puerto B me muestra siempre 0V en todos sus pines :S.
Me asegure q los puertos esten correctamente configurados como entrada el A y como salida el B exceptuando el pin RB0, el MPLAB lo compila bien y los puertos estan andando por q los probe con otro programita... Si alguno tiene idea de q puede llegar a estar funcionando mal desde ya muchas gracias!
 
Ivan N. dijo:
Pero ahora me surgio otro problemita: quiero pasar los datos del puerto A a W, y de W pasarlos al puerto B. Todo esto lo hago cuando hay una interupcion en RB0. El problema es q no lo hace, e puerto B me muestra siempre 0V en todos sus pines :S.

Se me ocurre lo siguiente:

1) Qué estén mal configurado los TRIS de los puertos

2) Que tengas los pines del puerto A como analógicos


Saludos
 
buenas, estoy programado en asm el pic16f819 y mi problema en el programa es que lo simulo en Proteus y no simula, tal vez sea por lo del reloj interno este mal programado, mu ultima duda es sobre como programo la entrada analogica del pic, puesto que quiero hacer un termometro digital ejjeje mi programa esta adjunto
 

Adjuntos

  • 16F819.txt
    659 bytes · Visitas: 92
¿a qué te refieres con "no simula"?, pon alguna captura de lo que te refieres. Ahora para programar una entrada analógica debes de configurar ciertos bits en algunos registros, por ahora recuerdo: ANSEL, ADCON0, ADCON1, TRISA, etc. Lee la hoja de datos del PIC16F819 para que te orientes mejor.
Saludos
 
buenas. Estoy programado en asm el pic16f819 y mi problema en el programa es que lo simulo en Proteus y no simula, tal vez sea por lo del reloj interno este mal programado.

Para lo que llevas hecho, este es el programa funcional de tu secuencia en el puerto B:
Código:
    list    p=16F819
    include p16F819.inc
    __config _FOSC_INTOSCIO & _WDTE_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_OFF

    cblock 0x20
    cnt1,cnt2,cnt3
    endc

    org        0x00

inicio
    bsf        STATUS,RP0            ; Banco 1
    movlw    b'01100100'            ; Oscilador interno estable a 4MHz.
    movwf    OSCCON
    clrf    PORTB                ; Puerto B como salidas.
    bcf        STATUS,RP0            ; Banco 0
    clrf    PORTB

programa
    movlw    30H
    movwf    PORTB
    call    retardo_.5
    movlw    31H
    movwf    PORTB            
    call    retardo_.5
    
    movlw    32H
    movwf    PORTB
    call    retardo_.5
    movlw    33H
    movwf    PORTB
    call    retardo_.5
    movlw    34H
    movwf    PORTB
    call    retardo_.5

    goto    programa

; Subrutina de retardo de 500Ms @ 4MHz.
retardo_.5
; 499994 ciclos
    movlw    0x03
    movwf    cnt1
    movlw    0x18
    movwf    cnt2
    movlw    0x02
    movwf    cnt3
retardo_.5_0
    decfsz    cnt1,f
    goto    $+2
    decfsz    cnt2,f
    goto    $+2
    decfsz    cnt3,f
    goto    retardo_.5_0
; 2 ciclos
    goto    $+1
;4 ciclos (incluyendo call)
    return

    end
Tu código no está comentado y como no se sabe el periodo del retardo, lo puse en 500Ms. @ 4MHz.
El código para los retardos lo puedes obtener con este muy buen generador: Delay Code Generator

mi ultima duda es sobre como programo la entrada analógica del pic, puesto que quiero hacer un termómetro digital.
Por lo que veo tienes pocos conocimientos en programación y hacer un termómetro usando el ADC del PIC te va a resultar algo complicado.
La configuración de los pines a usar y del ADC está en la hoja de datos como te menciona el amigo Daniel Meza.
Este PIC no es nada especial y funciona como otros con ADC de la familia PIC16.
Los registros involucrados son ADCON0, ADCON1, ADRESH y ADRESL.

Suerte.
 
Última edición:
Atrás
Arriba