Anda di halaman 1dari 6

Microprocesadores.

Guía 2 1

Facultad: Ingeniería.
Escuela: Electrónica.
Asignatura: Microprocesadores.
Lugar de ejecución: Laboratorio de
Microprocesadores (Edificio 3, 2a planta).
Uso de la herramienta de
desarrollo y los modos de direccionamiento del HC12.

Objetivos generales

 Aplicar de forma efectiva las diferentes capacidades del programa CodeWarrior.


 Utilizar de forma efectiva los diferentes modos de direccionamiento que posee el
HC12.

Objetivos específicos

 Identificar los diferentes elementos que posee un código fuente escrito en lenguaje
ensamblador.
 Crear aplicaciones simples utilizando las facilidades que ofrece el IDE que posee el
programa CodeWarrior.
 Ejecutar una aplicación simple desarrollada en el IDE del CodeWarrior.
 Realizar de forma efectiva los procesos de depuración y simulación de una aplicación
desarrollada en el IDE del CodeWarrior.
 Aplicar la sintaxis adecuada al utilizar los diferentes modos de direccionamiento que
posee un microprocesador.

Introducción teórica

Uso de la herramienta de desarrollo CodeWarrior.


CodeWarrior es un Ambiente Integrado de Desarrollo (IDE) que permite utilizar los diferentes
productos que ofrece la compañía Freescale, entre ellos los microcontroladores de la familia
HC12.

Cuando se trabaja con microcontroladores es importante contar con herramientas que


faciliten procesos tales como: la generación del código, el mecanismo para programar la
memoria del dispositivo y la capacidad de poder verificar la correcta operación del código
(depuración). CodeWarrior las posee aparte de la capacidad compilar los programas tanto en
lenguaje ensamblador como en lenguaje C; adicionalmente brinda recursos de simulación,
emulación y diferentes librerías para interactuar con dispositivos concretos como pantallas
LCD, memorias, etc.
2 Microprocesadores. Guía 2

Materiales y equipo
• Computadora con Windows XP o superior con el software CodeWarrior IDE.
• Tabla (set) de instrucciones del microcontrolador HC12.

Procedimiento

PARTE I: Creación de código en CodeWarrior IDE.


Para crear un nuevo código en CodeWarrior se debe proceder de la siguiente manera:

1. Ejecute el programa dando doble clic en el icono del escritorio o búsquelo en Todos
los programas en el grupo de programas llamado Freescale Codewarrior.
2. Seleccione el botón “Create New Proyect” para inicializar el asistente que le ayudará a
crear el nuevo código.
3. En la página de bienvenida presione el botón “Siguiente”.
4. En la siguiente ventana seleccione el núcleo con que desea trabajar en la casilla que
dice “Select the derivative you would like to use” En el apartado HCS12X dé clic sobre
el signo más que está al lado izquierdo, se le desplegarán las familias de
microcontroladores incluidas. Seleccione la familia HCS12XD, dé clic sobre el signo
más que está a la izquierda, posteriormente seleccione el MC9S12XDT512. Esta
acción hará que se incluya en su código el archivo de encabezado adecuado.
5. En esa misma ventana se encuentra una casilla titulada: “Choose your default
connection” esto se refiere al hardware se hará la conexión de la computadora hacia el
microcontrolador seleccionado, para el caso de esta práctica será una simulación, así
que se utilizará la primera opción “Full Chip Simulation”
6. Dé clic en siguiente, a continuación se le consulta si desea emular multinúcleos
(opción XGATE), para el caso seleccione la opción “Single Core (HCS12X)”.
7. Dé clic en siguiente, en este diálogo se consulta sobre el lenguaje de programación
que se empleará (la herramienta soporta aparte del ensamblador el lenguaje C), quite
la selección de lenguaje C, que aparece por defecto, y después seleccione la opción
“Absolute assembly”. En esta parte del asistente se puede colocar nombre al proyecto
y la ubicación donde estará dicho proyecto.
8. El siguiente paso del asistente es para agregar un archivo de código existente. En el
árbol de carpetas puede seleccionar algún código que tenga generado previamente y
luego dar al botón “Add” para agregarlo como código fuente principal, hay dos
opciones en la parte inferior “Copy files to project” y “Create main.c/main.asm file”, se
recomienda dejar estas dos opciones activas.
9. Al dar clic en siguiente se tiene un diálogo para activar la generación automática de
código, para el objetivo de esta primer guía no será necesario así que deje activa la
opción “None”.
10. Una vez en este punto el IDE generará un árbol para describir el proyecto completo,
como se muestra en la Figura 1.
11. Este árbol contiene el archivo main.asm, que usará como plantilla de trabajo para
crear su propio código así como todos los elementos y archivos necesarios para
realizar la posterior simulación.
Microprocesadores. Guía 2 3

NOTA: Es muy importante tener en cuenta que la plantilla contiene muchos elementos
propios para desarrollar el código por lo que es fundamental sólo modificar el texto
concreto que se necesita editar y dejar lo demás tal como está.

Fig. 1. Arbol del proyecto completo.

12. En el archivo main.asm ubique la sección en que se declaran los datos con los que
trabajará el programa, esta contiene el siguiente texto:

ORG RAMStart
; Insert here your data definition
Counter DS.B 1
FiboRes DS.B 1

13. Sustituya los datos declarados por los siguientes:

DatoByte1 DS.B 1 ;Declara y reserva 1 byte en la memoria RAM


DatoWord1 DS.W 1 ;Declara y reserva 2 bytes en la memoria RAM
Array1 DS.B 5 ;Declara y reserva 5 bytes en la memoria RAM

14. En el mismo archivo ubique la sección en que se escribe el código a ejecutar. Esta
inicia con las siguientes líneas:

; code section
ORG ROMStart

15. Ubique las siguientes 2 líneas que delimitan la sección de código (estas dos líneas no
son consecutivas):
4 Microprocesadores. Guía 2

mainLoop:
LDX #1 ;X countains counter
RTS ;resul in D
16. Sustituya el bloque delimitado por las líneas anteriores (las dos incluidas) con el
siguiente código:

Etiqueta1:

; Ejemplo de direccionamiento inmediato

LDAA #%01010101 ;Carga en el registro A el dato binario 01010101 (85 decimal)


LDAB #'A' ;Carga en el registro B el dato ASCII 'A' (65 decimal)
LDX #$2000 ;Carga en X (16 bits) el dato 2000 hexa (8192 decimal)
;Este valor es la dirección donde inicia el arreglo declarado

ANDA #15 ;Realiza la operación AND con el registro A y el dato 15 Dec.

; Ejemplo de direccionamiento extendido

STAB DatoByte1 ;Almacena el contenido de B en el dato DatoByte1 (dirección)


STX DatoWord1 ,Almacena el contenido de X (16 bits) en el dato DatoWord1

ADDA DatoByte1 ;Suma el registro A con el de DatoByte1, salva resultado en A


LDY DatoWord1 ;Guarda el valor de DatoWord1 en el registro Y

; Ejemplo de direccionamiento indexado

STAA 0,Y ;Guarda el contenido de A en la dirección a la que apunta el registro Y


STAB 1,X ;Guarda el contenido de B en la dirección efectiva formada por la
;suma del contenidos de Y más uno equivalente a $WWWW

STX 2,Y ;Guarda el contenido de X en la dirección efectiva formada por la


;suma del contenidos de Y más dos equivalente a $WWWW (la parte
;alta) y en la siguiente la parte baja.

; Ejemplo de direccionamiento inherente:

ABA ;Suma el contenido de A más el de B y almacena el resultado en A


INCA ;Incrementa en uno el registro A
DECB ;Decrementa en uno el registro B
CLRA ;Borra el registro A
CLC ;Borra la bandera de acarreo
; Ejemplo de direccionamiento relativo:
BRA Etiqueta1 ;Salto incondicional a la etiqueta (similar a GOTO).
Listado 1. Programa para modificar main.asm
Microprocesadores. Guía 2 5

PARTE II: Compilación, depuración y simulación


17. Compile el código fuente, para lograrlo despliegue, en la barra de menú, la opción
“Project” y seleccionar “Make”, otra opción es presionar la tecla <F7>.
18. Luego de la compilación (si no se detectan errores) proceda a depurar el código. En la
opción “Project” seleccione ahora “Debug”, o presione <F5>.
19. Se abrirá el entorno de simulación con múltiples ventanas que le facilitarán la
depuración del código, entre ellas se encuentran: la Ventana Sources, Ventana Data,
Ventana Command, Ventana Assembly, Ventana Register y Ventana Memory.
20. Para facilitar el trabajo se tienen algunos botones muy útiles, que se describen en la
Figura 2.
21. Reinicie el programa presionando el botón de Reset.
22. Ejecute el programa paso a paso analizando la ejecución de cada una de las
instrucciones si hay algo que no comprende por favor consulte con su instructor de
laboratorio.
23. Muestre a su instructor de laboratorio que ha concluido esta parte de la práctica.

Reset (Ctrl+R): Efectúa un Reset del programa y ubica el puntero en el inicio del
programa.

Start (F5): Ejecuta el programa completo desde la linea que apunta el contador de
programa hasta encontrar un breakpoint.
Single step (F11): Ejecuta una sola instrucción o linea ejecutable, se detiene
dentro de subrutinas.
Halt (F6): Detiene la ejecución del código, este botón se activa solo mientras se
está ejecutando el programa.
Fig. 2. Botones del entorno de simulación.
PARTE III: Ejercicios
Modifique el código fuente para se sumen dos datos (de 8 bits cada uno) almacenados en
Dato1 y Dato2. El resultado se debe guardar en el dato llamado Respuesta, el cual debe
tener un tamaño adecuado.

PARTE IV: Desafío corto.


Modifique el código para sumar tres números de 8 bits, cada uno almacenados en
memoria. El resultado se debe guardar en el dato llamado Respuesta, el cual debe tener
un tamaño adecuado.

Bibliografía

• J. C. Vesga Ferreira y otros “Microcontroladores Motorola-Freescale: programación,


familias y sus distintas aplicaciones en la industria”, Alfaomega 20081.
• MOTOROLA “CPU12 Reference Manual”
• Ayuda de programa CodeWarrior IDE.
6 Microprocesadores. Guía 2

Hoja de cotejo: 2

Guía 2: Uso de la herramienta de desarrollo y los modos de direccionamiento del HC12.

Alumno: Maquina No:

Docente: GL: Fecha:

EVALUACION

% 1-4 5-7 8-10 Nota

CONOCIMIENTO 25% Conocimiento Conocimiento y Conocimiento


deficiente de los explicación completo y
fundamentos incompleta de los explicación clara
teóricos fundamentos de los
teóricos fundamentos
teóricos

APLICACIÓN DEL 70% No termina el Termina el Termina el


CONOCIMIENTO procedimiento procedimiento con procedimiento de
planteado en la bastante forma
guía 10% asistencia 10% independiente 10%

No modifica el Modifica el Modifica el


programa 30% programa no programa
interpreta interpretando
No responde a
correctamente los correctamente sus
preguntas de
resultados 30% resultados 30%
retroalimentación
30% Sus respuestas son Sus respuestas
incompletas 30% son correctas y
completas 30%

ACTITUD 2.5% Es un observador Participa Participa


pasivo. ocasionalmente o propositiva e
lo hace integralmente en
constantemente toda la práctica.
pero sin
coordinarse con su
compañero.

2.5% Es ordenado; pero Hace un uso Hace un manejo


no hace un uso adecuado de los responsable y
adecuado de los recursos, respeta adecuado de los
recursos las pautas de recursos conforme
seguridad; pero es a pautas de
desordenado. seguridad e
higiene.

TOTAL 100%