TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Sispic en 23 de Mayo de 2004, 05:36:00

Título: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 23 de Mayo de 2004, 05:36:00
Que os parece la idea , se tratria de un cursillo sobre el manejo de estos micros tanto en hardware como en soft .
Mucha gente no sabe como empezar y estoy seguro que unas pocas nociones abririan el insignificante rayito de luz que es necesario para arrancar .

Se trataria de diseñar un entrenador con unos leds y pulsadores , e ir cometando todas las las instrucciones una por una (ASM puro y cristalino como debe ser para realmente aprender ).

¿ cuando empezamos ?

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 23 de Mayo de 2004, 08:03:00
Esto seria una pasada si lo haceis hariais un gran favor a mucha gente, yo me apunto pk necesito manejar un pic para mi trabajo de investigacion del insti y no tengo ni idea de como ba todo esto, a demas tengo muchos proyectos en mente k con un pic se harian. A ver si os animais a hacer el cursillo.

Salu2 a to2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: JOLUCI en 23 de Mayo de 2004, 12:20:00
Alô Amigo Sispic,

Acho sua idéia genial .
Isto fará deste fórum o mais completo mundialmente, pois ele já é o melhor .
Também acho que deve-se começar do zero, mas não ficar somente no básico, dependendo do interesse dos participantes, isto pode se aprondundar muito tornando se um grande curso  sobre microprocessadores .
Sugiro também o intercambio de materiais técnicos como apostilas, tutoriais, projetos básicos, softwares e etc... entre os participantes .
Apesar de não ser expert na matéria, podem contar com minha colaboração .
Não deixemos esta idéia morrer .

Até mais !!!

(quite los <enter> que alargaban este post  Norberto)
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Lord_ZealoN en 23 de Mayo de 2004, 12:29:00
Buff, la verdad, estaría estupendo, porque yo no se ni por donde empezar.

De hecho no se ni siquiera si usar c, asm o picbasic.

Un saludo y felicidades por la inciativa, a ver cuando se pueden ver resultado
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 23 de Mayo de 2004, 12:39:00
Un entrenador es lo mismo que un programador??
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 23 de Mayo de 2004, 18:55:00
Un entrenador es donde verificas el perfecto funcionamiento de tus programas....
Testeos a nivel hardware...

Y un programador es ovio....
de todos modos casi todos los entrenadores vienen preparados para programar tb.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: ruben_burrito en 23 de Mayo de 2004, 21:17:00
bueno me parece una excelente idea ya que la verdad es que saber pic sin asm es como manejar un carro sin saber que motor y que cosas puede tener tu carro,como si  te fueras en la electronica de un trancaso al amplificador operacional brincandote los transistores y es necesario saber para comprender mejor ya que mucha gente piensa que el saber un lenguaje de alto nivel es suficiente y no la verdad es que la personas que mas saben es por que ya han manejado el asm luego se acomodaron con el lenguaje que mas le gusta pero sabiendo como manejar registros, etc. que solo aprendes en asm. asi que yo me apunto para todo lo que pueda apoyarte SISPIC me parece una gran idea.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: ruben_burrito en 23 de Mayo de 2004, 21:21:00
bueno aqui esta una muestra de lo que mas o menos se pretende segun yo le entiendo a SISPIC este es el primer programa que hice en los tres lenguajes que uso:
http://miarroba.com/foros/ver.php?temaid=1987921&foroid=382961

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: ruben_burrito en 23 de Mayo de 2004, 21:30:00
con lo que se refiere al entrenador para pics es segun los que e visto no se como lo plantearia SISPIC pero como yo lo entiendo
es una placa en la que se pueda programar el pic y tambien se pueda colgarle al rededor perifericos como leds, displays, lcds, etc. no se como seria pero me imagino que por hay va la cosa mas o menos, hay que esperar que sugiere SISPIC y ponernos de acuerdo todos lo interesados.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Lord_ZealoN en 24 de Mayo de 2004, 02:41:00
Estoy deseando empezar, peroo...

podríais contestarme a la pregunta que hice en otro post?

http://miarroba.com/foros/ver.php?temaid=1985411&foroid=382972
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: ruben_burrito en 24 de Mayo de 2004, 22:45:00
bueno el pic lo puedes usar en lo que quieras desde prender un foco, hasta hacer enlaces con codificadores, etc. es muy amplio el uso que se le puede dar al pic.
bueno eso de la programacion si deveras quieres aprender a usarlo bien con todas sus bondades mi opinion es aunque sea empapate de asm y luego incursiona en otro lenguaje ya sea el c o el basic pero creo importante sepas asm. y de los links con que le des a un buscador la palabra te dara gran información de lo que buscas y tambien no te olvides de la pagina de TODO PIC que para mi fue una bendicion y ademas la saque de un buscador entonces adarle y ojala te ayude.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 24 de Mayo de 2004, 22:59:00
Creo que dándole una vuelta al foro, podrás aprender casi todo lo necesario para empezar....
Tienes secciones de desarrollo de pcb, de proyectos, de programación en PBP, C, ASM....
Vamos, que creo que en este foro no falta de nada, y tienes toda la documentación necesaria para empaparte del mundillo del pic...
En gran parte de los post, puedes encontrar fotos de los proyectos, esquemas electricos y manuales.....

Mi primera recomendación, es que te decidas por uno de los lenguajes de programación,si es posible el ASM y te bajes un manual...

Por mi parte eres bienvenido al foro, y estaré por aqui para ayudar en lo que esté dentro de mi manoo mejor dicho, de mi cabeza.
Un saludo Y anímate que como bien dice todopic, estos bichitos, crean adicción....
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: TXUSTOPO en 27 de Mayo de 2004, 05:16:00
Hola a tod@s. Porque no empezamos nosotros con el cursillo poco a poco a poco y luego que se vayan uniendo los que saben y nos echen una mano en los problemas que tengamos.
Cuando queráis empezamos.
Si eso pedidle al administrador que cree otro post con chincheta para el cursillo nuestro...... QUE OS PARECE?
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 27 de Mayo de 2004, 05:33:00
Yo estoy de acuerdo  , aunque me considero como alumno ya ire aportando cosas .
Lo mas importante para mi seria la de asm , haver si se van animando los maestros a ir incluyendo info .

Heeeeeee...... no se me escaqueennnnn
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 27 de Mayo de 2004, 22:03:00
Sisco, si tu te consideras un alumno???
Yo que soy???
Tambien estoy de acuerdo contigo con el tema del asm.... voto por empezar aprendiendo asm... Y lo mas importante, aprender estructura de los micros, y aprender a entender los datasheets... porque a base de preguntar, se sacan las cosas pero mas de una vez, evitaríamos las preguntas, sabiendo leer el datasheet...!

Verdad sisco, que en mi caso si leyese el data, no haría tantas preguntas....
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: TXUSTOPO en 28 de Mayo de 2004, 02:34:00
Bueno pues en cuanto os decidáis empezamos, pero anrtes decir que programas vamos a usar y de donde se pueden descargar, etc........
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: ruben_burrito en 28 de Mayo de 2004, 10:32:00
bueno en lo que consierne al tema yo tambien me considero un alumno ya que los compañeros sispic y abago son mas adelantados que yo la verdad.
con  eso de que se ocupa sobre lo de que necesitas en mi parecer para iniciar a navegar pics es tener el manual de el pic que vas a usar donde lo puedes descargar de la pagina www.microchip.com hay lo vas a encontrar tienen todos lo manuales y tambien necesitas un compilador que pues hay mismo lo puedes bajar el cual es MPLAB con este compilas el asm y tambien a mi ver necesitas un programador el cual en el foro hay un apartado de puros programadores y encontraras gran variedad y tambien claro esta necesitas un PIC y creo que para empezar eso esta bien luego necesitaras aditamentos para colgarle al pic, a tambien necesitaras un programa para bajarle el codigo al pic el mas usado creo yo es el ic-prog que tambien lo puedes bajar de             www.ic-prog.com, bueno no se que mas yo empece con eso y ojala te ayude.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 28 de Mayo de 2004, 11:44:00
Estoy de acuerdo con rubén, pero yo sin ninguna duda cambio el icprog por el winpic8000
Tengo o no tengo razon sisco???
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 28 de Mayo de 2004, 12:21:00
Abago , estoy contento que pienses así aunque el wp800 está orientado a torpes como yo que necesitan programar 1.000.000 de veces el pic para que le ovedezca

El Icprog esta muy bien , pero no se el por qué programa tan lentamente y se hace eterno si tienes que programar muchas veces  , ademas wp800 lo lanzas con el editor que uses y es muy rapido ( casi com el downloader ).
No diria que es mejor ni peor , es diferente y cadacual escoja el que mas le convenga .

Bueno quien se anima :

Un poco de histora .
Que es un micro .
De donde salen los microcontroladores .
Posivilidades , aplicaciones , limitaciones.

tambien son buenos los enlaces a otros sitios .


Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 29 de Mayo de 2004, 04:47:00
Hola a todos ,

Bien lo primero seria tener el mpasm que es el programa que transforma el asm a hex. este es el archivo que utilizaremos para grabar el pic , y el pic grabarlo con el ic- prog .

Podeis bajaros el mplab, alli esta todo , incuido el mpasm. Os recomiendo que os bajeis la version 5.7.40,  ya se que no es la mas reciente pero hay un manual en castellano de esta version , y para empezar va muy bien.

Para bajar el mplab http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1999&ty=&dty=§ion=&NextRow=&ssUserText=MPLAB&DesignDocSelect=

Y el manual aqui http://www.todopic.com.ar/apuntes/

Para el ic-prog  aqui  http://www.ic-prog.com/index1.htm
Apuntar que  debeis bajaros el driver del ic-prog si utilizais XP.

Bueno personalmente , utilizo el bloc de notas para hacer los programas , pero podeis realizarlo con el mplab , yo me hago un acceso directo del mpasm , este lo encontrareis en la carpeta que se ha creado al instalar el mplab .
Cuando lo tengais todo instalado , continuamos , ok.  

SALUDOS
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: TXUSTOPO en 29 de Mayo de 2004, 12:22:00
Ok, yo ya lo tengo todo.... En cuanto estén os demás seguimos
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Lord_ZealoN en 29 de Mayo de 2004, 18:25:00
Yo hasta esta semana que entra no, la siguiente, no tendré el material.

Por mi parte empezar y lo sigo en cuanto lo tenga
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Meybel en 30 de Mayo de 2004, 04:32:00
¿Y por qué utilizar la versión MPLAB 5.7 y no la MPLAB 6.xx que es la más actual?.

Hay libros que incluso traen ya  un tutorial para la versión MPLAB 6.xx.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 30 de Mayo de 2004, 10:45:00
Conoces (o alguién conoce) un tutorial (manual) para esa v.6 ?
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 31 de Mayo de 2004, 10:26:00
El MPLAB nunca lo he usado pero como tenemos que ponernos todos de acuerdo , será una buena excusa para ir aprendiendo como funciona .

Tambien será necesario algun tipo de entrenador para ver lo que estamos haciendo , nada unos leds y pulsadores que con esto ya se puede hacer candela de cosas y no complicar con displays etc.

Cuanto mas binario y hexa usemos (mejor).

Bien , alguien se ofrece a hacer un squemita para poder ir todos a una ?
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: JOLUCI en 31 de Mayo de 2004, 18:44:00
Olá amigo Sispic,

Como sou iniciante em PIC, não tenho circuitos próprios para colocar no cursinho .
Mas encontrei este site que tem projetos básicos que vem ao encontro das idéias deste cursinho :
http://www.poptronics.com/interactive/FreeProjects/FreeProjectsIndex.html
http://www.poptronics.com/interactive/FreeProjects/PIC_LAB-1/P1-top.html
Este site está em ingles e para me ajudar uso o tradutor on line http://tr.voila.fr que é muito bom .
Tenho apostilas de PIC em portugues e se houver interesse dos participantes posso passar aos amigos .
Estou ansioso em ver este cursinho avançar .
Dentro de minhas possibilidades, estou disposto em colaborar .

Até breve !!!
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jca en 31 de Mayo de 2004, 19:50:00
yo tengo un entrenador para el 16f84 muy sencillo, escribí un mensaje creo que es el último de la primera página,ofreciendo el esquemilla del T20 modificado para grabar pics de 28 y el del entrenador pero nadie ha dicho nada, a lo mejor por encontrarse ahi nadie lo ha leido, bueno

Un Saludo y me teneis a vuestra disposición.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 01 de Junio de 2004, 13:38:00
Hola de nuevo ,  ¡¡¡¡¡  que , nos animamos y empezamos !!!!!!!!!!

Bueno ,aqui os dejo el enlace de las instrucciones a utilizar , echarles un vistazo  http://www.todopic.com.ar/instrucciones.html
,  que os parece si empezamos por encender un led , mediante pulsador.

Para empezar el programa , pondriamos el pic que vamos a utilizar.

 LIST           P=16F84A    

y para acabar el programa , ( es muy importante no olvidarlo ) .

end

Deciros que el 16f84 tiene 68 registros para nuestro uso, y van desde la direccion 0x0c, hasta 0x4f, esto lo teneis en la memoria de datos , alli se guardan datos , no confundais datos con las direcciones , ok .

Bueno ir echando un vistazo a las instrucciones y preguntar si no entendeis alguna.

SALUDOS




Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: ruben_burrito en 01 de Junio de 2004, 19:32:00
bueno ya entrando en tema alguien me puede pasar una liga o pagina donde pueda aprender a usar el simulador del mplab, para obviamente simular los programas.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 02 de Junio de 2004, 15:14:00
Pues ahora no me puedo descargar los programas pk tengo el pc petado 8 estoy en ksa de un amigo) en cuando lo tenga arreglado voy a empezar con todo esto.

Saludos y adelante con el cursillo
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: TXUSTOPO en 04 de Junio de 2004, 11:45:00
Bueno andyros cuando quieras seguimos y vamos viendo......
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: doppel en 04 de Junio de 2004, 13:35:00
Hola a todos !
vengo siguiendo este cursillo que iniciaron y me parece una muy buena idea, les cuento que tengo un circuito de un entrenador con el 16f876 que creo que les seria de mucha utilidad para ir aprendiendo y practicando asi que si me dicen como puedo subirlo, me encantaria compartirlo con todos uds!

saludos.-
Doppel - La Pampa
Argentina
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 04 de Junio de 2004, 14:47:00
Hola a todos que interesante esta la cosa. he recopilado bastante infomracion para comenzar con mi programador algunos pic como el 16f84 que quiero aprender con el...

bueno estoy en la face de lectura.. aprendiendo nomenclaturas ASM, y viendo ejemplos para empesar por algun lado la tipica prendida de led y paagado etc. cosas basicas que sirban para seguir en lo ma complicado..

Bueno espero que sigan los animos y empesemos con alguna cosilla facil de ASM o algo por el estilo y vamos comentando ...


que no tengo claro lo de ASM aun podra elguno dar un ejemplo concreto de algun pedasito de ello. y comentarlo.  no si esta bien esto pero aqui va algo que pille por ahi..


inicio  bsf     STATUS,RP0          ;Cambio al banco 1
          clrf    TRISA                     ;Puerto A como salida
          movlw   b"00111111"      ;Mueve valor literal a  W
          movwf   TRISB                ;RB0 - RB5 como entradas
                       ;RB6 - RB7 como salidas
          bcf     STATUS,RP0           ;Cambio al banco 0
 


Explicacion:


Una vez en el banco uno, podemos manipular los registros de configuración de puertos TRISA y TRISB. En este caso todos los pines del puerto A son salidas, llenando de ceros los 8 bits del registro TRISA.
El registro TRISB tiene tanto ceros como unos, los ceros establecen pines de salida y los unos establecen pines de entrada de datos
 sera eso?

By saludos.






Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 04 de Junio de 2004, 23:06:00
Realmente, se hace así... y lo del tema de cambiar de bancos, es para poder acceder a los registros necesarios...
creo recordar, que en el banco 1 están los tris, y en el 0 los port.
de todos modos eso lo puedes ver mejor en el datasheet...

si me equivoco que alguien me corija... que mis conocimientos de asambler, son a base de leer y leer... pero no son demasiado fiables...
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 05 de Junio de 2004, 04:11:00
Hooooola, como va .

Hemos aprendido a empezar y acabar los programas , sabemos que tenemos 68 registros para nuestro uso , sabemos configurar las puertas como muy bien ha dicho "  Chile_irc  " y "  Abago  ".

En el programa se suelen poner comentarios para poder entender mejor el programa , los comentarios va detras de ; todo lo que este detras del punto y coma, el mpasm no lo tendra en cuenta.
Bien,  tambien hay unos registros de funciones especiales estos van desde la direccion  0x00 hasta 0x0B ( 12 registros ) .
Luego estan las etiquetas , es una manera de identificar los registros dandole un nombre que nosotros queramos , asi sera mucho mas facil que poner una direccion.

Un ejemplo, el registro estado esta en la direccion 0x03 ( se me olvidava todo numero que vaya precedido por un 0x esta en base hexadecimal, tambien trabajaremos en base decimal y binario ) si en vez de identificarlo con la direccion 3 le pongo una etiqueta me sera mas facil saber cual es . ¿ como ?  ESTADO     EQU    0x03 con un Equ,  





Esto quedaria asi.

Codigo:
     LIST     P=16F84A     ;EL PIC QUE VAMOS A UTILIZAR.



;***************************************************************

;ETIQUETAS DEL PROGRAMA.
             
ARCHIVO_1   EQU      0X0C         ;1ªDIRECCION LIBRE PARA NUESTRO USO.
ESTADO      EQU      0X03         ;ESTADO,  ESTA EN LA DIRECCION 3
;***************************************************************


;AQUI EMPIEZA EL PROGRAMA.

            ORG      0            ;ORIGEN DEL PROGRAMA, AQUI EMPIEZA.
               
            goto     INICIO       ;VA A INICIO PARA SOBREPASAR EL
             
            ORG      5            ;VECTOR DE INTERRUPCION.


INICIO      bsf      ESTADO,5     ;ME SITUO EN EL BANCO 1
            movlw    b"11111"     ;PUERTAA COMO ENTRADA.
            movwf    PUERTAA
            clrf     PUERTAB      ;PUERTAB COMO SALIDA.
            bcf      ESTADO,5     ;NOS SITUAMOS EN EL BANCO 0.

            END      


Me imagino que habras muchas dudas , asi que empezar a preguntar.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: adrian2a1 en 05 de Junio de 2004, 06:26:00
Propongo analizar el siguiente programa:



Codigo:

; Por el Puerto B se obtiene el dato de las cinco líneas del Puerto A al que está conectado
; un array de interruptores. Por ejemplo, si por el Puerto A se introduce "---11001", por
; el Puerto B aparecerá "xxx11001" (el valor de las tres líneas superiores no importa).

; ZONA DE DATOS **********************************************************************

   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC   ; Configuración para el
                     ; grabador.
   LIST   P=16F84A      ; Procesador.
   INCLUDE <P16F84A.INC>   ; Definición de los operandos utilizados.

; ZONA DE CÓDIGOS ********************************************************************

   ORG    0      ; El programa comienza en la dirección 0 de memoria de
            ; programa.
Inicio   bsf   STATUS,RP0   ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
   clrf   TRISB      ; Las líneas del Puerto B se configuran como salidas.
   movlw   b"11111111"
   movwf   TRISA      ; Las líneas del Puerto A se configuran como entradas.
   bcf   STATUS,RP0   ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
Principal
   movf    PORTA,W      ; Lee el Puerto A.
   movwf   PORTB      ; El contenido de W se visualiza por el Puerto B.
   goto    Principal      ; Crea un bucle cerrado.

   END         ; Fin del programa.

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 05 de Junio de 2004, 11:18:00
ARCHIVO_1   EQU      0X0C         ;1ªDIRECCION LIBRE PARA NUESTRO USO.
ESTADO      EQU      0X03         ;ESTADO,  ESTA EN LA DIRECCION 3
;***************************************************************


;AQUI EMPIEZA EL PROGRAMA.

            ORG      0            ;ORIGEN DEL PROGRAMA, AQUI EMPIEZA.
               
            goto     INICIO       ;VA A INICIO PARA SOBREPASAR EL
             
            ORG      5            ;VECTOR DE INTERRUPCION.

me pillaste en los ORG y GOTO al inicio los EQU no me quedan claro aun y en :

INICIO      bsf      ESTADO,5     ;ME SITUO EN EL BANCO 1

no es :

 INICIO      bsf      ESTADO,RP0     ;ME SITUO EN EL BANCO 1


el resto lo entendi perfectamente pero qui quede varado..

los mismo para el segundo ejemplo de adrian

__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC   ; Configuración para el
                     ; grabador.
   LIST   P=16F84A      ; Procesador.
   INCLUDE <P16F84A.INC>   ; Definición de los operandos utilizados.

; ZONA DE CÓDIGOS ********************************************************************

   ORG    0      ; El programa comienza en la dirección 0 de memoria de
            ; programa.



 tambien expliquen un poco eso. kede con las dudas. del porque.. jeje



Saludos

chile_irc
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 06 de Junio de 2004, 04:44:00
Hola que tal , los  ORG  significa  " origen " y le dice al ensamblador  en que direccion empieza el programa, ORG         0 empezara a grabar en la direccion 0 , ,  GOTO ,  si te das cuenta al lado del goto se pone otra  palabra en este caso  INICIO con esta instruccion el programa salta hasta donde se en cuentre  INICIO, va a la direccion donde esta, 2 direcciones mas abajo.
Con los EQU, tu mismo te has dado cuenta para que sirve , es lo mismo , me explico el  registro  " ESTADO " ( recuerda que esta en la direccion 3 de la memoria de datos ), tiene 8 bits y el bit que hace que cambiemos de banco es el bit  5,  que se llama RP0, yo he puesto ESTADO,5 , y  ADRIAN  ESTADO, RP0, el ha utilizado un EQU , ( bueno aunque no lo veas , por que esta incluido en el include , que de este ya hablaremos ), como ya te dije es una forma de identificar mas rapido de que bit se trata. esto quedaria mas o menos asi.


Codigo:
        LIST     P=16F84A     ;EL PIC QUE VAMOS A UTILIZAR.



;***************************************************************

;ETIQUETAS DEL PROGRAMA.
             
ARCHIVO_1   EQU      0X0C         ;1ªDIRECCION LIBRE PARA NUESTRO USO.
ESTADO      EQU      0X03         ;ESTADO,  ESTA EN LA DIRECCION 3
RP0         EQU      0X05         ;RP0 EQUIVALE A 5.
;***************************************************************


;AQUI EMPIEZA EL PROGRAMA.

            ORG      0            ;ORIGEN DEL PROGRAMA, AQUI EMPIEZA.
               
            goto     INICIO       ;VA A INICIO PARA SOBREPASAR EL
             
            ORG      5            ;VECTOR DE INTERRUPCION.


INICIO      bsf      ESTADO,RP0   ;ME SITUO EN EL BANCO 1
            movlw    b"11111"     ;PUERTAA COMO ENTRADA.
            movwf    PUERTAA
            clrf     PUERTAB      ;PUERTAB COMO SALIDA.
            bcf      ESTADO,5     ;NOS SITUAMOS EN EL BANCO 0.

            END    


Fijate como ha cambiado, utilizando los EQU .
Con lo de la configuracion del grabador es una manera, mediante el programa de configurar los parametros  que utilizamos para grabar el pic en el ic-prog con esto no haria falta señalar las casillas que le corresponden . Creo que sera mejor explicarlo cuando hayamos terminado el programa y vayamos a grabarlo . ok.

Bueno espero haberme explicado bien si os queda alguna duda , preguntarla.  
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 07 de Junio de 2004, 01:09:00
A nivel muy básico, porque no podemos empezar a explicar las interrupciones al principio del curso... Voy a dar una explicación informativa, pero de momento no util, para no liarnos...

El micro, permite ser configurado para responder a lo que se llama interrupción...
podemos tener interrupción por el pin de rb0, que es la mas usual al empezar... (aunque hay mas tipos de interrupción...)
Si el portb.0 se pone a 1, y la interrupción está definida... El programa dejaría a medias el proceso que tenía en funcionamiento, y pasaría a atender a lo que se llama el handler de interrupción, que no es otra cosa que un pequeño subprograma...
al finalizar, volvería al punto donde se quedó en el programa principal...

sería algo así, como estar enseñando a un amigo tu nuevo coche, y que en ese mismo momento tu novia te pidiese ayuda para abrir la puerta... (interrupción) Como tu novia tiene mas privilegio que tu amigo... dejas de enseñarle el coche... Le abres la puerta a tu novia... y vuelves a enseñar el coche a tu amigo....

Tambien hay que tener en cuenta que en el handler de interrupciones, no debes hacer procesos muy largos....

Ten en cuenta que si tu novia vez de pedirte abrir la puerta, te pide que la lleves en tu nuevo coche al cine...
Posiblemente cuando vuelvas del cine... Tu amigo esté esperándote con cara de mala hostia...
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Nocturno en 07 de Junio de 2004, 02:52:00
Abago, ¿y que pasa si mientras estás con tu novia te quedas "colgado"?

Grandísima e ilustrativa explicación, sí señor.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 07 de Junio de 2004, 03:10:00
La verdad es que suele pasarme que cuando estoy con mi novia... Se me enciende el led rojo que tengo colocado en porte.0...
Me quedo colgado, y ella se enfada muchísimo...
Lo que de momento no consigo encontrar el error....
Y la verdad es que casi siempre me pasa cuando estoy hablando por el foro...

Gracias por los alagos...
La explicación es muy simple... Pero ojalá sirva para algo... y a los nuevos les aclare sus dudas...

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: MGLSOFT en 07 de Junio de 2004, 09:30:00
Hey Abago !!

No sera una cuestion de prioridad de interrupciones, al utilizar la USART ??

O peor aun un desbordamiento de la "Pila", je..je..
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 07 de Junio de 2004, 12:21:00
Lo de la usart, como muy bien sabes, o mejor dicho como muy bien me enseñaste... va a ser que si...

Pero lo de la pila??? se puede producir interrupción por desbordamiento???

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 07 de Junio de 2004, 13:30:00
Gracias abago, ahora ya lo tenco mas claro, cuando querais podeis seguir con el cursillo k ta mu bien.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: MGLSOFT en 07 de Junio de 2004, 13:40:00
Me referia a que se te queda "colgado"..je..je..
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 07 de Junio de 2004, 16:10:00
Ah!, mgl, ya se a lo que te refieres....
La verdad, es que se me quedó sin terminar... De momento, deshabilité la interrupción por timer... Y la usart funciona a las mil maravillas....  en cuanto tenga un rato, miraré a ver porque no puedo compatiblizar le interrución por usart y timer juntas...
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: MGLSOFT en 07 de Junio de 2004, 16:42:00
Si esta hecho en PBP, podras darle mayor prioridad a la interrupcion de usart, solamente debes ordenar los chequeos de los bits de interrupcion.
En assembler es igual el trato.

Si es PBP y utilizas el tiempo de espera del mensaje, trata que este tiempo no sea mayor o modulo del tiempo del timer.
Tambien puedes habilitar el reset del watchdog en la instruccion, para que si supera los 18 milisegundos de espera no se resetee el micro.
Supuestamente el PBP hace esto solito pero yo me convenci que hay que ayudarlo un poco.

En C esto es mucho mas facil, la comunicacion es mucho mas solida, y andan muy bien las interrupciones..

Viste que escribi todo un tramo sin un cjiste.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: doppel en 07 de Junio de 2004, 17:12:00
Hola amigos!
una consulta!!! en el ejemplo de la pagina anterior se ubica el vector de interrupcion en la posicion 5 ...y en la mayoria de los libros de texto me aparece en la 04h ..mi pregunta es la siguiente ...puede ser cualquiera? o es solo una cuestion del programador y por prolijidad! gracias

AQUI EMPIEZA EL PROGRAMA.

            ORG      0            ;ORIGEN DEL PROGRAMA, AQUI EMPIEZA.
               
            goto     INICIO       ;VA A INICIO PARA SOBREPASAR EL
             
            ORG      5            ;VECTOR DE INTERRUPCION.

nota: donde puedo bajar una tabla de equivalencias de numeros  decimales / hex

saludos
Doppel - Argentina
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 07 de Junio de 2004, 22:53:00
Que yo sepa no existe ninguna tabla en la que convertir los datos decimales a hexadecimales....
Con la calculadora de windows en modo científico puedes hacer la conversión....
y sinó tirando de lapiz y papel....

MGL, me asustas....
No me incites a aprender otro compilador ahora que voy entendiendo pbp...
Recuerdas el post donde hablamos de la interrupción de la usart???

http://miarroba.com/foros/ver.php?pag=1&temaid=1673107&foroid=8826

Si lo ves bien, seguimos por hay, porque no debemos adelantar conocimientos en este subforo, no sea que la gente desespere...
como mas de una vez me ha pasado a mi....

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 08 de Junio de 2004, 04:17:00
Hola que tal,  "  doppel  " el vector de interrupcion se encuentra en la direccion 4 como has dicho , esa es la direccion que hay que saltar, coloque el comentario de la interrupcion en la posicion 5, pero este comentario se referia a la direccion 4 , ya lo he corregido.  

He añadido las equ de las puertas , he empleado la instruccion btfsc para explorar el pulsador que se encuentra en el bit 0 , pin nº 17, y ha esperar que se produzca la pulsacion.

Codigo:
       LIST     P=16F84A     ;EL PIC QUE VAMOS A UTILIZAR.



;***************************************************************

;ETIQUETAS DEL PROGRAMA.
             
ARCHIVO_1   EQU      0X0C         ;1ªDIRECCION LIBRE PARA NUESTRO USO.
ESTADO      EQU      0X03         ;ESTADO,  ESTA EN LA DIRECCION 3
RP0         EQU      0X05         ;RP0 EQUIVALE A 5.
PUERTAA     EQU      0X05         ;PUERTAA SE ENCUENTRA EN LA DIRECCION 5.
PUERTAB     EQU      0X06         ;PUERTAB SE ENCUENTRA EN LA DIRECCION 6.

;***************************************************************


;AQUI EMPIEZA EL PROGRAMA.

            ORG      0            ;ORIGEN DEL PROGRAMA, AQUI EMPIEZA.
               
            goto     INICIO       ;VA A INICIO PARA SOBREPASAR EL VECTOR DE INTERRUPCION.
                                 
           
             
            ORG      5            


INICIO      bsf      ESTADO,RP0   ;ME SITUO EN EL BANCO 1
            movlw    b"11111"     ;PUERTAA COMO ENTRADA.
            movwf    PUERTAA
            clrf     PUERTAB      ;PUERTAB COMO SALIDA.
            bcf      ESTADO,5     ;NOS SITUAMOS EN EL BANCO 0.


ARRIBA      btfsc    PUERTAA,0
            goto     ARRIBA
            END        


Os comento la instruccion btfsc testea la entrada de la puerta y si vale 0 salta para encender el led , para que valga 0 tiene que estar presionado el pulsador , si no se pulsa a la entrada le llega un 1 , y la siguiente instruccion sera  goto ARRIBA  es decir va a la instruccion anterior y asi hasta que se produzca la pulsacion .

Si hay algo que no entendais , preguntarlo.


P.D. ALGUIEN PODRIA DECIRME COMO SUBIR UNA IMAGEN , GRACIAS.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 08 de Junio de 2004, 12:07:00
Para subir la imagen, tienes que tenerla colgada el la red...
cuando estés creando la respuesta, justo encima de la caja de texto, tienes varios iconos para cambiar el formato del texto....
justo al lado del smile amarillo, tienes un icono con un dibujo de una picture....
pulsas y ya está...
la otra forma, es usar la etiqueta
(IMG)URL(/IMG) cambiando ( por [
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 08 de Junio de 2004, 12:20:00
Repasando el programa me an salido unas dudillas.

ARCHIVO_1   EQU      0X0C ;1ªDIRECCION LIBRE PARA NUESTRO USO.
ESTADO      EQU      0X03           ;ESTADO,  ESTA EN LA DIRECCION 3
RP0             EQU       0X05         ;RP0 EQUIVALE A 5.
PUERTAA     EQU      0X05          ;PUERTAA SE ENCUENTRA EN LA DIRECCION 5.
PUERTAB     EQU      0X06           ;PUERTAB SE ENCUENTRA EN LA DIRECCION 6.

Como sabes  que direccion ay k poner cada puerta????, y a los bancos de memoria???  
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Fer_TACA en 09 de Junio de 2004, 00:15:00
Hola:
Los registros especificos del micro tienen una direccion especifica dada por el fabricante. Estas direcciones se pueden ver en los propios datasheets del micro.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 09 de Junio de 2004, 11:10:00
Ok, pues duda resuelta, si nadie tiene mas dudas cuando kerais podemos seguis.

Salu2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 09 de Junio de 2004, 16:49:00
Hola a todos, Abago , lo que no se es como colgar la imagen en la red.  

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 09 de Junio de 2004, 20:48:00
tendrás que tener acceso a algún servidor web, servidor FTP, o algún maletin, como por ejemplo los de yahoo...
Solo tienes que enviar la imagen a cualquiera de estos contenedores, y enlazar la dirección URL del fichero...

De momento, no se mas... Espero que exista alguna forma mas facil...

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 10 de Junio de 2004, 08:23:00
A ver veo que se an adelantado un poco me quede atras...  tengo por ahi unos apuntes bien buenos y unas fotos de las direciones de la memoria para que la gente se ayude un poco mas,
are la pagina la subire y veamos si esto ayuda a las pequeñas dudas sobre todo ala hora de direccionar una intrucion

Saludos..




aqui esta la pagin espero sirva de apollo .. aqui esta la
TABLA DE NEMÓNICOS DE LA FAMILIA PIC16F84

http://www.aeromodelistasdechile.cl/otros/pic/index.htm


sigo con la duda de los EQU no me keda claro si es nesesario o no
se que significa igual pero he visto otros ejemplos donde simplifican por ejemplo el direccionar al banco 1 poniendo :

Banco1 EQU  bsf STATUS,RP0  ; luego solo haciendo  referencia al banco 1  en el prorama no hay que anotar todo el resto.

Pero cuado despues del EQU le ponen el 0x04
no se que importancia tiene, en otros programas no lo he visto y en otros si..

podrian aclarar esto un poco mas. o es sencillamente por que no usan el include al inicio del programa.. valla que dolor de craneo jaajja

Saludos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 10 de Junio de 2004, 16:58:00
Pon el esquema de tu entrenador aki y asi lo vemos to2.

Salu2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 10 de Junio de 2004, 17:08:00
Explicanos en que consiste ese entrenador..
o como lo obtenemos para poder seguir ayudandonos y aumentar el conocimiento de dicho pic.


Saludos.


Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: lovando en 10 de Junio de 2004, 20:07:00
Hola

En esta direccion http://techtrain.microchip.com/x14 hay dos cursillos multimedia rebuenos sobre PICs

Bye
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 12 de Junio de 2004, 05:06:00
Hola , que tal , bueno parece que ya tenemos el veranito aqui , ¡¡¡¡¡¡¡¡¡¡ y se acerca ese mes de vacaciones  !!!!!!!!!!

 Chile_irc,  ya ha colgado la memoria de datos,  podeis ver que direccion tiene cada registro , ok , ( que por cierto me tiene que decir como lo ha hecho ), los EQU como tu bien has dicho significa equivale, vamos a poner un ejemplo a ver si asi se entiende mejor
Codigo:
;VAMOS A PONER UN 1 EN EL BIT 5 DEL REGISTRO ESTADO SIN UTILIZAR LOS EQU.
;EL BSF PONE A 1 EL BIT DEL REGISTRO QUE PONGAMOS A CONTINUACION,
;EL REGISTRO QUE HEMOS PUESTO ESTA EN LA DIRECCION 3,
;Y EL BIT QUE HAY QUE MODIFICAR SE COLOCA DETRAS DE LA COMA.
;EN ESTE CASO EL BIT QUE NOS INTERESA ES EL Nº5.
;*******************************************************************************************


         

             bsf          0x03,5
             

;*******************************************************************************************
;PUES AHORA LO VAMOS A HACER CON LOS EQU.
;FIJAROS QUE SI ESTADO EQUIVALE A 3 Y RP0 A 5 ,¡¡¡¡ ES LO MISMO  !!!!!
;¿POR QUE SE HACE ESTO ? IMAGINATE EN UN PROGRAMA MUY LARGO, QUE LOS HAY, TODO LLENO DE NUMERITOS ,
;TE VOLVERIAS LOCO, CON LOS EQU IDENTIFICAS MAS RAPIDO DE QUE REGISTROS O BITS SE TRATAN.

;*******************************************************************************************




ESTADO      EQU      0X03         ;ESTADO,  ESTA EN LA DIRECCION 3.
RP0         EQU      0X05         ;Y AL BITE 5 LE VAMOS A LLAMAR RP0.




            bsf      ESTADO,RP0

Entonces continuamos , el programa esta testeando continuamente la puertaa RA0, y cuando pulsas se enciende el led y cuando dejas de pulsar se apaga , DE MOMENTO NO VOY A PONER UNA PERDIDA DE TIEMPO PARA EVITAR LOS REBOTES, PARA NO LIARNOS , YA LO COMENTAREMOS , solo deciros que cuando se pulsa  no  hay solo un contacto entre las laminillas del pulsador hay muchos y eso puede dar errores de lectura ,  para evitarlo en el primer contacto el pic va a una rutina para perder tiempo mas o menos 20 ms ,  con eso se suele evitar los rebotes.

Aqui os dejo el programa terminado echarlo un vistazo y vemos las dudas , en cuanto no hayan dudas pasamos a ensamblarlo y a grabar el pic y probar nuestro primer circuito.

Codigo:
           LIST     P=16F84A     ;EL PIC QUE VAMOS A UTILIZAR.



;***************************************************************

;ETIQUETAS DEL PROGRAMA.
             
ARCHIVO_1   EQU      0X0C         ;1ªDIRECCION LIBRE PARA NUESTRO USO.
ESTADO      EQU      0X03         ;ESTADO,  ESTA EN LA DIRECCION 3
RP0         EQU      0X05         ;RP0 EQUIVALE A 5.
PUERTAA     EQU      0X05         ;PUERTAA SE ENCUENTRA EN LA DIRECCION 5.
PUERTAB     EQU      0X06         ;PUERTAB SE ENCUENTRA EN LA DIRECCION 6.

;***************************************************************


;AQUI EMPIEZA EL PROGRAMA.

            ORG      0            ;ORIGEN DEL PROGRAMA, AQUI EMPIEZA.
               
            goto     INICIO       ;VA A INICIO PARA SOBREPASAR EL VECTOR DE INTERRUPCION.
                                 
           
             
            ORG      5            


INICIO      bsf      ESTADO,RP0   ;ME SITUO EN EL BANCO 1
            movlw    b"11111"     ;PUERTAA COMO ENTRADA.
            movwf    PUERTAA
            clrf     PUERTAB      ;PUERTAB COMO SALIDA.
            bcf      ESTADO,RP0   ;NOS SITUAMOS EN EL BANCO 0.

            clrf     PUERTAB      ;BORRO LA PUERTAB PARA EMPEZAR


ARRIBA      btfsc    PUERTAA,0    ;TESTEA EL PIN 17 DEL PIC,RA0.SALTA SI VALE A PASAR 0
            goto     ARRIBA       ;VA UNA DIRECCON MAS ARRIBA.

ENCIENDE    bsf      PUERTAB,0    ;ENCIENDE EL LED.
            btfss    PUERTAA,0    ;TESTEO PARA VER SI HA DEJADO DE PULSAR
            goto     ENCIENDE     ;SI ESTA PULSADO VA A ENCIENDE.

            bcf      PUERTAB,0    ;SE DEJO DE PULSAR, APAGO EL LED.
            goto     ARRIBA       ;Y SE DEJO DE PULSAR VA ARRIBA.

            END    




UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 13 de Junio de 2004, 10:48:00
Vieno el programa acabado, lo entiendo todo excepto esto:

clrf     PUERTAB      ;BORRO LA PUERTAB PARA EMPEZAR

¿Porqué tienes que borrar la puertaB?
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 13 de Junio de 2004, 11:24:00
Piriots, al empezar las salidas estan a nivel alto, si no las borro estarian encendidas todas las salidas de la puerta B.



Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 13 de Junio de 2004, 11:34:00
Entendido!!!!!!!!!!! ahora ya entiendo todo el programa. Gracias x reslover las dudas.

SAlu2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: TXUSTOPO en 13 de Junio de 2004, 19:13:00
Andyris estoy más perdido...........
Se lo que e haceis pero no se para que sirve cada instrucción que ponéis.
Deberiais de empezar por cositas más sencillitas, como mover número de un sitio a otro, sumando, restando, etc, esplicando de forma simple cada instrucción.......como bsf, clrf TRISB. Y ase que hay que estudiar y leer, pero.......es que no me entero. Deberíamos seguir todos un mismo orden. Espero no retrasaros ni nada pero es que.... no le veo lo que quiero verle (hablando metaforicamente). Creo que antes de poner los registros, instruccciones y demás, deberías de explicar que es, para que sirve o para que se utiliza cada registro y luego ya poner ejemplos.
Es mi opinión .
Gracias
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 14 de Junio de 2004, 01:27:00
Esto puedo intentar explicarlo bajo mi punto de vista y viéndolo desde lejos y a groso modo .

Los pic incorporan un microprocesador entre otras cosas que se le llama Unidad Centrar de Proceso CPU y no es nada mas que un monton de puertas entrelazadas para poder realizar operaciones matematicas y otras cosas (muy pocas cosas) sumar y restar , and , or , etc . (yo no me preocuparia de momento de como funciona internamente , aunque es interesante ).

¿ pero como es posible que estos bichos hagan estas cosas tan increibles si estan tan limitados en operaciones y no disponen de inteligencia ? .
Aqui es cuando entra el ser humano para ir combinando todas estas pequeñas posivilidades e ir formando una aplicacion .


La CPU por si sola no nos sirve para nada , así que necesita de mas hardware para poder hacer algo practico y util para nosotros.
Todo este hardware es paralelo a la CPU y son necesarias unas lineas para poder acceder a  la direccion donde se encuentre dicho hardware (se llaman lineas de direcciones ) , por ejemplo el PortA  se encuentra en la direccion 5 , asi que se lo indicaremos para poder acceder a el .
Con direccionarlo no nos sirve para mucho , así que lo ideal es poder leer y escrivir sobre el , para esto la CPU incorpora el (bus de dados 8 en este caso ) y finalmente el bus de (control) , que son otras lineas necesarias ( por ejemplo una de ellas seria si se lee o escribe sobre el dispositivo , CS  para seleccionar un dispositivo ).


La CPU necesita de un medio de almacenamiento para ir leyendo las ordenes que nosotros queremos que realice y obrar en consecuencia , a esto se le llama juego de instrucciones y este medio puede ser RAM , ROM , EEPROM , FLASH etc . lo mas lojico es que sea de alguno de los tipos que no se borran al cortar la alimentacion , jejej. se llama memoria de programa .
Es aqui donde pondremos nuestro codigo y la CPU ira leyendo y ejecutando fielmente cada una de ellas al ridmo de un reloj .


Una memoria del tipo RAM para guardar valores temporales que se borraran al quitar la alimentacion .

Necesita de un hardware para entradas y salidas (creo que no hace falta comentar lo que es ) .
En el caso de los pics pueden incluir Timmers, usart etc. solo hay que direccionarlos y actuar sobre sus registros para configurarlos , leerlos etc .

Podeis ver la si  arquiectura con mas detalle  en los Datas.

En el caso de los 16Fxxx La CPU se situará en la dirección 0000 de la memoria de programa al resetearse y empezara a ejecutar lo que encuentre alli . Lo normal es saltar a una direccion superior ya que en al generarse una interrupcion la CPU emezara a ejecutar lo que encuentre en la posicion 4 y hay que dejarla libre .

por ejemplo , solo para que veais como nos podemos mober por la flash .
Codigo:

 org 0x0003
 nop
 org 0x03FF
 nop
 end


si esto tal cual está se compila con Mpasm y abrimos Winpic800-IcProg seleccionando un 16f84 veremos un 0x0000 en la direccion 0x3 y en la direccion 0x3FF , que es el valor equivalente al nop (no operacion)

Espero haya aclarado alguna cosita aunque sea u poco .





Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 14 de Junio de 2004, 06:24:00
TXUSTOPO bajo mi punto de vista yo iría estudiando los registros a medida que van siendo introducidos en programas sencillos, tal y como lo está haciendo andyros, al cual hay que agradecerle su dedicación desinteresada. Explicar todos los registros a la vez con su correspondiente "mar" de bits lía y desmoraliza.

Lo interesante es que entendais los programas y sobre todo que os divirtais comprobando que funcionan, para lo cual os tendreis que agenciar un simulador o un entrenador.

Un pequeño comentario al programa de andyros: el pulsador externo está conectado de tal forma que al pulsar sobre él se envía un 0 al PIC, y cuando se suelta (estado de reposo) se manda un 1.

Decir también que tal como está, no funcionaría si se intentase montar físicamente, ya que como bien dijo andyros faltan los antirebotes ... pero esa es otra historia, poco a poco.

Un saludo y ánimo.

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 14 de Junio de 2004, 08:29:00
Hola gente, veo que se esta poniendo interesante el asunto.
Bueno primero que nada andyros tengo un hosting por ahi asi ke pude publicar el link y las fotos en ese hostin y la puse con la herramienta que esta aca para fotos. osea la foto que tu ves es lo que puse en mi hosting, no es que la aya puesto en el foro es una foto direccionada a mi pagina. jeje (me quedo calrisimo lo de los equ jejej )
Bueno volviendo al punto anerior. rescato la ayuda de andyros y su tiempo por eso estoy de acuerdo que las intruciones se aprendan a medida que surjan ejemplos, si no es una enrredadera yo las tengo todas pero con ejemplos se me han aclarado muchas dudas. y por eso en la pagina 3 de esta misma discucion publique un link con las intruciones y la foto de la memoria con las intruciones con su direccion, echenle una leida porfavor. para no quedarnos pegado.. Bueno?

por lo demas recomiendo no c si este en lo correcto. que la gente que se incorpore en este apartado pueda leer un poquito sobre pic, creo que todos hemos leido algo antes de empesar por aca ya que facilita mucho las cosas para entender un poco mas lo que andyros esta explicando
y Sispic GRan aporte para los flojitos que no le gusta leer jejej

Bueno estoy sacando por deduccion que: una ves situado en el banco 1 no es nesesario direcionar a 0x85 o 0x86 si no a 0x05 y 0x06 para setear los puertos a o b como entrada o salida (TRISA , TRISB) ya que cuando estamos en el banco 1 le decimos a esos registros queden como entrada o salida y al pasar al banco 0 podemos sacar los niveles a 0 o 1 (nivel de voltaje aprox 0 o 5Volt) directamente a un led u otra cosilla, Estoy en lo correcto?


Un saludo y estoy ala espera de poder continuar y gracias a todos por su tiempo...

Saludos
Chile_irc..
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 14 de Junio de 2004, 15:35:00
Hola a todos , Chile_irc , asi es como se realiza la configuracion de las puertas, estando en el banco 1 , podemos utilizar direccion 5 y 6 .

Querria aclararos una cosa , yo muy gustosamente os puedo  ir enseñando lo poco que se , por que realmente llevo muy poco tiempo trasteando con los pics, pero al igual que a mi me ayudaron yo tambien quiero ayudar , la verdad es que hay que leerse las instrucciones e intentar ver que es lo que significa , y si aun asi quedan dudas intentaremos hacer un aclarado.....jeeejee.

Mañana os pondre como ensamblar y grabar el pic , os hara falta un programador como una  t-20 , un banco de pruebas (placa board ), o un entrenador ,  asi podremos probar el programa, bueno el famoso pic 16f84a no puede faltar es el invitado de honor        

UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: TXUSTOPO en 14 de Junio de 2004, 15:39:00
Gracias por tu explicación SISPIC. Me ha resuelto bastantes dudas.
Bueno pus a la vez que vayan poniendo ejemplos intentaré comprenderlos y preguntar las cosas que no entienda o sepa.
Andyros gracias por ofrecerte a ayudarnos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 14 de Junio de 2004, 16:08:00
Un par de dudas, primero, podrias decir el material necesario para montar el circuito??

A ver si  me dejo algo

-pic 16F84A
-cristal de 4mhz
-pulsador normalmente abierto o cerrado??
- 2 condensadores ceramicos de 27pf
-led
-protoboard
- programador TE-20 si puede ser la segunda edicion mejor

La segunda duda es que por ahi arriba lei que el programa no funcionaria por no se que de los rebotes, si no hay esto en el programa funciona o no??
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 14 de Junio de 2004, 23:06:00
Bien, yo os explico lo de los rebotes.

Cuando activas (pulsas) un pulsador, este no envía un único valor a la entrada del PIC, sino que internamente se producen múltiples "rebotes" en el contacto hasta que por fin se estabiliza. Estos rebotes imperceptibles para el ojo humano sí son "vistos" por el PIC, ya que este investiga cuanto valen las entradas a una velocidad de vértigo (aproximadamente fosc/4). Por lo tanto antes de tomar datos de una determinada entrada debemos dejar que el contacto se estabilice y deje de producir rebotes.

Tener en cuenta también que los rebotes pueden provenir tanto al pulsar como al soltar el pulsador y dependiendo de como tenga que funcionar el programa pueden ser "peligrosos", por dar lugar a mal funcionamiento,  tanto unos como otros.

En los dos casos se soluciona el problema introduciendo por sofware una pequeña temporización (20ms por ejemplo) que espera hasta que el contacto "se está quietecito".

Es el diseñador el que tiene que darse cuenta en qué casos hace falta introducir temporizaciones antirebotes.

Un saludo

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 16 de Junio de 2004, 11:23:00
JOder no e podido encontrar el programador, asta dentro de 15 dias no lo tendre
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: litris en 16 de Junio de 2004, 11:35:00
Esta muy bien esto del curso.


Saludos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 16 de Junio de 2004, 16:21:00
Hola ,  bueno estoy un poco liado asi que intentare sacar tiempo de donde pueda, primero que nada agradecer las explicaciones de Pocher y Sispic .
Piriots si has hecho  alguna placa ya, a lo mejor te interesa hacerte la te- 20 se, he encontrado un monton de paginas donde esta el fotolito , utiliza tu buscador favorito,  de todos modos te dejo aqui una direccion, por si te interesa http://www.zackyfiles.info/nagra1/grabadores/te20.htm , recuerda escoge la version SE
Bueno el circuito ya lo he probado y funciona , incluso sin rutina antirrebotes , yo cuando empeze en los circuitos muy simples  no ponia rutinas antirrebotes y no he tenido problemas , pero en los circuitos mas complejos es muy conveniente utilizarla.

Los componentes que de momento nos haran falta es el
Codigo:
PIC 16F84A
CRISTAL 4Mhz
2 CONDENSADORES 27PF
1 CONDENSADOR 100K
2 PULSADORES, NORMALMENTE ABIERTO
1 DIODO 1N4148
RESISTENCIAS DE 10K, 100 Ohm, 330 Ohm
DIODO LED

Bueno , esperaremos un poco a que tengais lo necesario, si teneis alguna duda .

UN SALUDO


Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 16 de Junio de 2004, 17:56:00
Un condensador de 100K??
Sera ceramico de 100nF?? no??

Ahora que hablamos de condensadores, me podeis explicar la funcion de un condensador de desacoplo?? Supongo que este debe de ser uno de ellos no??

Sobre lo del programador, ahun no he echo ninguna placa,
se como hacerlas xo nunca he echo, estoy en espera de una insloadora, xo se k tardaran a traermela, de momento ire haciendo con la protoboard.

Una cosa k no tiene nada k vor con el tema, como anecdota , ayer fui a la tiende de electronica y por un LCD alfanumerico retroiluminado de 4x16 me pedia 70€, y por internet x 30€ tengo.
Soy de Tarragona (España)

Y para terminar a ver si algun maestro me puede echar una mano con esto

http://miarroba.com/foros/ver.php?temaid=2090913&foroid=6510

Es mu chungo de hacer??

Salu2 a to2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 19 de Junio de 2004, 04:49:00
Hola , vamos a ensamblar el programa y asi lo vamos viendo, he de deciros que os voy a contar como lo hago yo, tambien se puede hacer utilizando el mplab , ya deje un enlace de un tutorial en castellano de como hacerlo.

El programa yo lo hago en el bloc de notas , si no lo habeis hecho  en el bloc de notas copiarlo del mensaje  ( boton derecho del raton, copiar y luego pegar ), vamos a  " archivo " y  " guardar como " , aqui le damos un nombre y le ponemos por extension asm , mas o menos quedaria asi le llamaremos Primero, Primero.asm , lo guardaremos en una carpeta que tengamos localizada.

Ya os comente que me hize un acceso directo del mpasm, abri la carpeta del mplab y localize el mpasmwin.exe , boton derecho y crear acceso directo, y luego lo arrestre, hasta el escritorio

Abrimos el programa Mpasm,  localizamos el programa Primero.asm con el boton  BROWSE y apretamos Assemble .

Si no tenemos ningun error, lo ensamblara y nos crea unos archivos en la carpeta donde guardamos el programa Primero.asm,  el que nos interesa tiene una extension hex , Primero .hex ese es el que utilizaremos para grabar el programa en el pic.

Os tiene que haber salido esto:  
Codigo:
:020000000528D1
:06000A0083161F30850083
:1000100086018312860105180B280614051C0D287D
:0400200006100B2893
:00000001FF
 


Pues ya podeis ir probando .

UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 21 de Junio de 2004, 15:00:00
Hola gente a ver a ver.. he pasado el programa a MPLAB para testearlo antes de que se grabe en el pic y en contrado algunas cosas que no c si el resto se ha dado cuenta:

1- analizando el programa una ves que esta en el banco 0  pasa ala instrucion ke testea el bit 0 del puertoA pero en ningun momento del programa se le ha dicho al puerto b que cuendo el bit 0 del puertoa se ponga a 0 se encienda el led  conectado al puerto B por lo tanto no veo ke se encienda ningun LED

2- en la simulacion una ves que detecta un nivel 0 en la puerta a Bit0  termina el programa el MPLAB despues de eso continua leyendo hasta la posicion 1024 de la EEPROM y se resetea ( esto no c si es por un problema de configuracion o que. jeje)

3- al setearse el puertob como salida los bit de este estan a 0 por lo cual en el instante el programa termina.


Espero me corroboren esto o bien discutamos el asuntillo.

Saludos gente

PD: el programa lo tome textual de este apartado debo mencionar que el MPLAB no encuentra ningun error pero en la simulacion no se enciende o mejor dicho no se pone a uno ningun bit del puertob pulsando o no pulsando el bit0 del puertoa

bye bye.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 21 de Junio de 2004, 15:23:00
Lo que podriais hacer, es, antes de pasar a hacer otro programa, enseñarnos a simular los programas com mplab y a interpretar lo que sale en cada pantalla. Os parece bien??

Salu2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 21 de Junio de 2004, 15:28:00
Me retracto.. copie a MPLAB un programa que se corrigio posteriormente....  
el prorama esta correcto...

Hem lo de MPLAB podria ser un buena idea pero es super largo
talves es mejor leer el manual que se dejo en este mismo apartado
que esta enc astellano y muy detallado con ejemplo y todos..

Bueno si esque os parece bien al resto..


Una duda

que pasa con el perro guardian.. en este ejemplo??


Saludos
bye bye
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 21 de Junio de 2004, 15:45:00
ya me he leido el manual, pero no sale como simular un circuito con un LCD, y no tengo ni idea de hacerlo, en mplab ay una opcion  en el menu view que pone lcd pixel, xo esta opcion me sale desactivada y no se como activarla.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Meybel en 21 de Junio de 2004, 16:58:00
La opción de visualización "LCD pixel" es nueva en la última versión de MPLAB v. 6.50 y sólo se activa para los PIC que soportan un control directo de un LCD tal como el PIC16C924.

Que yo sepa para simular el LCD se utiliza el PROTEUS, aunque yo particularmente prefiero montar el circuito y probar porque para proyectos medianamente complejos, siempre hay detalles que a los simuladores se les escapa y te vuelven loco, no por culpa del funcionamiento del circuito sino por el manejo del simulador. Tengo experiencia en ello. Prefiero ganar tiempo en montar nuevos proyectos reales que perderlo en aprender a manejar más simuladores virtuales, aún reconociendo que PROTEUS es el mejor con diferencia.

Saludos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 21 de Junio de 2004, 19:13:00
Intentare hacerlo con proteus, ya k el proyecto es mu sencillo, se trata de testear un bit  de entrada, si esta es 0 mandar un mensaje al lcd, si este bit es 1 las salidas del port B seran 0. NO creo k sea dificil de hacer aun siendo novato.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 21 de Junio de 2004, 20:19:00
Una couriosidad, Andyros, como lo haces para que cuando posteas un programa te respete las tabulaciones?? es que a mi cuando posteo un programa se me come to2 los espacios en blanco.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 22 de Junio de 2004, 00:30:00
Escrives esto pero sin los espacios en blanco , es decir todo junto .
Codigo:

[ c o d e ]
bla,bla
bla,bla
[ / c o d e ]



Tambien hacerle caso a Meybel , es mejor ver los resultados en tiempo real para empezar y aprender .

Por cierto , cual entrenador haveis escogido ? para montarlo .

saludos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 22 de Junio de 2004, 08:35:00
Hola ,        MUY BIEN, MUY BIEN    , ir probando , asi es como mejor vais a aprender.

Piriots, para que te se salga tabulado copia el texto presiona la almohadilla es este simbolo   "  #  "  , en la pantalla que te salga le das aceptar y te saldra (code) (code), has de pegar el texto en medio de los ( code ), quedaria asi  (code)  tu texto  (code) .

Yo tambien estoy de acuerdo con Sispic y Meybel, yo prefiero simularlo en un circuito real , pero es cuestion de gustos.

Asi que poneros a practicar.

UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 22 de Junio de 2004, 08:44:00
Estoy con vosotros....
La verdad, es que nunca simulé mis programas por software...
Siempre por hard, que se aprende mas... Porque aparte de los errores de programa, aparecen lo errores de circuito...
Así aprendes a solucionar ambas cosas....

AH!!, por cierto...
Tengo mi último proyecto, en el cual he puesto el porta como salidas digitales...
y cuando enciendo porta.4, el led se enciende, pero en cuanto accedo a cualquiera de los demas pines de porta, se apaga...

Veis, aqui viene el aprendizage de los errores de hard...

acepto alguna idea.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 22 de Junio de 2004, 10:43:00
Bueno grabe el programa lo revise y ta todo ok. pero no consigo hacer nada no sale ningun nivel en la salida del puerto b

el programa se ha grabado bien y en dos pic nuevos sin problemas pero al parecer la implementacion del circuito puede estar fallando algo..

seria bueno publicar un circuito para este proyecto con su respectivos condensadores diodos resistencias etc..

o talves los famosos antirevotes no dejan que se ejecute bien el programa. etc..
Tambien estoy implementando estos circuitos en una protoboard
Afectara ello en algo al pic ya que no hace NADA ..

podriamos partir por algo ..


dejo la inquietud.

Saludos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 23 de Junio de 2004, 07:50:00
Hola ,que tal ?
Chile_irc  el programa funciona,  yo lo tengo probando en el entrenador, pruebalo de esta manera , patilla 4 y 14 al +5v ( ya hablaremos de la patilla 4 y como hacer que funcione ), cristal de 4 Mhz entre la 15 y la 16 , condensadores de 22 pf entre la patilla 16 y masa, y otro mas entre la 15 y masa,  patilla 5 a masa , resistencia de 10k un extremo a positivo y el otro a la patilla 17, aqui pones el pulsador un extremo patilla 17 y el otro masa, resistencia de 330 ohm en la patilla 6 conectada en serie con el anodo del led y el catodo a masa.
A ver si algien puede subir un esquema .  

UN SALUDO

P.D. Abago sube el asm. para que le echemos un vistazo.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 23 de Junio de 2004, 08:15:00
Hola gente
Andyros el problema no fue el programa fue que al grabarlo en el pic no desabilite el perro guardian y se me reseteaba jejej
asuntosolucionado que sirva para otros este error jeje

El programa Funciono OK

esperemos que al resto tmb para poder incorporar alguna rutinas de retardo y todo eso que es entretenido.


Saludos..


Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 24 de Junio de 2004, 01:07:00
Pues es el momento Abago de hecharte una cabuceada con el asm e intentar hacer lo mismo , ya veras que que con ello mejoraras el basic y en muchas ocasiones hasta tendras la necesidad(curiosidad) de ojear el .lst generado para saver lo que estas haciendo .

Tambien si dominas un poco veras que es incluso mas entendible hacer algunas funciones en asm y usaras muchisimo asm .... edasm .



Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 24 de Junio de 2004, 06:15:00
 Abago yo tambien estoy con Sispic , intentalo y recuerda  " Quien obra puede equivocarse, pero quien no hace nada ya esta equivocado "

UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 24 de Junio de 2004, 13:51:00
Buenas:
Abago, ¿podrias poner el código basic que estas probando?.
Para ver de hacer alguna prueba.-

Saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 25 de Junio de 2004, 07:35:00
Hola hola no seria malo abago si alguien lo tradujiese a ASM y asi los que tamos apreniendo podamos tambien emitir algun juicio quien sabe.. todo puede ser

Saludos

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 25 de Junio de 2004, 07:52:00
Buenas:

Abago,estuve probando el programita con pic basic pro y efectivamente pasa eso, voy a hacer un par de pruebas con otro basic y te comento,pero de primera intención me parece un bug del software

Saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 26 de Junio de 2004, 00:12:00
Que te parece kntonchino si borras el programa de aquí y lo transladas al subforo de programadores, es por no introducir ya más cosas que no tienen que ver con el "microcursillo, empezar desde 0". Yo también borraré este mensaje y lo transladaré allí.

Respuesta a tu mensaje:

Desde MPLAB no vas a poder utilizar el TE20SE, el MPLAB solo se puede usar con los grabadores que lleva incorporados y que valen un pastón (PROMATE y PICSTAR creo recordar).

El TE20SE lo puedes grabar con el software más conocido de grabación que es el IC-PROG o con el software menos conocido, pero mejor y más rápido que es el WINPIC800. Este último lo tienes en el subforo de Programadores y se lo debemos al amigo Sispic un componente de este FORO.

Respecto al error que te dá el MPLAB especifica más concretamente.

Un saludo
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 26 de Junio de 2004, 02:58:00
Hola , que os parece si grabamos el pic , bien nos hace falta el programa en hex.  ( ya lo colgue en un mensaje anterior )
Programas para grabar el pic hay varios, yo utilizo el ic-prog ya os deje el enlace para descargarlo.

Abrimos el ic-prog , buscamos nuestro hex. en " archivo " y " abrir archivo " lo localizamos en la carpeta que lo guardamos lo seleccionamos y presionamos " abrir " , ahora vamos a por las palabras de configuracion , en la parte derecha son 3  casillas la primera el WDT que es el perro guardian , este se encarga de que el programa no se cuelgue, de momento no lo utilizaremos, asi que casilla deshabilitada, la 2ª es PWRT esta casilla retrasa 72ms ( si no recuerdo mal ) el funcionamiento del pic , para que la fuente de alimentacion se estabilice, esta la activaremos, CP , codigo protegido bueno pues esta creo que no hace falta comentarla, si la activamos no podremos leer nuestro codigo, asi que esta casilla deshabilitada.

Bueno en la casilla de arriba seleccionamos el pic que estamos grabando el PIC16F84A , y la casilla del oscilador de momento vamos a utilizar el XT.
La casilla del reloj tiene 4 posibilidades la RC formado por resistencia y condensador, la LP es para trabajar con cristales con frecuencias que van desde 35 a 200 KHz , la XT entre 100 KHz y 4 MHz , y por ultimo la HS a partir de 4 MHz. Como gastamos un oscilador de 4 MHz , activaremos la casilla XT .
Recordar que solo tiene que estar habilitada la casilla " PWRT ".
Ahora solo falta grabar el chip lo podemos hacer desde " COMANDO " o mas facil desde las figuras , son los chips dibujados con una flecha , que es para leer los codigos,  chip con un rayo para programar , con un borrador pues para borrar .........

Primero que nada es conveniente borrar el chip asi que lo borraremos , abriremos nuesrtro programa lo configuramos y pulsamos la figura del chip con el rayo , y ya lo tenemos.

Aqui os dejo un enlace que lo explica mucho mejor que yo http://autric.com/Microbotica%20y%20Mecatronica/icprog.htm

Pues a grabar el chip, preguntar las dudas , ok

UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 26 de Junio de 2004, 23:02:00
Buenas:

Para abago:
Despues de buscarle la vuelta,encontre que cada vez que el basic ejecuta un high,reprograma el puerto. La solucion es que en vez de high utilices por ejemplo porta.4=1 .Yo lo probe y funciono.-

Ahora si una incognita,utilizando el programa con high pero simulandolo por soft, todo funcionaba bien ¿?.-
Habra que seguir investigando.-

Saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 27 de Junio de 2004, 07:15:00
Sispic:

Teoricamente no le afectaria en nada porque el registro tris ya lo configuro al inicio del programa y este registro sirve para indicarle al micro si los pines del puerto seran de entrada o de salida pero no pasarlo fisicamente de alto a bajo.-

Aprovecho para comentarte sobre el winpic800, falta incluir el 16c84 ,que alguno tengo por ahi dando vueltas y tambien el 16f88.-

Saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 29 de Junio de 2004, 07:16:00
Hola gente.. bueno perograma GRABADO y PROBADO
Funcionamiento OK.

sin errores ni nada. tal cual. es mas ya le incorpore una subrutina de tiempo jejej

Bueno espero sea el proximo paso.. Saludos y esperando un nuevo paso..  bye bye


Chile_Irc
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 29 de Junio de 2004, 19:46:00
Buenas:

Abago, estuve probando el soft con high y me funciona bien,el porta.4 queda en alto siempre.-
Te comento que lo he probado con un 16f876A ,del cuál no he visto el datasheet.-

Saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 30 de Junio de 2004, 07:19:00
Abago:

Básicamente estoy utilizando el mismo código con el cambio que te comente.-
Por el lado del hard, una placa de desarrollo con ra4 polarizado a positivo a trvés de 10k y mido la salida con un led.-

saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Sispic en 30 de Junio de 2004, 14:21:00
10 K. es un valor muy alto para un led , mejor 1k.

Bueno , por mi parte cuando esté aclarado el tema borraré los comentarios sobre el tema este , para no mezclarlo y poder continuar con las aportaciones del cursillo .

saludos.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jorgeansuini en 30 de Junio de 2004, 15:23:00
Hola:

Me parece que abago podrias seguir el tema en el foro de picbasic y asi sispic borrar todo sin problemas.-

Saludos
Jorge
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 30 de Junio de 2004, 22:44:00
Doy el primer paso.... Ya están todos los post de OFFTOPIC, borrados....

edito, para informar...
ya está solucionado el problema...
estaba conectando el rb4, contra una resistencia de 10k a 5v y a su vez contra la base del transistor...
solo he tenido que ponerle una resistencia de 1k, y funcionando...
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 02 de Julio de 2004, 15:13:00
Como que nos hemos detenido...

no nos quedemos dormidos sigamos con algun otro ejemplo



Saludos..



Atte.

Chile_irc
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 03 de Julio de 2004, 07:14:00
Esto esto, venga seguimos!!!!!!! Aunk no tengo mucho tiempo quiero seguir aprendiendo con vosotros.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 04 de Julio de 2004, 06:40:00
Hola,  que os parece si empezamos con los retardos.
Una pequeña aclaracion,  primero,  el pic con un cristal de 4Mhz realiza una instruccion en 1 microsegundo,  que es igual a la millonesima parte del segundo, fijaros que rapido es.
Si ponemos a 1 una salida del pic ( bsf ) tardara 1 microsegundo , y si la apagamos ( bcf ) seguidamente tardara otro microsegundo , en 2 microsegundos hemos encendido y apagado un led , eso para nuestros ojos que son tan vagos ni siquiera lo han apreciado , la solucion es poner un retardo entre el encendido y apagado , ok.

Otra aclaracion, un byte es igual a 8 bits , ( cuidado que es muy facil equivocarse ) un bite puede tener 2 estados " 0 " o " 1 " y un byte tiene 8 bits , 1 byte = 00000000 .....11111111, con 8 bits solo podemos contar hasta 256.

Si tenemos un registro ( de 1 byte ) podremos contar solo 256, pero si tenemos 2 ¿ cuanto podremos contar ?.
Si cada vez que termina el primer registro de contar incrementamos el segundo en una unidad  podemos obtener 256 x 256 = 65536 microsegundos / 1000 = 65.536 milisegundos  = 0.065536 segundos , uffff nos vamos acercando para que nuestros ojitos vean como se enciende y se apaga el led .

Si os parece comentamos esto y cuando no hayan dudas seguimos , ok.

UN SALUDO

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 05 de Julio de 2004, 07:31:00
Hola Gente Aver..

si con dos registros cargados a 256 con uno mas con un valor de 15 podriamos lograr 1 segundo y algo mas, para se exactos

1.04 seg. Para ello tendriamos que asignar primero que nada un lugar dentro de la ram para estos 3, para luego en alguna parte del programa ir a una subrrutina en el cual se se carga el primer registro con 256 (FF) decrementar este luego detectar si es 0 y pasar al otro, esperando lo mismo, saltar al ultimo y cuando este sea 0 ya tendremos un segundo aprox.

algo asi?.

Saludos
Chile_irc.

Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: sandra_rcb2000 en 06 de Julio de 2004, 10:38:00
Hola como muchos de ustedes e caído en la cuenta que es necesario aprender ASM auque no nos guste  así que me apunto  aunque la verdad del tema lo único que conozco son las instrucciones y en ASM solo e logrado hacer parpadear un led y admito que las rutinas del delay las e copiado y no las entiendo muy bien por  ahora me sewra difícil seguirles ya que no tengo programador y un amigo me iba a conseguir uno pero me a quedado mal no digo su nombre para que no se ofenda  tengo la idea de que podríamos desarrollar un pequeño entrenador con algunos apagadores y leed para comenzar siento que con un f84 estará bien bueno espero sus comentarios
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: migsantiago en 06 de Julio de 2004, 10:57:00
Hola sandra_rcb2000,

pues si tienes problemas para armar tu propio programador puedes comprar uno si vives en el DF, sólo ve al centro (calle Rep. del Salvador) y busca en las plazas de electrónica. Vas a encontrar unos programadores de PIC16F84 y otros PICs que Solaris Digital hace.

Son programadores JDM que por mucho tienen 3 transistores, unos capacitores y uno que otro diodo, al parecer no es caro pero cuesta 450 pesos más o menos

Yo lo compré porque soy muy malo para hacer circuitos en tablillas fenólicas.

Ya que te hayas convencido de comprarlo sólo baja este programa:

http://www.qsl.net/dl4yhf/winpicpr.html
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 13 de Julio de 2004, 11:37:00
¿Seguimos?
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 15 de Julio de 2004, 06:57:00
Ya era Hora jejej  

Chile_Irc
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: sandra_rcb2000 en 18 de Julio de 2004, 14:50:00
Hola me tomo el atrevimiento de interrumpir su curso para realizar una aclaración con respecto al post que coloque aquí con respecto a que un amigo me avía quedado mal con lo del programador al final de la frase coloque caritas de broma que no aparecieron y el amigo mío hoy se encuentra muy ofendido con justa razón ocupo este espacio para acralar que solo es un mal entendido y una mala broma que por lo que miro me a salido muy mal así que te pido una disculpa publica si de alguna manera te e ofendido y al foro por ocupar este espacio para realizar esta aclaración
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Abago en 21 de Julio de 2004, 07:30:00
Sisco, pues la verdad, es que a mi me da que están todos de vacaciones... porque ya se va notando que cada vez hay menos gente...
estoy reduciendo la cantidad de copas vendidas dia a día...
o la gente está tirada en la playa, o están ahorrando para irse dentro de 10 días...
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 21 de Julio de 2004, 07:58:00
Hola gente bueno acso yo estoy pintado jajajaj

Bueno si no hay muchos por aca yo sigo siendo fiel alumno..

Asi ke sigan no mas que todos los dias estoy leyendo los post y probando lo que aqui se publica

Bueno un saludo desde mi tierra y espero buenas nuevas pronto...

Chile_Irc  
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 21 de Julio de 2004, 08:52:00
Hoooooola, bueno de vacaciones , todavia no, pero contando los dias que faltan, este año las necesito.  

Con respecto al curso he estado un poco liado , estoy haciendo un amplificador para el ordenador y el previo me esta dando un  dolor de cabeza , se me acopla ruido de alimentacion a traves del previo y me estoy peleando con el , por eso he dejado un poco abandonado el foro, pero tranquilos que entre todos seguiremos, por mi parte intentare buscar tiempo.

Sispic ha aclarado muy bien las posiciones y los numeros que podemos contar .

En un  semana y media estare de   VACACIONES   y estare mas tiempo con vosotros.

UN SALUDO
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: YF-21 en 01 de Agosto de 2004, 14:22:00
Compañeros, quisiera expresar una sugerencia para los profesores mas que nada ...

Tengo entendido que es mas sencillo realizar programas en "C" que en ensamblador, y con algunos ejemplos (5) que he visto creo que seria conveniente si tambien se enseñara a manejar el PBP o PCW para major sencillez.

Por ejemplo este programa:

#include <16c84.h>    /* Dispositivo a utilizar */
#bytepuertaa=05                  /* Posición de la puerta A */
#bytepuertab=06                  /* Posición de la puerta B */

void main(void){

int valor;                                  /*  Valor temporal */
set_tris_a (Oxff);                 /*  Oxff ---> TRISA */
set_tris_b (0x00);                /*  0x00 ---> TRISB */
do {
valor = puertaa;   /*   PuertaA --> valor */
valor +=2;   /*   se incrementa valor en 2 */
puertab = valor;   /*   valor —> puertaB */
} while (TRUE);   /*   Bucle infinito */

creo que es un buen ejemplo para empezar no masters??
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Modulay en 01 de Agosto de 2004, 18:48:00
Está muy bien,YF-21.
Ahora fíjate en los cambios que he hecho y te comento las cosillas que yo veo.

Codigo:

#include <16c84.h>              // Dispositivo a utilizar  
#use delay(clock=10000000)       // Frecuencia del cristal
#fuses HS,NOWDT,NOPUT,NOPROTECT  // Fusibles

#byte puertaa = 5    // Posición de la puerta A
#byte puertab = 6    // Posición de la puerta B

void main(/* aquí dentro no es necesario poner el "void" */) {
  int valor;           // Valor temporal
  set_tris_a(0xff);    // Oxff ---> TRISA
  set_tris_b(0x00);    // 0x00 ---> TRISB
  while(TRUE) {        // Bucle infinito
    valor = puertaa;   // PuertaA --> valor
    valor +=2;         // se incrementa valor en 2
    puertab = valor;
  }      
}   // Llave que se abra,llave que se debe cerrar



No se te puede pasar especificar la velocidad del oscilador,y también hay que especificar en la parte de los fusibles de qué tipo es (HS > 4 MHz)
Los fusibles que hemos usado son:
Oscilador de tipo HS.
Watchdog desactivado.
Power up timer desactivado.
Protección de código desactivada.
En cuanto al uso que haces del do-while,es totalmente correcto,pero ten en cuenta que dicho bucle se va a ejecutar,sin condición alguna,siempre, por lo que es más práctico usar un while normal y corriente.El do-while se usa para cuando queremos que nuestro bucle se ejecute al menos una vez,sean cuales sean las circunstancias.De esta forma,el siguiente bucle se ejecutaría una vez:
Codigo:
 
do {
  delay_ms(1000) // Retardo de 1 segundo
}while(FALSE);



Otra cosa que yo tendría en cuenta es que "valor" es una variable de tipo entero cuyo valor puede estar comprendido entre -128 y 127(8 bits),por lo que cuando esta variable alcanza su valor máximo y la vuelves a incrementar,toma de nuevo su valor mínimo(-128),y así de forma indefinida.

Saludos
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 02 de Agosto de 2004, 00:29:00
Algunas mejoras más:

- No es necesario asignar variables a posiciones de memoria con #byte, es más cómodo que sea el compilador quien las asigne.

- int valor es una variable de tipo entero pero sin signo cuyo rango va de 0 a 255.

- Aunque YF-21 haya puesto valor+=2, esta variable solo se incrementa lo que valga el PORTA más 2 y de ahí no pasa, ya que a cada vuelta del lazo while lee primero el PORTA y lo asigna a valor.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Modulay en 02 de Agosto de 2004, 07:16:00
Cierto,se me escapó el detalle que valor depende directamente del valor que contenga el puerto A.
En cuanto al tipo de la variable,si lo miramos desde un punto de vista práctico,"valor" puede considerarse tanto con signo como sin él,dependerá del tratamiento que posteriormente se le vaya a dar;pero por definición es una variable entera con signo.
Para un entero sin signo se usa el tipo predefinido unsigned int.
Un saludo
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 02 de Agosto de 2004, 10:17:00
Algunos datos para el compilador de CCS:

- int --> De 0 a 255

- signed int --> De -128 a 127

- long --> De 0 a 65535

- signed long --> De -32768 a 32767
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 04 de Agosto de 2004, 09:21:00
Gente
con respecto a lo de trabajar en C

Se acordo  de trabajar en este foro por lo menos en ASM

cosa que se puede verificar, echando unas miradas en las paginas anteriores, acuerdo que deberia segun yo ser respetado, sin animos de ofender a nadie si no mas bien de seguir una linea que hemos venido trabajando con el resto, por lo menos ami me ha servido mucho y creo que a otros tambien.

Espero poder seguir discutiendo esta inquietud.
una abrazo y saludos


Chile_irc
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 04 de Agosto de 2004, 10:10:00
Tienes más razón que un Santo, esto ha sido un paréntesis C_eraniego hasta que vuelva (n) el profe (s) de ensamblador.

El que lo desee que habrá un Microcursillo en C.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: YF-21 en 04 de Agosto de 2004, 22:35:00
OK, OK, entendí la indirecta, es una pena porque creo que al final de cuentas ensamblador es más lio pero bueno ...
esperaré el curso de C
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: pocher en 05 de Agosto de 2004, 00:39:00
Pásate por el subFORO de C, ya ha sido abierto el microcursillo de C.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: migsantiago en 05 de Agosto de 2004, 18:04:00
Estuvo medio rudo lo de no querer que hubiera clases de C aquí en este thread, pero que bueno que ya abrieron el otro.

Realmente el poder de los pic se encuentra cuando uno programa en C, ya que el límite de las 35 op-codes hace un poco difícil y tardado escribir una operación en ensamblador, por ejemplo: una multiplicación.

En los AVR (microcontroladores de Atmel), un simple código de operación ya hace la operación, pero aquí hay que inventar una subrutina sólo para ello.

C simplifica todo ello y pues ya que uno agarró la onda en ASM, pues es bueno brincar a C.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 07 de Agosto de 2004, 08:01:00
jajajja

Perdon por lo rudo no fue mi intencion si no de poder seguir aprendiendo ASM ya que de C no se nada y tener que aprenderlo desde 0 ufff aun me queda mucho..

ademas ya aprendi a manejar su resto ASM por lo que me gustaria seguir en esa linea y me imagino que el resto que lo estaba haciendo tambien..

pido disculpas si fui muy directo jejej  


Un saludos

Chile_irc.
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: piriots en 14 de Agosto de 2004, 11:49:00
Este cursillo hace mucho que esta parado. Que se ha echo de los profesores de asm???

Seria una pena que esto se quedara asi...

Salu2
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: andyros en 14 de Agosto de 2004, 14:33:00
Hola,  por mi parte, me he tomado las vacaciones en plan relax ,y mañana salgo de viaje hacia las Canarias a relajarme 2 semanitas mas , en volver seguiremos , y sacaremos el curso adelante

UN SALUDO Y FELICES VACACIONES






ANDRES DESDE ALICANTE  ------------------CANARIAS
                                                         


 
Título: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Chile_irc en 24 de Agosto de 2004, 08:38:00
Hola Gente uff he tenido mucho trabajo y no he podido seguir con nada...  pero igual si no esta el profe que algun alumno continue con alguna subrrutina para comenzar a ver algunos retardos..




Saludos

Chile_irc
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: toc-toc en 12 de Febrero de 2007, 19:40:28
Hola! Antes que nada un saludo a todos.

 He estado leyendo todos los 'post' y he comprobado que el cursillo realmente se ha convertido
en Microcursillo (por lo corto que ha quedado), acaso se han atragantado con el retardo. Parecía
que todo iba bien hasta ese momento. Después hubo quien lo intercepto con el 'C', posteriormente
las vacaciones y por fin el olvido?

 No he podido resistirme a participar y he de decir que sigo aprendiendo de todos los foros que
leo y respecto del tema, la idea de usar dos o tres bytes me parece correcta aunque deberíamos
usar unos registros donde guardar los valores a introducir, para luego usando lazos o bucles
anidados conseguir el retardo deseado.

 No se si me he explicado. De todas formas, si en unos días no hay respuesta a este 'post' ya
pasaré el código (para el F84A) al que me refiero y luego ya veremos si la gente se 'engancha'.

 Un saludo de Vicente.

Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: toc-toc en 16 de Febrero de 2007, 22:16:48
 Hola! Saludos a todos los que lean este hilo.

 En mi anterior post, dije de presentar un listado del código en ASM de un retardo que es
lo que que se postulaba en su momento (hace algunos meses), por lo tanto voy a cumplir
con lo dicho y sin más, este es el código que propongo:

Código: [Seleccionar]
; Produce un retardo por un tiempo controlado, Xtal de 4 MHz.
; Se requieren unos registros para guardar el valor del retardo en milisegundos
; El valor Alto en 1Ah y el valor Bajo 1B
; Para observar los resultados encendemos un LED y despues del retardo lo apagamos
;
LIST P=PIC16F84
#INCLUDE <P16F84.INC> ;Inclusion de fichero de etiquetas
__CONFIG      h'3FF7' ; __CONFIG  _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
errorlevel      -302 ; Elimina avisos

;Definicion de equ (igualdades)
PCL equ 0x02 ;Contador de programa
STATUS equ 0x03 ;Registro del estado Aritmético de la ALU
PORTA equ 0x05 ;Puerto A
PORTB equ 0x06 ;Puerto B
OPTION_REG  equ 0x81 ;Registro de Configuración multiple
TRISA equ 0x85 ;Registro de configuración del Puerto A
TRISB equ 0x86 ;Registro de configuración del Puerto B
INTCON equ 0x0B ;Registro para el control de Interrupciones

reg0 equ 0x20 ; 19h
reg1 equ 0x21 ; 1A
reg2 equ 0x22 ; 1B
reg3 equ 0x23 ; 1C
reg4 equ 0x24 ; 1D

#define BANK1 bsf STATUS,5 ;Macro para abreviar el BANCO 1
#define BANK0 bcf STATUS,5 ;Macro para abreviar el BANCO 0

Org 0 ;Posición 0 de la Memoria de Programa (apuntador)
goto INICIO ;Va a la etiqueta INICIO

;*****************************************************************************
; EN ESTA PARTE DEL PROGRAMA SE ATIENDE LA INTERRUPCION
;QUE EN NUESTRO CASO ES POR FLANCO DE BAJADA EN EL PIN RB0/INT
;*****************************************************************************
Org 4   ;Vector de Interrupción, cuando sucede la interrupción

Inicio: BSF 03,5 ;Ir a page1 para ajustar los puertos
MOVLW 00h ;Cargar 00 en W             
MOVWF 05h ;Hacer salida todas las líneas RA       
MOVWF 06h ;Hacer salida todas las líneas RB   
BCF 03,5 ;Ir a Page0 para seguir programa

CLRF PORTB ; ponemos a 0 portb

MOVLW .1 ; enciende el LED
MOVWF PORTB     ;
BCF STATUS,C     ; Asegura que ingrese un 0 en PORTB,7
COMF PORTB,1
CALL pausa ; salta a retardo
GOTO $-2 ; va a inicio

; Cargamos los registros 1A y 1B 

pausa MOVLW 00     ; cargamos con 00
MOVWF 1Ah        ; el archivo 1Ah, geg1
MOVLW 02 ; cargamos con 2
MOVWF 1Bh        ; el archivo 1Bh, reg2
CALL Pausa_mS     ; Saltamos a la subrutina de tiempo
CALL led    ;saltamos a LED para que avise.

; Hemos cargado en 1Ah y 1Bh los valores de los milisegundos que queremos
; en este caso 00 + 02 = 2 mS. Para 15 mS, sería: en 1Ah = 0A y en 1Bh = 05

; Empieza rutina de retardo.
Pausa_mS
MOVF 1B,0   ;Move 1B to W , reg2
MOVWF 19h ;Move W to 19h reg0
Lazo1 MOVLW F8       ;Put 248 cycles in W
MOVWF 1C ;Put 248 into 1C , reg3
Lazo2 MOVLW 0B      ;Put 11 cycles in W
MOVWF 1D ;Put 11 into 1D , reg4
Lazo3 DECFSZ 1D,1     ; reg4
GOTO Lazo3
DECFSZ 1C,1 ; reg3
GOTO Lazo2
DECFSZ 19h,1 ; reg0
GOTO Lazo1
INCF 1A,1    ; reg1
DECFSZ 1A,1 ; reg1
GOTO Lazo4
RETURN            ;Return to Main etc

Lazo4 MOVLW 64h ;Put 100 loops into W
MOVWF 1B   ;Load 1B with 100 reg2
Lazo5 MOVLW F8 ;Put 248 cycles in W
MOVWF 1C   ;Put 248 into 1C reg3
Lazo6 MOVLW 0B ;Put 11 cycles in W
MOVWF 1D   ;Put 11 into 1D reg4
Lazo7 DECFSZ 1D,1 ; reg4
GOTO Lazo7
DECFSZ 1C,1   ; reg3
GOTO Lazo6
DECFSZ 1B,1   ; reg2
GOTO Lazo5
DECFSZ 1A,1   ; reg1
GOTO Lazo4

RETURN              ;Return a Principal etc 

END

 Es un poco largo, sin duda, sin embargo espero que le sirva a mucha gente que anda buscando
una forma sencilla de hacer un retardo de un número de milisegundos muy concreto. Por este
motivo lo muestro en este hilo.

 Saludos de Vicente.



Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: toc-toc en 29 de Marzo de 2007, 15:32:06
 Que hay, saludos a todos.

 Aquí les dejo otra pequeña rutina en ASM que funciona. En esta ocasión se trata de detectar cuando se presiona un pulsador que se encuentre conectado al puerto A, en el ejemplo hay 3 pulsadores. Este es el código:

 
Código: [Seleccionar]
;  Fecha: 24 Marzo 2007.
;  Version: 00
;  Funcion : Controlar 3 pulsadores forzados a + y saltar a la subrutina indicada
; para encender LED y esperar para encender otro.

TITLE "3puls02.asm" ; MPLAB solo admite nombres de 9 letras
SUBTITLE "Revision Nº 1"
ERRORLEVEL -302, -306
PROCESSOR 16F628          ;
;           
;#############################################################
;       Definiciones de Registros
;============================================================
  LIST P=PIC16F628
#include <P16F628.inc>
  __CONFIG  _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _LVP_OFF & _INTRC_OSC_NOCLKOUT
;  __CONFIG h'3F50'

  ;Definicion o Declaracion de equs (igualdades)

d1 equ 0x20 ; siempre se necesitan un par
d2 equ 0x21 ; de registros auxiliares
d3 equ 0x22

;----- Ficheros de Registro ---------------------------------

;DEFINIMOS LOS BANCOS
#define bank1 bsf STATUS,5 ;Macro para abreviar el BANCO 1
#define bank0 bcf STATUS,5 ;Macro para abreviar el BANCO 0

Org 0x00 ;Posicion 0 de la Memoria de Programa (apuntador)
;
GOTO inicio ;Va a la etiqueta INICIO
;
inicio: CLRF STATUS
CLRF PORTA ;limpia el puerto A
MOVLW b'00000111' ; comparadores desactivados,
MOVWF CMCON ; I/O digitales.
bank1 ;Va a page1 para configurar puertos
MOVLW 0x07 ;pone el literal 07h = b0000 0111 en el regitro W
MOVWF PORTA ;define RA0-RA2 como entrada, los otros, salidas
CLRF PORTB ;limpia el puerto B,  salidas
                    ;define todo el puerto B como salida
bank0 ;Regresa a page0 para continuar



;    Escanea los 3 pulsadores hasta que se pulsa uno
        CLRF PORTB
scaner: BTFSS PORTA,0              ; bit 0 del puerto A esta en nivel bajo, salta 1 linea
        CALL  luce1              ;salta a encender LED1
        BTFSS PORTA,1              ; bit 1 del puerto A esta en nivel bajo, salta 1 linea
        CALL  luce2              ;salta a encender LED2
        BTFSS PORTA,2              ; bit 2 del puerto A esta en nivel bajo, salta 1 linea
        CALL  luce3              ;salta a encender LED3
        GOTO  scaner              ;repite secuencia

luce1:  MOVLW 0x01 ; pone a 1
        MOVWF 06 ;para encender LED1
        CALL pausa ;salta a rutina de retardo
        RETURN

luce2:  MOVLW 0x02 ;pone a 1
MOVWF 06 ;para encender LED2
CALL pausa ;salta a rutina de retardo
RETURN

luce3:  MOVLW 0x04 ;pone a 1
        MOVWF 06 ;para encender LED3
        CALL pausa ;salta a rutina de retardo
        RETURN



pausa: MOVLW 0x07      ; b'00000111 = 7d
MOVWF d1          ;2Ah
MOVLW 0x2F      ;b'00101111 = 47d
MOVWF d2
MOVLW 0x03      ;b'00000011 = 3d
MOVWF d3

pausa1: 
        DECFSZ   d1,1            ; Lazo interior

        GOTO $+2
DECFSZ   d2,1

GOTO $+2
DECFSZ   d3,1
GOTO     pausa1

goto      $+1
goto      $+1
goto      $+1

RETURN

END

 Espero que le sirva a algún lector.

 Saludos.

Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: Meta en 14 de Agosto de 2007, 21:06:22
Muy buen ejemplo. ¿Hay más por aí?

Deberían continuar.
Título: Re: RE: MicroChip CURSILLO (Empezar desde cero)
Publicado por: moscatel en 31 de Octubre de 2007, 16:08:59
hola soy nuevo en esto de los micro cualquiera que me pueda alludar enviando cualquier dato sobre esto desde ya gracias esta mi correo rubensan40@hotmail.com
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jfmateos2 en 31 de Octubre de 2007, 16:12:08
Bienvenido al foro Moscatel.
Por favor, ¿podrías ser más concreto en cuanto al tipo de información que necesitas? Gracias
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: moscatel en 31 de Octubre de 2007, 17:35:07
gracias por escucharme lo que nesecito es empesar en esta area porque trabajo aciendo inversores de voltage y siempre lo e echo analogo pero aora quiero implementarlo con pic el inversor es ups 12vdc a 120ac regulado protegido y carga y tranfiere desde lla gracias,    jfmateos2
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jfmateos2 en 03 de Noviembre de 2007, 16:27:11
Hola Moscatel, creo que esto http://www.ece.uakron.edu/SDmaterial/fall2005/DT6%20Final.pdf te puede ayudar.

En cualquier caso, quizás deberías abrir un hilo en el subforo de "Proyectos" o "Foro técnico", pues más que aprender en general sobre PICs, quieres aplicarlos a algo muy concreto.

Saludos
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: moscatel en 07 de Noviembre de 2007, 10:29:17
 A jfmateos2 hola me siento muy bien en ver que personas decidan ayudar a otras y con ayudas tan concretas que uno queda satisfecho con las ideas y explicaciones que le asen a uno bueno no se si es devido pero esto es lo q pasa yo quiero aprender a fondo a trabajar con pic pero nesecito aser este proyecto rapido si me ayudaras a terminarlo yo te pagaria por ello me urge terminarlo o si ya conoses un prollecto completo ya terminado desde ya jfmateos2 te doy muchas gracias as sido muy baliosa tu ayuda y si supiste a lo que me referia gracias. :) *****Correo eliminado para evitar spam**********
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: jfmateos2 en 07 de Noviembre de 2007, 10:51:23
Hola Moscatel, en primer lugar me alegro de que te haya servido de algo la información que te vinculé.

He eliminado tu mail del mensaje para evitarte spam. Las comunicaciones entre usuarios del foro es mejor realizarlas a través de "Mensajes personales" haciendo clic sobre el botón "IM" que aparece debajo del avatar de cada uno de nosotros.

Respecto a tu proyecto para crear un inversor controlado por PIC:

* Personalmente no puedo ayudarte demasiado pues es un tema que no domino y tampoco conozco ningún proyecto terminado. Sin embargo, la fuerza del foro está precisamente en el gran número de personas que leen sus mensajes con ganas de ayudar, y espero que otro compañero sí pueda ayudarte de una forma más concreta.

* En cualquier caso, te recomiendo que inicies un hilo en el foro "Proyectos" indicando con claridad cuáles son los requisitos de tu proyecto y casi seguro que recibes ayuda concreta y muy valiosa.

Saludos y suerte
Título: Re: MicroChip CURSILLO (Empezar desde cero)
Publicado por: moscatel en 07 de Noviembre de 2007, 11:58:20
jfmateos2 muchas gracias....... :) :) :) :)