Sei sulla pagina 1di 2

Apuntes de Microprocesadores.

Clase 5

SEUDO CÓDIGOS

Muchos de los seudo códigos en el assembler de los PIC’s son los mismos utilizados en assemblers de varios microprocesadores.
Desde las primeras versiones del compilador creado por Microchip para el sistema operativo DOS, MPASM, se previó el uso de
40 directivas o seudo códigos.

Importante es recordar que una directiva es considerada en tiempo de compilación y no en tiempo de ejecución. Ellas
indican parámetros y definiciones para el compilador al momento de generar un archivo de salida (.hex) a partir de uno fuente
(.asm), pero a diferencia de una instrucción, no alteran el tamaño o cantidad de códigos hexadecimales ejecutables.

En esta visión general sólo se describen los más comunes.

ORG. Seguida de una constante hexadecimal se usa para declarar que un bloque o sección de códigos inicia en una dirección
específica de la EPROM o memoria de programa.

Ej. Org 0x0 Program Memory


goto Inicio 0x0 Goto Inicio
. 0x1
. 0x2
. .
Org 0xC .
Inicio bsf STATUS, RP0 .
(Inicio) 0xC bsf STATUS,RP0

EQU. Establece una relación de igualdad entre la cadena de caracteres que le precede y la cantidad que le sigue. Por su uso, cada
vez que el compilador encuentra tal cadena de caracteres, simplemente la traduce por el número hexadecimal asociado.

Ej.
N1 equ b’10011101’ ; Constante expresada en binario.
N2 equ o’247’ ; Constante expresada en octal.
N3 equ d’159’ ; Constante expresada en decimal.
N4 equ h’A2’ ; Constante expresada en hexadecimal.
N5 equ 0x4E ; Constante hexadecimal.
INCLUDE. Con esta directiva se indica al compilador que el archivo anunciado (Include archivo) contiene líneas de código u
otras directivas que deben ser traducidas o consideradas. Junto al ambiente de desarrollo integrado MPLAB, ofrecido libremente
por Microchip, se adjunta gran cantidad de archivos donde se declaran los valores hexadecimales correspondientes a los nombres
de los registros y bits de cada microcontrolador. Con esta directiva suele invocarse el nombre de estos archivos al principio de
cada programa, de manera que pueda hacerse referencia a los bits y registros por los nombres con los que son conocidos.

Ej. include <c:\archiv~1\microchip\mpasm suite\p16f887.inc>


#include p16f887.inc

DW. Define Word. Permite escribir el código deseado en la localidad de memoria seleccionada. Esta directiva tiene mayor uso
para la memoria EEPROM, al momento de declarar datos (al igual que su equivalente en bytes, DB), más puede usarse para
definir códigos en la memoria de programa.

Ej.
ORG 0x0
GOTO Inicio
ORG 0x5
nota dw 0x37FA, b'10010101001100'
ORG 0x08
Inicio nop
END

Este breve listado se “graba” en la memoria FLASH (Program memory) según se observa en la figura adjunta.

Wilmer Sanz F. 1
Apuntes de Microprocesadores. Clase 5
BANKSEL. Manipula los bits RP1, RP0 para acceder al banco de la RAM correspondiente al Registro indicado.

Ej.:

MOVLW 0xF0
BANKSEL TRISC; Asigna la combinación 01 a los bits RP1,RP0, para poder escribir en el Registro TRISC
MOVWF TRISC
MOVLW 0x00
BANKSEL ANSEL; Asigna la combinación 11 a los bits RP1,RP0, para poder escribir en el Registro ANSEL
MOVWF ANSEL

END. Fin de los códigos. Es una indicación al compilador para que no continúe con la generación de códigos hexadecimales más
allá de este punto en el programa fuente.

Actividades sugeridas

- Indique mediante comentarios, que hace cada línea del siguiente código,
- Explique brevemente que hace el programa completo
- Dibuje, como en el ejemplo de la directiva ORG, los “mapas” de la memoria de código y de la memoria de datos.

#include p16f877.inc

NUM1 EQU 0x20

; Directiva de configuración. NO MODIFICAR, CORRE EL RIESGO DE INUTILIZAR EL PIC PARA FUTURAS


; APLICACIONES

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC& _BODEN_ON

ORG 0x0
GOTO Inicio
ORG 0x10
Inicio
BSF STATUS,RP0
MOVLW b'11100000'
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB
BANKSEL PORTA
BCF INTCON,GIE ;Inhabilitación de las Interrupciones

Ciclo MOVF PORTB,0


ANDLW 0xF0
MOVWF NUM1
SWAPF NUM1,1
MOVF PORTB,0
ANDLW 0x0F
ADDWF NUM1,0
MOVWF PORTA
GOTO Ciclo
END

Bibliografía

- Microchip Technology Inc. (2007). Data Sheet del PIC16F8XX. Documento 41291D,
http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf [En línea] Último acceso: 29-09-2017

Wilmer Sanz F. 2

Potrebbero piacerti anche