• No se han encontrado resultados

Programación de Microcontroladores Parte II / TEN. Noguera Guillermo Sebastián Nuestros primeros programas en Assembler para PICs

N/A
N/A
Protected

Academic year: 2021

Share "Programación de Microcontroladores Parte II / TEN. Noguera Guillermo Sebastián Nuestros primeros programas en Assembler para PICs"

Copied!
12
0
0

Texto completo

(1)

Programación de Microcontroladores – Parte II / TEN. Noguera Guillermo Sebastián

“Nuestros primeros programas en Assembler para PICs”

Con el objetivo de adquirir una metodología clara en la programación de microcontroladores,

que nos permita desarrollar proyectos con ellos es que abordamos esta nueva sección de nuestro

curso. A continuación podemos ver representada la secuencia básica de los pasos a seguir para

grabar un programa en los microcontroladores.

figura 1

Escritura del código fuente:

El código fuente del lenguaje ensamblador está estructurado en columnas, las cuales designaremos

como campos. Así analizando el ejemplo de la figura 2 podemos identificar los siguientes:

1. Campo de etiquetas: son nombres de subrutinas o secciones de código fuente identificadas

por un nombre. Así es posible “saltar” a determinadas partes del programa identificadas con su

correspondiente etiqueta, sin recordar las direcciones físicas donde están ubicadas. Una

etiqueta puede ir seguida de dos puntos, espacios o RETURN. Debe empezar con un carácter

alfanumerico o de subrayado ( _).

2. Campo de instrucciones: puede ser una instrucción del juego de instrucciones del uC o una

directiva del ensamblador.

3. Campo de datos: contiene los datos u operandos de las instrucciones. Los datos pueden ser

un registro, un bit de un registro, una etiqueta, o un número constante llamado literal. Aquellas

instrucciones que llevan multiples datos, utilizan la ( ,) para separarlos. La especificación de la

base en la que se expresan los operandos es opcional: B’10011’ , 0’777’ ,D’255’ , .255 ,H’9F’,

0x9F, A’c’ o ‘C’

4. Campo de comentarios: es precedido por un punto y coma ( ;) y puede colocarse en cualquier

parte del código fuente. Los comentarios es uno de los trabajos más importantes que debe

(2)

desarrollar el programador a la hora de escribir el código. Si comentarios es muy difícil descifrar

días despues el código fuente que uno mismo ha escrito, de allí su importancia.

Mencionamos a continuación algunas convenciones a tener en cuenta para facilitar la tarea de

programar:

(3)

figura 2

Es importante mencionar además una buena práctica que consiste en incorporar al comienzo de

todo programa en ASM, una serie de comentarios que indiquen el nombre del programa y una

breve descripción del trabajo que realiza.

Directivas: es un comando escrito en el código fuente para efectuar un control directo o ahorrar

tiempo a la hora de ensamblar. El resultado de incorporar directivas se puede ver en el archivo

*.LST, después de ensamblar un programa.

( http://perso.wanadoo.es/pictob/directivas_mpasm.htm )

En el MPASM existen basicamente seis tipos de directivas:

1. Directivas de control: controlan cómo es ensamblado el código.

2. Directivas de ensamblado condicional: permiten ensamblar secciones de codigo de

acuerdo a determinadas condiciones.

3. Directivas de datos: controlan asignación de memoria y proveen una forma de referirse a

datos de manera simbolica.

4. Directivas de Lista: controlan el formato del archivo *.LST

5. Directivas Macro: controlan la ejecución y asignación de datos por medio de definición de

macros.

(4)

Un estudio detallado de cada una de las directivas del MPASM de acuerdo a las seis categorías

mencionadas, escapan al objetivo del presente curso. Así analizaremos tan solo las más importantes,

para mayor información pueden remitirse al MPASM Assembler Help del MPLAB IDE v7.40.

LIST P=16F84 ; Selecciona el tipo de microcontrolador

LIST C=132 ; Fichero de listado a 132 caracteres

La directiva LIST dispone de diferentes opciones que permiten elegir, entre otras cosas, el tipo de

procesador a emplear (P), número de caracteres por línea (C), tamaño de los tabuladores (B), base de

la numeración por defecto (R), etc…

PORTB

EQU 6

; Dirección de la puerta B

TRISB

EQU 86

; Dirección del registro TRISB

STATUS

EQU 3

; Dirección del registro de estado

La directiva EQU asigna un valor a las etiquetas deseadas, definiendo así una constante en

assembler.

ORG 0

; Posición del vector de RESET

La directiva ORG indica al ensamblador dónde debe empezar a colocar las instrucciones en la

memoria de programa. Es decir el ORiGen o dirección de comienzo para todo el código que sigue.

END

; Final del código fuente

Esta directiva indica al ensamblador el final del código fuente, donde ha de terminar el proceso de

ensamblado.

Ensamblado del programa

Las instrucciones del código fuente, representadas por nemónicos, son comprensibles para el

programador, luego de codificar el programa fuente en un editor de texto y guardarlo con extensión

.asm es necesario “traducirlo” al lenguaje máquina que entiende el microcontrolador. El MPASM es el

encargado de ensamblar el código fuente y convertirlo en código ejecutable por el PIC. Este proceso lo

realiza en dos pasos, en el primero comprueba la correcta sintaxis de las instrucciones, los nombres

de las etiquetas duplicados y asigna valores a los símbolos. En el segundo paso el MPASM convierte

todos los nemónicos en sus respectivos códigos máquina numéricos.

El proceso de ensamblado genera el archivo .HEX al igual que los archivos .LST y .ERR, los cuales

nos proporcionan la siguiente información.

El fichero de listado .LIST contiene una copia del fichero del código fuente pero con tres columnas

añadidos a su izquierda, donde se detallan las posiciones de memoria de programa que ocupa cada

instrucción (columna de la izquierda), la siguiente indica el código hexadecimal de cada una de las

instucciones. La tercera columna indica el número de línea del código fuente, finalmente tras esta

columna aparece el código fuente en su formato original.

(5)

figura 3

Al final del listado encontramos la siguiente información de etiquetas y errores, avisos y mensajes.

¿Qué sucedió con las directivas?

Código ejecutable

El fichero con extensión .HEX es el otro fichero creado por ensamblador. El formato que maneja el

MPLAB es el Intel Hex de 8bits ( INHXM8 ). Tanto el MPSIM (simulador) como el programador hacen

uso de este archivo. Este fichero se puede editar con un editor de texto y su formato es como se

representa en la siguiente figura:

figura 4

¿Qué información podemos encontrar en él, referida a las instrucciones del programa?

SIMULACION y DEPURACION

(6)

El siguiente paso es simular el correcto funcionamiento del programa ejecutable, antes de proceder a

la grabación de la memoria de programa del microcontrolador. Aquí existen diversas alternativas: la

más eficaz consiste en un emulador en tiempo real ( PIC MASTER, ICEPIC, etc) aunque no la más

económica. La otra alternativa más conocida y usada es la de los “simuladores de software” (MPSIM

en MPLAB), se trata de programas que ejecutados sobre una plataforma PC/XT/AT simulan el

funcionamiento del PIC y la ejecución del programa, obviamente no en tiempo real. Algunas de las

tareas que permite un simulador por software, son:

GRABACIÒN DEL MICROCONTROLADOR

Una vez depurado y puesto a punto el software se procede a la grabación del programa .HEX

en la memoria EEPROM del PIC, cargando nuestro archivo ejecutable en el software

encargado de controlar el programador que usemos. En dicho software seguramente

debemos setear entre otros parámetros, el modelo de PIC a programar, la palabra de

configuración, etc. Inclusive podremos borrar la memoria de programa para proceder a la

grabación de un nuevo programa. En la palabra de configuración se selecciona una serie de

parámetros tales como:

Integrados en el entorno de desarrollo MPLAB o como Software Libre y/o Propietario podemos

encontrar una gran variedad de software que trabaja en conjunto con diversos programadores

de PIC pudiendo así grabar nuestros ejecutables en los PIC, algunos como más y diferentes

prestaciones que otros.

Algunos de los programadores son:

1- PICSTART Plus ( original de MICROCHIP)

2- PICLAB (compatible con el picstart +)

3-

JDM (trabaja con IC-PROG, WinPic800)

4- uPIC Trainer (Microsystem Engineering )

( Actividad de clase) Preguntas a responder:

(7)

Bucles

Bucle infinito

(8)
(9)

Bucle finito

Tipo de estructuras de Bucle

(10)

Actividad Clase (analizar funcionamiento)

(11)

Cálculo del tiempo de ejecución

(12)

Introducción a LAS INTERRUPCIONES

Las interrupciones constituyen quizá el mecanismo más importante para la conexión del

microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos

externos. El funcionamiento de las interrupciones es similar al de las subrutinas de las cuales se

diferencian principalmente en los procedimientos que las ponen en marcha. Así como las subrutinas se

ejecutan cada vez que en el programa aparece una instrucción CALL, las interrupciones se ponen en

marcha al aparecer en cualquier instante un evento externo al programa, es decir por un mecanismo

hardware.

El PIC16C84/PIC16F84 dispone de 4 posibles fuentes de interrupción:

1- Activación del pin RB0/INT

2- Desbordamiento del temporizador TMR0

3-

Cambio de estado en uno de los 4 pines de más peso (RB7:RB4) del PORTB

4-

Finalización de la escritura en la EEPROM de datos

.

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la

[r]

SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON

Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de