viernes, 7 de septiembre de 2012

Configuracion de un PIC18F2550 con ensamblador

El configurar un PIC 18F2550 en ensamblador no es como un PIC pequeño entonces se realiza de la siguiente manera.

1.- Crear un nuevo proyecto en MPLAB.
2.- Sin olvidar guardarlo en una carpeta dentro de c:\, con un nombre lo mas corto posible para evitar errores de ensamble.
3.- Una vez creado el proyecto dar clic en la opción Project de la barra de menús : Project/Add files to project.  Una vez allí se le da nombre al código fuente guardándolo dentro de la carpeta de proyecto recien creada  con la extensión .asm. ok una vez hecho esto se guarda el siguiente código. Nota: no olvidar que para guardar un codigo.asm se debe escribir al menos un comentario para que el programa permita guardar el archivo.

4.- Estas líneas de código en ensamblador realizan una función muy sencilla, su propósito es la configuración del PIC estableciendo los puertos como digitales y no como analógicos, ademas de la selección de la fuente de reloj que puede ser tanto interna como externa, todas las palabras de configuración se encuentran en la parte final del archivo Include del archivo cabecera P18F2550.



;Programa en ensablador para 18f2550 con la funcion de relog

list p=18f2550
include "P18F2550.INC"
;Bits de configuracion
                       
        CONFIG FOSC = INTOSCIO_EC ; Selecciona el relog interno del PIC
        CONFIG MCLRE = OFF                ; Desactivamos Master Clear
        CONFIG BOR = OFF                     ; Desactivamos Brown-out
        CONFIG PWRT = OFF                  ; Desactivamos Power-up Timer
        CONFIG LVP = OFF
        CONFIG XINST = OFF
        CONFIG PBADEN = OFF
        CONFIG CP0 = OFF
        CONFIG CP1 = OFF
        CONFIG CP2 = OFF
        CONFIG CP3 = OFF
        CONFIG CPB = OFF
        CONFIG CPD = OFF

ORG 0x00 ; Siempre empieza en la direccion cero
goto inicio                 ; Saltamos al inicio del programa

ORG 0x50         ; Dejamos espacio para las interrupciones

inicio
movlw 0x0F ;Con un 0x0F en ADCON1 se programan
movwf ADCON1,0 ;todos los bits de PORTA y PORTB como digitales.
clrf TRISB,0         ;Puerta B se configura como salida
movlw b'00011111' ;Solo cambiamos los bits presentes
movwf TRISA,0 ;Puerta A se configura como entrada

repite
  movf PORTA,W,0 ; Lee el Puerto A y lo pone en W
  andlw 0x0F   ; W = W(AND)00001111, dejamos solo 4 bits mas bajos
  movwf PORTB,0 ; Saca por el Puerto B el registro W
  goto repite   ; Se repite para siempre
  end     ; Fin del programa fuente

13 comentarios:

  1. ignoren el primer comentario en el programa de ejemplo, fue un error, no tiene nada que ver con lo que se intenta demostrar.

    ResponderEliminar
  2. Hola, estoy muy interesado en la programacion de este microcontrolador en el legunaje de asembler, me gustaria saber de donde podria obtener mas imformacion acerca de su programacion en ese legunaje... gracias!

    ResponderEliminar
    Respuestas
    1. mira casi todo viene la hoja de datos, pero esto me base en lo k alguien mas publico. solo k ya no recuerdo de donde tendria k buscarlo pero como pense k nadie iba a leer mi blog pues no puse el enace y lo publike [para tener una es[pecie de antologia de lo que hago sin perderlo.
      pero con esto [puedes epezar

      Eliminar
  3. Hola, porfavor no se si podrias ayudarme, de verdad estoy interesado en el tema que comente anteriormente!!

    ResponderEliminar
    Respuestas
    1. ah ok disculpame si ire publicando lo que he hecho ya eche a andar el 4550 lo publicare

      Eliminar
  4. Hola, esta muy bueno me ayudo con un problema q tenia =) gracias.

    Estoy probando el mplab X IDE y me esta dando unos doleres de cabeza con la configuracion del dispositivo, si podes poner algo de eso para este mismo PIC te lo agradeceria
    saludos =)

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. Perezoso jja mentiras mira XC8 Compiler de microchip, pero pues yo prefiero assembler la verdad

    ResponderEliminar
  8. Hola amiga gracias me salvaste de un error que me estaba matando por varios dias pero no se a que se deba para que se le agrega uncoma cero despues de cada instruccion en las configuraciones??

    ResponderEliminar
  9. Tendrás alguna comunicación del puerto USB en ensamblador?

    ResponderEliminar
    Respuestas
    1. lo tenia en c con c#, tendría que investigar con ensamblador y desempolvar

      Eliminar