Autor Tema: Ayuda con el PIC 16f84  (Leído 3916 veces)

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

Desconectado WallyNet

  • PIC12
  • **
  • Mensajes: 60
Ayuda con el PIC 16f84
« en: 30 de Diciembre de 2002, 23:14:00 »
Hola gente, son nuevo en esto. Hice el programador sugerido en este foro, del  amigo Pablin.com. Lo arme y funciona!!! Al menos graba y verifica bien (segun mensajes del Ic-Pog). El problema es que solo quiero prender un led a modo de prueba. Lo programo y al probarlo no prende. Lo probe con un cristal de 4Mz (XT) y con un RC y nada. Será necesario mandar los pines que no uso con una resistencia de 10K a +5v ? Estoy usando para compilarlo el Mplab y lo grabo con Ic- Prog del asambler. Cualquier sugerencia es bienvenida. El programa es el siguiente (es la primer parte del ejercicio)

list p=16f84

status equ 0x3
porta equ 0x5
trisa equ 0x5
portb equ 0x6
trisb equ 0x6

rp0 equ 5

rb0 equ 0              ; Omita esta línea hasta que se le

                       ; indique en el transcurso del programa.

contador res 1         ; Reserva un espacio de memoria a la

                       ; variable CONTADOR.

contador1 res 1        ; Reserva un espacio de memoria a la

                       ; variable CONTADOR1.

; Estas dos líneas son variables definidas por el usuario reservadas para
; una subrutina de retardo que utilizaremos.

org 0                  ; Hace referencia a una dirección

                       ; de memoria en el área de programa

                       ; a partir de la cual insertaremos

                       ; las instrucciones nemónicas que el

                       ; compilador deberá convertir.


; El siguiente paso es entrar al BANCO 1 para definir los puertos.


bsf status , rp0         ; Entramos al BANCO 1, RP0 lo

                       ; declaramos arriba

                       ; y por lo tanto es igual a 5.

movlw B"00000"         ; Movemos 00000 al registro de trabajo.

movwf trisa            ; Configuramos el puerto A como salida.

movlw B"00000000"      ; Movemos 00000000 al registro de trabajo.

movwf trisb            ; Configuramos el puerto B como salida.

bcf status , rp0         ; Salimos del BANCO 1.


; Ahora podemos conectar a cualquiera de las salidas un LED,
; encenderlo y apagarlo. Detalles de conexión al final.
; Conectemos un LED a la salida RB0 del puerto B,
; si lo quisieramos encender solo tendriamos que
; poner un UNO en la SALIDA RB0 del puerto B. Como?  asi:

 
inicio                  ; Etiqueta definida por el Usuario.

bsf portb , 0             ; Usted podria poner también en

                        ; vez del cero la variable

                        ; declarada RB0, asegurandose que

                        ; esté en el encabezado.

                        ; Si lo desea agregue la linea que

                        ; omitió y cambie el cero

                        ; por RB0


end

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Ayuda con el PIC 16f84
« Respuesta #1 en: 31 de Diciembre de 2002, 11:02:00 »
Hola, me alegro que te funcione el programador...
El programa que envias... esta completo?...
ya que por lo que veo, solo prende el led.... pero no emplea a CONTADOR, no hay ninguna demora....
yo te aconsejo que entres en www.todopic.com.ar
en la seccion asembler, hay una parte para principiantes... con ejemplos ya verificados y muy simples...
Cuando complilas, fijate si el pic es 16f84 o 16f84a...
colocaste la pata de MTCLR  con una r a positivo?...
los cap. del osc son de 20pf? (me ocurrio que una vez , uno decia 22pf y media 40pf!!!!)
esta bien polarizado el led?

espero tus comentarios

Feliz 2003
Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con el PIC 16f84
« Respuesta #2 en: 31 de Diciembre de 2002, 14:27:00 »
Bien amigo WALLYNET, te adjunto unos archivos. El primero es el ASM (wallynet.asm) con un ejemplo de como encender y apagar un led mas o menos como el tuyo. Como te indico, la rutina de retardo no la he calculado yo, si no que lo he hecho con el programa que encontrarás en la página de todopic.
El segundo archivo es para el Proteus (proteus.zip) ahora que está de moda, que me bajé hace unos días gracias a pacalaconcurso, y que como verás es una pasada y muy fácil de usar. El cristal no hace falta ponerlo (basta con ponerlo en la configuración del micro) pero lo he puesto para que te sea más fácil verlo si lo queires montar.
Por cierto, si no tienes el proteus bájatelo. Ocupa mucho (50MB), pero no te arrepentiras.
Dale al símbolo de "play" y verás. Te evitas de hacer el montaje para que luego no funcione.
Bueno, espero que te haya servido de ayuda.

Feliz año!!
Saludos desde Huelva (ESPAÑA)

Desconectado WallyNet

  • PIC12
  • **
  • Mensajes: 60
RE: Ayuda con el PIC 16f84
« Respuesta #3 en: 01 de Enero de 2003, 21:48:00 »
Hola amigos, gracias por contestar. A "todopic" te comento que efectivamente el programa esta incompleto, lo que hace es prender y apagar un led y para esto son las etiquetas sobrantes, por ahora solo queria prender el led. Voy a tomar en cuenta la R a MCLR que no la tenia. Le colocare una de 10K, Estara bien? El led esta bien y los capacitores tambien. El micro dice 16F84-04/p, lo tomo como 16F84 ? Luego te cuento como me fue. Gracias
A "cucaracha" . Me has interpretado bien mi proposito. Gracias por los archivos y sugerencias, que pondre en practica. Tratare de conseguir el proteus aunque no lo he podido bajar  de "pacalaconcurso" Te mantende al tanto de mis progresos.
Hasta pronto WallyNet

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Ayuda con el PIC 16f84
« Respuesta #4 en: 02 de Enero de 2003, 10:56:00 »
Hola, bueno, esta correcto, pero si no tenias el MCLR  a positivo, lo mas seguro es que se estaba reseteando....

mantenenos al tanto de tus avances ok?

Suerte
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Ayuda con el PIC 16f84
« Respuesta #5 en: 04 de Enero de 2003, 07:32:00 »
Hola, en el primer ejemplo, al ser una demora tan pequeñe, en realidad, tedestella muy rapido y la observas encendida
en el segundo se tendria que apreciar un parpadeo...
por que no llamas 2 veces a la demora para generar 1 segundo....
esta tarde compilo y pruebo el programa ok

Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado WallyNet

  • PIC12
  • **
  • Mensajes: 60
RE: Ayuda con el PIC 16f84
« Respuesta #6 en: 04 de Enero de 2003, 23:20:00 »
Hola de nuevo Estube toda la tarde experimentando. Llegue a la conclusion que el problema esta en el PIC o en la manera de grabarlo. Digo esto porque simule los archivos que mando "cucaracha" y en el Proteus funciona OK (fue mi primera simulacion con el prog. y es exelente). El mismo .hex lo utilice para grabar el PIC y no parpadea el led, queda siempre prendido. Estoy usando el Ic-Prog para programar. Los fusible de prog estan desactivados WDT, CP, PWRT. Osc=XT. Me llama un poco la atencion lo que dice en la ventana de ensamblador de Ic-Prog dice:

LIST P=16G84, F=INHX8M
include "P16FXX.inc"

No se que signifiquen exactamente...
Cualquier ayuda sera bienvenida. Bye

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con el PIC 16f84
« Respuesta #7 en: 05 de Enero de 2003, 00:40:00 »
Si usas un cristal de 4MHz pon LP en lugar de XT y prueba. Lo de LIST P=16G84 no tengo ni idea que es. A mi me aparece LIST P=16F84 en lugar de la G que te aparece a tí. No se si te has equivocado al escribir o que es lo que te sale. Voy a montarlo yo haber que pasa.
Saludos desde Huelva (ESPAÑA)

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con el PIC 16f84
« Respuesta #8 en: 05 de Enero de 2003, 01:24:00 »
Ya!!
1º supongo que lo de la G es porque está en el teclado junto a la F y te confundiste.
He probado con otra rutina de retardo hecha por mi y funciona. Entonces me he fijado que te puse al definir las variables del retardo "res". Pues nada cambias eso por "equ" y le das a una 20H y a la otra 21H por ejemplo y ya funciona.
Mi duda ahora es por que leches en el Proteus funcionaba, aunque si te fijas duraba bastante más de medio segundo por estado del led.
Ahora OK!!
Te dejo el asm ya modificado y el otro con la otra rutina por si te sirve.
Saludos desde Huelva (ESPAÑA)

Desconectado WallyNet

  • PIC12
  • **
  • Mensajes: 60
RE: Ayuda con el PIC 16f84
« Respuesta #9 en: 06 de Enero de 2003, 22:11:00 »
Hola "cucaracha" !!! te cuento que tu programa andubo de 10. La verdad es que no se muy bien por que no andaba el otro, me gustaria saber para no cometer el mismo error(supongo que el problema esta en las etiquetas "res" ya probare...). Comparto tus dudas sobre el Proteus y el por que simulaba bien y en el PIC no, acaso no es tan confiable como parece?
De verdad te agradezco muchisimo, significa mucho para mi porque varias veces me desalente al probar con los pic... pero eso ya es pasado y ahora estoy muchas ganas de experimentar con esta pequeña maravilla. Gracias a Todopic y colaboradores por el apoyo que nos brindan a los que recien empezamos. Por supuesto me mantendre en contacto


 

anything