Autor Tema: MicroChip CURSILLO (Empezar desde cero)  (Leído 29845 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado TXUSTOPO

  • PIC10
  • *
  • Mensajes: 25
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #30 en: 04 de Junio de 2004, 11:45:00 »
Bueno andyros cuando quieras seguimos y vamos viendo......

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #31 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
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #32 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.







Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #33 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...

Desconectado andyros

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #34 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.

Desconectado adrian2a1

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 75
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #35 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.


Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #36 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

Desconectado andyros

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #37 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.  

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #38 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...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #39 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.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #40 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...


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #41 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..
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #42 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???


Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #43 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.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #44 en: 07 de Junio de 2004, 13:40:00 »
Me referia a que se te queda "colgado"..je..je..
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything