Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Inicie el programa usando el icono de que se encuentra en la barra de inicio, o ubíquelo dentro del
escritorio de su computadora. La instalación por omisión, genera iconos en estas posiciones.
Si se generó anteriormente algún proyecto, o abrió alguno de los ya existentes, el programa iniciará
con dicho proyecto. Si este fuera el caso, cierre el proyecto, usando project/Close Project.
Ahora el programa deberá mostrarte la siguiente vista. Donde se pueden observar dos sub‐ventanas
(izquierda e inferior) nombradas Project y Build Output. En la región derecha superior aparece una región en
gris, debido a que no se cuenta con proyecto alguno.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Iniciemos un nuevo proyecto (Project/New Vision Project). Es importante mencionar que en Keil
Vision, es necesario trabajar dentro del entorno de proyectos, ya que serán generados por lo menos 6
archivos con diferente información.
Para evitar que los archivos de un proyecto sean mezclados por error con los de otro proyecto, genere
un folder para cada proyecto.
Una vez que se le ha asignado un
nombre al proyecto dentro de un nuevo
folder, Keil Vision nos pide el tipo de
microcontrolador con el que vamos a
trabajar. Seleccione por supuesto AT89S51,
que se encuentra dentro del fabricante
ATMEL. Observe que en la sub‐ventana
derecha, aparecen las principales
características del microcontrolador
seleccionado. Presione OK.
Keil Vision, nos mostrara la siguiente ventana.
IMPORTATE SELECCIONAR NO
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Como resultado de la creación del nuevo proyecto, la
sub‐ventana izquierda superior, nos mostrara ahora que se ha
creado un proyecto, con la denominación Target1, que
contiene el grupo de archivos origen SourceGroup1.
En esta sub‐ventana aparecen pestañas 4 pestañas,
, que nos dan
nueva información relativa al proyecto. Abordaremos el
contenido de estas ventanas una vez que se haya compilado
el proyecto y que se hayan generado algunas funciones,
procedimientos o subrutinas.
Note que aun no se encuentra relacionado ningún
archivo a dicho proyecto. Los archivos relacionados al
proyecto, deberán aparecer en la parte inferior del
contenedor SourceGroup1.
Para generar un nuevo archivo de código en lenguaje
ensamblador, seleccione las opciones de File/new. En la sub‐
ventana superior derecha aparece ahora un nuevo
documento, con la especificación Text1 sin extensión.
Guarde el documento en la misma ruta donde se localiza el proyecto generado anteriormente usando
File/Save (CTRL+S) ASEGURESE DE ESCRIBIR LA EXTENSION DEL ARCHIVO COMO *.ASM.
Cuando realiza ésta operación, en la ventana donde aparecía Text1, aparece el número 1 en la región
izquierda de dicha ventana y en la parte superior, el nombre designado al archivo con la extensión *.asm. Note
que a pesar de que se ha generado un archivo *.asm, y se ha ubicado dentro del subdirectorio del proyecto, el
archivo *.asm, aun no está vinculado con dicho proyecto. Esto se determina, porque en la ventana de Project,
debajo del rubro SourceGroup1, no aparece el nombre del proyecto.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Para vincular el archivo *.asm con el proyecto de click con el botón derecho del ratón sobre el rubro
SourceGroup1 y seleccione Add Files to Group ´SourceGroup1´.
En la ventana emergente, seleccione el tipo de archivo
que será vinculado al proyecto, como: ASM Source file (*.s*;
*.src;*.a*). Seleccione el archivo que genero anteriormente.
Presione el botón Add. Debido a que con esta ventana, se
puede adicionar diversos archivos al proyecto, el hecho de
presionar el botón Add, no cerrara la ventana emergente, por
lo que será necesario presionar el botón CLOSE después de
haber presionado el botón ADD.
Asegúrese que el archivo está vinculado con el
proyecto, expanda el rubro SourceGroup1, y debajo de
éste deberá aparecer el archivo vinculado.
Para especificar las opciones del proyecto, es necesario dar click con el botón derecho del ratón sobre
el rubro Target1 y seleccionar Options for Target1 (ALT+F7).
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
En la ventana emergente, se pueden configurar diversas opciones del proyecto, como lo son la
frecuencia de operación, el modelo de memoria a utilizar (solo memoria de programa interna, interna‐externa,
para variables y constantes). Las opciones que modificaremos para los primeros proyectos generados son:
1. Definir frecuencia de operación y modelo de memoria.
2. Definir archivos de salida
Ahora podemos escribir el código correspondiente a nuestro programa antes de iniciar el proceso de
compilación, supongamos el siguiente fragmento de código para inicializar la operación de DEPURACION.
CSEG ValueInitACC EQU 01H CounterDelayOut EQU 0FFH CounterDelayIn EQU 0FFH ORG 0000H JMP MAIN ORG 0030H MAIN: MOV SP,#70H MOV Counter,#1 cicloInicializaPuerto: MOV A, #Counter cicloEnviaPuerto: MOV P1, A
INC A cicloRetrazaEnvio1: MOV R0, #CounterDelayOut MOV R1, #CounterDelayIn cicloRetrazaEnvio2: DJNZ R0, cicloRetrazaEnvio2 DJNZ R1, cicloRetrazaEnvio2 INC Counter JMP cicloEnviaPuerto END MAIN
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Una vez escrito algún segmento de código, se puede pasar al proceso de ensamble y enlace usando el
comando Buil Target (F7).
Después será necesario observar los errores que
pudieran aparecer en la ventana de Build Output, lo
ideal sería obtener cero errores, como se muestra a
continuación.
Si llegaras a obtener algún tipo de error, se te
proporcionara el tipo de error y la línea donde se ubica
dicho error, observa la siguiente ventana. En esta se
indica que existe un error de sintaxis (Algo mal escrito,
que no es una palabra reservada) en la línea 5 del archivo
borrar.asm.
Dando doble clic sobre el error en la ventana de Build
Output, el programa te llevará a la ventana de código origen
y a la línea donde se encuentra dicho error. TIP. Siempre
corrige los errores del primero al último, ya que un error
generalmente genera muchos más errores, es decir
arreglando los primeros errores, casi siempre se eliminan
errores posteriores.
Siempre que modifiques el contenido del archivo fuente (lenguaje Ensamblador), deberás guardar tu
archivo File/Save (CTRL+S) y volver a lanzar el proceso de ensamble y enlace
Project/Build Target (F7) .
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Cuando tu proyecto ya no contenga errores, será posible entonces iniciar el proceso de simulación y
depuración con el comando Start/Stop Debbug Session (CTRL+F5).
Debido a que se está utilizando un programa de evaluación, siempre que se lance el proceso de
Depuración, saldrá la siguiente ventana emergente. Presione el botón ACEPTAR.
Si se han realizado adecuadamente los pasos anteriores, entraremos en modo de simulación, y
aparecerán nuevas ventanas, con información diversa de nuestro proyecto, el microcontrolador y los recursos
de este. Observe la siguiente ventana.
Analizaremos algunas de las características de simulación que proporciona el programa.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
EJECUCION DEL PROGRAMA
El simulador nos permite ejecutar las instrucciones que forman al programa en diferentes modalidades:
Corrida libre (RUN F5). El programa corre libremente,
hasta que se alcance algún punto de rompimiento, ya sea por
hardware o por software. Si no se
alcanza algún punto de rompimiento
será necesario detener la ejecución libre
del programa usando el comando Stop.
Corrida línea por línea (Step One Line F11). Permite la ejecución solamente de una línea de código.
Cuando se encuentra con instrucciones de llamadas a procedimientos
o subrutinas (instrucción call), el comando F11, se introduce al cuerpo
de la función para seguir la ejecución línea por línea de las
instrucciones que forman a la subrutina.
Corrida sobre la línea (Step Over the Line F10). De forma similar a F11, este comando ejecuta una
línea a la vez, pero si la línea que se desea ejecutar es una
línea que contiene encapsulada un conjunto de instrucciones,
esta se considera como si fuera una sola instrucción. Esta
función es utilizada cuando no deseamos depurar el código
contenido dentro de alguna subrutina o función.
Salir de la función actual (Step Out of the currenti function CTRL+F11). Estando dentro del cuerpo
de la función, este comando nos permite ejecutar
todas las instrucciones que forman a la función a
velocidad de corrida libre y detenerse en la
instrucción inmediata posterior a la llamada a dicha función.
Corrida libre hasta la línea del cursor (Run to Cursor Line CTRL+F10). Ejecuta todas las instrucciones
a velocidad de corrida libre, desde la posición actual,
hasta que sea alcanzada la instrucción donde se ubicaba
el cursor cuando se presiono CTRL+F10.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
CONTEO DE TIEMPO
En la parte inferior del programa Keil mVision (Barra de estado), se ubica el sistema de conteo de
tiempo del programa. Este sistema cuenta con tres cronómetros, que están relacionados con la ejecución del
programa. Para observar el tiempo de estos cronómetros, basta con colocar el ratón sobre la barra de estados
de los cronómetros.
Para reinicializar alguno de los cronómetros del sistema, dar click con el botón derecho del ratón sobre
la barra de estados donde se encuentra especificados los contadores y seleccionar la operación deseada.
Dos de estos contadores (T1 y T2) pueden ser reiniciados en cero en cualquier momento de la
ejecución del programa, no así el T0 que especifica el tiempo total que ha transcurrido desde que el
microcontrolador se inicializo.
Existen dos tipos de puntos de rompimiento por software o por hardware,
Los puntos de rompimiento por hardware, son aquellos
que detienen la ejecución de la simulación del programa (RUN F5),
cuando se alcanza una instrucción marcada por un punto de
rompimiento. Los puntos de rompimiento son definidos o borrados,
cuando se ejecuta el comando Insert/Remove BreakPoint (F9).
Los puntos de rompimiento son marcados sobre el
archivo origen (Lenguaje Ensamblador) con un círculo rojo. En la
imagen de la izquierda, el punto de rompimiento está definido en
la línea 23 que corresponde con la instrucción INC Counter.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
PUNTOS DE ROMPIMIENTO
Los puntos de rompimiento por software son aquellos que se definen para condiciones de acceso o
modificación de registros o posiciones de memoria. Es decir es
posible especificarle al programa que ejecute todas las
instrucciones a velocidad de corrida libre, pero que se detenga
cuando se haya realizado el evento de lectura de un registro
determinado o con mayor complejidad detener la ejecución del
programa cuando se haya accesado un registro 200 veces para
lectura y/o escritura. Estos puntos de rompimiento se definen o se
deshabilitan usando el comando Debug/Breakpoints (CTRL+B).
Una vez ejecutado el comando, aparecerá una ventana emergente donde se podrán especificar las
condiciones requeridas para que el simulador detenga la ejecución del programa en modo de corrida libre.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
Por ejemplo observe los datos que se han escrito
en la ventana de Breakpoints. Seguidos cada uno de ellos
de presionar el botón define.
Los datos escritos definen el evento de Break para
la ejecución del programa, cuando el nemónico “r0” sea
usado por el programa 8 veces. Para acc cuando sea usado
255 veces y el último se tendrá cuando se use la posición
de memoria de datos 30H 30 veces.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
VISUALIZACION DE VARIABLES Y CONSTANTES.
Para adicionar una variable o constante a la región de Watch, se puede realizar dando click con el
botón derecho del ratón estando sobre el nombre de la constante o de la variable y seleccionando Add
‘variable o constante’ to.. Watch1 o Watch2.
Campus Ciudad de México División de Ingeniería Arquitectura
Departamento de Ingeniería Mecatrónica LABORATORIO DE MICROCONTROLADORES
Laboratorio de Microcontroladores Genaro Sola Ortiz
ANALIZADOR LOGICO.