Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/05/2012 #1


pic 16f84a-20/p no funciona
pic 16f84a-20/p
hola como estan, espero me ayuden estoy retomando el camino de los pic y cuando monto el circuito de prueba no hace nada creo que el problema esta en el crystal 4mhz porque cuando lo toco empieza a funcionar le eh cambiado c1,c2 desde 15pf hasta 33pf llevandolo a tierra pero no responde !que puede ser el problema?
10/05/2012 #2


y como sabes que no funciona si segun el esquema no tiene nada conectado???

pon un capacitor de 100nF entre el Vdd y el Vss... sube el codigo y esquema completo...
10/05/2012 #3


gracias lubeck
disculpa aqui tienes uno con el que lo probe y solo parpadea el led cuando le pongo el dedo al pin 16 clkin ahi entoces si funsiones si le quito el dedo deja de funcionar


list p=16f84a
__config _cp_off & _wdt_off & _pwrte_on & _xt_osc
cuento equ 0x0c
org 0
goto inicio
inicio
bsf status,5
clrf trisa
clrf trisb
bcf status,5

x2
bsf trisa,3
call cuento1
BCF TRISA,3
call cuento1
goto x2
cuento1
movlw .249
movwf cuento
x1
nop
decfsz cuento,f
goto x1
return
end
Imágenes Adjuntas
Tipo de Archivo: gif pic16f84a.GIF (8,7 KB (Kilobytes), 10 visitas)
10/05/2012 #4


Prueba esto...



los capacitores al cristal de 22pF deberia funcionar... y no es tan critico...

comprueba que no existan falsos contactos...

sube el codigo que usas...
Imágenes Adjuntas
Tipo de Archivo: jpg Dibujo.JPG (32,3 KB (Kilobytes), 48 visitas)
10/05/2012 #5


amigo... como configuras las entradas?? pon todo como salidas menos si tienes alguna entrada que usar
set_trisa/b(0x00)

y bueno lo de la resistencia en MCLR tambien
10/05/2012 #6


Limako dijo: Ver Mensaje
amigo... como configuras las entradas?? pon todo como salidas menos si tienes alguna entrada que usar
set_trisa/b(0x00)

y bueno lo de la resistencia en MCLR tambien
los que esten en desuso se ponen como entradas no???
yo lo lei por algun lado de microchip pero ya me hiciste dudar

Crossfiress

me parece y no se mucho de assembler pero creo que el TrisA, 3 deberia ser trisA,0 o trisA,253
11/05/2012 #7
Moderador

Avatar de D@rkbytes

crossfiress dijo: Ver Mensaje
pic 16f84a-20/p
hola como estan, espero me ayuden estoy retomando el camino de los pic y cuando monto el circuito de prueba no hace nada creo que el problema esta en el crystal 4mhz porque cuando lo toco empieza a funcionar le eh cambiado c1,c2 desde 15pf hasta 33pf llevandolo a tierra pero no responde !que puede ser el problema?
Saludos crossfiress

Analizando tu código, veo que quieres encender y apagar un LED por RA3
Y pienso que lo quieres encender y apagar cada medio segundo.
Sin embargo la rutina que estas generando, no hace un retardo de 500mS
Lo que estas generando con esa rutina, es una frecuencia de 500 Hertz por RA3.
Así que nunca veras que se encienda y se apague. Si todo lo tienes bien conectado,
el LED lo deberías ver permanentemente encendido.
Otra cosa que note es que para cambiar de estado a RA3, usas la instrucción TRISA
Si funcionaria de esa manera, pero la estas usando fuera del banco correspondiente.
Lo conveniente es usar bsf PORTA,3 para poner a 1 RA3 y bcf PORTA,3 para ponerlo a 0.

Una cosa que no entiendo, es como compilaste el programa, si incluyes los fuses,
pero no estas declarando el uso de la librería P16F84A.INC
Y aparte el compilador no reconoce la palabra de configuración si la escribes con minúsculas.
Ni tampoco reconoce el nombre de los registros con minúsculas o capitalizados.

Puede ser por la configuración del Case Sensitive.
Pero en mi MPLAB no la encontre, y recuerdo que en versiones viejitas si estaba.

Para generar los retardos, te recomiendo que uses el programa PIC DELAYER
Muchos le dicen PIC Delay o PDEL, sin embargo el autor cita que se llama PIC DELAYER.
Es gratuito y lo puedes buscar por aquí en el foro o por internet.
Con ese programa puedes generar los retardos con mucha precisión.

Bien, pues aquí te dejo el programa corregido y te garantizo que debe funcionar,
si sigues las recomendaciones que ya te hicieron anteriormente.
Nota. El retardo de 500mS que puse, esta calculado para usar un cristal de 4Mhz.

Código:
    list p=16f84a
    include <p16f84a.inc>
    __config _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

    CBLOCK 0Ch
    PDel0
    PDel1
    ENDC

    org 0

inicio
    bsf        STATUS,5
    clrf    TRISA
    clrf    TRISB
    bcf        STATUS,5
    clrf    PORTA
    clrf    PORTB    

x2
    bsf        PORTA,3
    call    retardo
    bcf        PORTA,3
    call    retardo
    goto    x2

retardo    movlw     .239      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .232      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3  clrwdt              ; 1 ciclo delay
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL4  goto PDelL5         ; 2 ciclos delay
PDelL5  goto PDelL6         ; 2 ciclos delay
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
        end
lubeck dijo: Ver Mensaje
los que esten en desuso se ponen como entradas no???
yo lo lei por algun lado de microchip pero ya me hiciste dudar
Saludos lubeck
Yo prefiero dejar los pins sin usar como entradas, muchos prefieren dejarlos como salidas.
No le veo el caso en dejarlos como salidas, ni como dicen configurarlos como entrada, y mandarlos a VSS
Yo los dejo configurados como entradas, y todo anda muy normal.

Suerte y hasta luego.
11/05/2012 #8


Saludos lubeck
Yo prefiero dejar los pins sin usar como entradas, muchos prefieren dejarlos como salidas.
No le veo el caso en dejarlos como salidas, ni como dicen configurarlos como entrada, y mandarlos a VSS
Yo los dejo configurados como entradas, y todo anda muy normal.
Hola Dark...

pues me entro curiosidad y me puse a investiagar un poco y encontres estos dos temas...
http://www.todopic.com.ar/foros/index.php?topic=23526.0
Pines sueltos (no usados) en PIC, que hacer con ellos?

y por lo que dicen si es mejor ponerlos como salida, aunque juraria que vi lo contrario en alguna pagina de microchip, aunque pude haber malinterpretado, y la verdad no recuerdo donde lo lei....

por otro no se si con ensamblador se tengan que definir como entrada o como salida pero definirlos de algun modo para no dejarlos como se dice "a la buena de dios " y que cause inestabilidad en el micro.
11/05/2012 #9


mil gracias a todos por aportar sus conocimientos el problema era de soft porque calcule mal el retardo pense que al contar hasta mil era un milisegundo pero al ver el codigo de Darkbytes vi que estaba equivocado y para compilar uso el pic simulator ide aunque instale el mplab ide ahora voy a elaborar un programa que me calcule el tiempo en visual basic
11/05/2012 #10
Moderador

Avatar de D@rkbytes

lubeck dijo: Ver Mensaje
Hola Dark...

pues me entro curiosidad y me puse a investiagar un poco y encontres estos dos temas...
http://www.todopic.com.ar/foros/index.php?topic=23526.0
Pines sueltos (no usados) en PIC, que hacer con ellos?

y por lo que dicen si es mejor ponerlos como salida, aunque juraria que vi lo contrario en alguna pagina de microchip, aunque pude haber malinterpretado, y la verdad no recuerdo donde lo lei....

por otro no se si con ensamblador se tengan que definir como entrada o como salida pero definirlos de algun modo para no dejarlos como se dice "a la buena de dios " y que cause inestabilidad en el micro.
_OFF_TOPIC_ON
Ok. Saludos.
Sip. Ya había leído esos posts, y otros más acerca de eso, pero en realidad no hay nada definido.
Lo que si te puedo decir, es que yo dejo los pins no usados como entradas por varias razones.
1.- Cuando programas sin configurar los TRISX
Podrás notar que al arrancar el PIC los pins de los puertos están como entradas.
Y esto se puede deber a el POR (Power On Reset) que establece los pins como entradas al iniciar el PIC.
2.- Como los PIC tienen entradas TTL no tienden a oscilar, así que los pins no usados pueden quedar flotando.
3.- Dejar los pins no usados como entradas previene daños por contención accidental.
4.- Desde que llevo usando PIC's he dejado los pins sin usar como entradas y jamás
he tenido problemas de estabilidad, o que provoquen cosas extrañas en su funcionamiento.
Les he acercado teléfonos celulares y he transmitido en varias frecuencias cerca de ellos,
sin notar absolutamente nada raro en su comportamiento.
En el trabajo usamos lámparas fluorescentes, hornos de micro ondas, compresores,
artefactos que generan ruido, etc. Y los PIC siguen funcionando sin problemas.
Ahora tomando una cosa en consideración.
¿Que no todos los PIC necesitan un oscilador para trabajar? ¡Claro que si!
¿Entonces porque esa oscilación no les afecta a los pins configurados como entrada sin usar?
Bueno, en lo personal esa es mi opinión, y se ha visto que se pueden configurar como gusten.

Acerca de si en ensamblador se deben configurar como entradas o salidas...
Es lo mismo para cualquier lenguaje de programación.
A fin de cuentas el PIC hará lo que tu le has programado.

Suerte y hasta luego.

_OFF_TOPIC_OFF

---------- Actualizado después de 5 minutos ----------

crossfiress dijo: Ver Mensaje
mil gracias a todos por aportar sus conocimientos el problema era de soft porque calcule mal el retardo pense que al contar hasta mil era un milisegundo pero al ver el codigo de Darkbytes vi que estaba equivocado y para compilar uso el pic simulator ide aunque instale el mplab ide ahora voy a elaborar un programa que me calcule el tiempo en visual basic
Saludos crossfiress.
Bien, pues resuelto el caso.
Cuando diseñes el proyecto para generar los retardos, espero puedas subir el proyecto.
Seria bueno tenerlo por aquí.
11/05/2012 #11


Ok...

pues si... yo también siempre los pongo como entradas y tampoco he experimentado nada extraño.... pero bueno, no fue ese el problema de este tema....

Saludos...
11/05/2012 #12


el problema de entradas es que configures algo como entrada que tenga alguna funcion, y que no le hayas puesto bien la configuracion de las resistencias+pulsador o lo que quieras poner, si lo pones mal, o simplemente no pones nada e implementas una funcion a esa entrada, con acercar el dedo, sera como si unes la entrada a masa creo recordar, no se si sera el factor capacitivo del cuerpo o lo que xD pero pasar pasa.

Un saludo y bueno espero haber aclarado las dudas con los problemas que pueden generar
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.