13
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 subventanas (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.

plugin-Manual Introductorio a Keil uVision para el AT89S51

  • Upload
    wwpoker

  • View
    456

  • Download
    2

Embed Size (px)

Citation preview

Page 1: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

 

Page 2: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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 

Page 3: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

Page 4: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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). 

 

Page 5: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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 

 

Page 6: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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)  . 

   

Page 7: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

Page 8: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

   

Page 9: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

Page 10: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

 

   

Page 11: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

   

Page 12: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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. 

 

 

 

   

Page 13: plugin-Manual Introductorio a Keil uVision para el AT89S51

 

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.