Professional Documents
Culture Documents
Temario
Arquitectura MCS-51 Macro Assembler IDE para MCS-51
Edicin Debugger
Ejemplos
Organizacin de la memoria
FFFFh FFFFh
FFh
80h
FFh
SFR
7Fh 2Fh 1Fh 00h 80h 7Fh
0000h
00h
0000h
CODE
DATA
IDATA
XDATA
Modos de direccionamiento
Los modos de direccionamiento de un micro- computador son las diferentes formas de transformacin del campo de operando de la instruccin en la direccin (localizacin) del operando Se utilizan tcnicas de direccionamiento con los siguientes fines
Dar versatilidad de programacin al usuario proporcionando facilidades tales como ndices, direccionamientos indirectos, etc. Reducir el nmero de bits del campo de operando
Modos de direccionamiento
La disponibilidad de diferentes esquemas de direccionamiento le da al programador experimentado flexibilidad para escribir programas que son ms eficientes en cuanto a nmero de instrucciones y tiempo de ejecucin Es tal la importancia de los modos de direccionamiento, que la potencia de una mquina se mide tanto por su repertorio de instrucciones como por la variedad de modos de direccionamiento que es capaz de admitir
Modos de direccionamiento
La especificacin del modo de direccionamiento puede ir en el cdigo de operacin o en el campo de cada operando Modos de direccionamiento del 8051
Directo Indirecto Por registro Implcito Inmediato Indexado
Modos de direccionamiento
Direccionamiento directo
ADD A,4Ch
MOV A,@R0 MOVX A,@DPTR
A (A)+(4C)
A ((R0)) A ((DPTR))
Direccionamiento indirecto
Modos de direccionamiento
Direccionamiento implcito
INC A MOV A,#3Dh A (A)+1 A 3D
Direccionamiento inmediato
Direccionamiento indexado MOVC A,@A+DPTR A ((A)+(DPTR))
Modos de direccionamiento
DATA and IDATA
MOV R1, #22H MOV A, @R1 MOV @R0, A INC R0 INC R1
acceso
;set R1 to point at DATA address 22H ;read the value at DATA address 22H ;into the accumulator ;write the value in the accumulator ;to IDATA address A9H ;set R0 to point at IDATA address AAH ;set R1 to point at DATA address 23H
MOV 34H, @R0 ;write the value at IDATA address AAH ;to DATA address 34H MOV @R1, #67H ;write 67H to DATA address 23H
Modos de direccionamiento
XDATA acceso
MOV DPTR, #3048H ;set DPTR to point at XDATA address ;3048H MOVX A, @DPTR ;read the data at XDATA address 3048H ;into the accumulator INC DPTR ;3049H MOV A, #26H ;set the accumulator to 26H MOVX @DPTR, A ;write 26H to XDATA address 3049H ;set DPTR to point at XDATA address
MOVX A, @R0 ;read the data at XDATA address 87H ;into the accumulator
Modos de direccionamiento
CODE acceso
MOV DPTR, #TABLE_BASE ;set DPTR to point at the ;base of a lookup table MOV A, index ;load the accumulator with an ;index into the table ;read the value from the ;table into the accumulator
MOVC A, @A+DPTR
Sistema de interrupciones
El 8051 bsico tiene 6 fuentes de interrupciones
2 fuentes externas (INT0, INT1) 2 fuentes internas timer/counter 2 fuentes internas provenientes de la lnea serie (recepcin y transmisin)
Vector de interrupciones
Fuente Reset External 0 Timer 0 External 1 Timer 1 Serial RX/TX Timer 2 (8052) Direccin de salto 0000h 0003h 000bh 0013h 001bh 0023h 002bh
PT2
PS
PT1
PX1
PT0
PX0
1: alta prioridad
0: baja prioridad
Habilitacin de interrupciones
Todas las interrupciones pueden ser habilitadas o bloqueadas en forma general Cada fuente de interrupcin puede individualmente habilitarse o bloquearse
EA ET2 ES ET1 EX1 ET0 EX0
Temporizadores y contadores
El 8051 bsico tiene 2 registros utilizables como temporizadores / contadores 8, 13 16 bits de cuenta Pueden utilizarse
Como temporizador
fc = 1/12 fosc
Temporizador/contador
Modo 13 16 bits sin auto recarga
Temporizador/contador
Modo 8 bits con auto recarga
UART
Unidad Asincrnica de Recepcin Transmisin serie
Full duplex UART, bajo control del software 8 9 bits de palabra de datos Velocidad de comunicacin programable
Tipos de memoria
CODE
Reservado para el programa 64 kBytes
DATA
Memoria interna para datos, direccionable en forma directa 128 Bytes Rpido acceso
Tipos de memoria
IDATA
Memoria interna para datos, direccionable en forma indirecta 128 Bytes (8051), 256 Bytes (8052)
BDATA
Memoria interna para datos, direccionable de a bit (128 bits) Uso con direccionamiento directo 16 Bytes
Tipos de memoria
XDATA
Memoria externa para datos 64 kBytes
PDATA
Memoria externa paginada para datos 256 Bytes
EXITM
IRP IRPC
LOCAL
MACRO REPT
WAIT
cuerpo
parmetro X ; macro definition X ; generate X NOP instructions ; end REPT ; end MACRO ; macro definition ; make sure X has a value ; if not then exit ; generate X NOP instructions ; end REPT ; end MACRO
WAIT2
; etiqueta local
LOOP:
5 ; insert 5 NOP
NOP
NOP
NOP
; end REPT block ;end macro definition NOP
; macro definition
MOV MOV
RNUM, <R0,R1,R2,R3,R4,R5,R6,R7>
MOV
ENDM ENDM
RNUM, #00h
; end IRP ; end macro definition
MOV
MOV MOV
R2, #00h
R3, #00h R4, #00h
MOV
MOV
R5, #00h
R6, #00h
MOV
R7, #00h
; macro definition
CHR, <Err>
jnb
clr
TI, $
TI
mov
mov
a, # CHR
SBUF, A
ENDM
ENDM
; end IRPC
; end macro definition
jnb clr mov mov jnb clr mov mov jnb clr mov mov
Definicin
ENDM
ENDM ... mov
Llamado
Llamado
DELAY
mov DELAY ...
10
20
; wait 10 NOPs
; set P0 ; wait 20 NOPs
P0, # 0ffh
Proceso de desarrollo SW
.asm A51 .obj .lib .obj .obj L51
.lst
LIB51 .lib
OH51
.bin
V2
In Circuit Emulator
.map
.hex
Kit evaluacin Programador Eprom
Herramientas de desarrollo SW
Vision/51 Compilador C51 Biblioteca C LIB51 Linker BL51
dScope-51
VISION 2
Programador EPROM
Herramientas de desarrollo SW
Ejecutable
llave en modo : LOAD
Ejecucin
Depuracin
Fin depuracin?
Correccin
Fin!
Vision2 IDE
Manejo de proyectos Facilidades para la creacin de programas ejecutables Edicin de cdigo fuente Depuracin (debugging) de programas Simulacin en el mismo ambiente de desarrollo
Vision2 IDE
Vision2 permite trabajar ms rpido a travs de una plataforma fcil de usar El editor y el depurador estn integrados en una misma aplicacin suministrando un ambiente de desarrollo nico para todo el proyecto
Vision2 IDE
Project window
Output window
Project management
Un proyecto es un conjunto de archivos con cdigo que son compilados/ensamblados y enlazados (linkeados) para obtener un nico cdigo de programa ejecutable
Project window
Project management
Creacin de un nuevo proyecto:
1. Seleccionar New Project desde Project menu para abrir una New Project dialog box 2. Ingresar el nombre del proyecto en la Project Name box 3. Seleccionar la carpeta para guardar el proyecto (Sugerencia: utilizar una carpeta para cada proyecto) 4. Click OK 5. Luego de oprimido OK (o guardar) aparece la opcin para seleccionar un dispositivo para el objetivo (target) que se est creando, aqui debe escogerse de la lista el indicado para el proyecto en cuestin (Sugerencia: utilizar ATMEL 89C52 que es el utilizado en los kits de desarrollo) 6. Click OK
New Project
Project management
Agregado de archivos al proyecto:
En el target creado, se deben agregar el/los archivo/s que formarn parte del proyecto, esto implica dos operaciones: Abrir un nuevo archivo En la entrada de men file oprimir New , esto abrir un espacio en blanco en la ventana de edicin de cdigo Guardar el archivo creado con nombre y extensin (a51 asm), con la opcin Save As Agregar el archivo creado al proyecto En la ventana de proyecto, haciendo click con el botn derecho sobre la carpeta Source Group 1, seleccionar la opcin Add file to group Seleccionar el archivo creado de la lista y oprimir Add
Agregado de archivos
Agregado de archivos
El cuadro de dilogo Options for target se abre oprimiendo el botn en la barra de herramientas o click del botn derecho sobre la carpeta Target 1 en la ventana de proyecto Sugerencia: No modificar las opciones establecidas por defecto, excepto la frecuencia de cristal, y en las opciones de salida seleccionar la opcin Create Hex File, para que genere el archivo .hex que se utilizar en el kit de desarrollo
Editor
Editor toolbar
Build toolbar
Build toolbar
Build project
Construir el proyecto significa realizar los pasos necesarios para obtener el programa ejecutable Cada proceso involucrado (ensamblado, enlazado, creacin del .hex) generar un reporte de salida visible en la output window
Build project
Debugger window
Debugger
Debugger toolbar
Debugger
Distintas opciones para ejecutar un programa Ejecucin normal (run) Paso a paso Por funcin (o subrutina completa) Hasta terminar la funcin (o subrutina) Hasta la posicin del cursor
Debugger
Distintas opciones para detener la ejecucin de un programa Detencin normal (halt execution) Breakpoints Se pueden colocar/retirar breakpoints durante la edicin del cdigo, los cuales sern activados en la sesin de debugger
Debugger
Atributos: Muestran sobre la primer columna de la ventana de cdigo el estado de ejecucin del programa, breakpoints, etc.
Debugger
Watch window: Muestra el valor actual de variables y permite el cambio de los mismos Memory window: Permite observar el estado de 2 reas de memoria y cambiar su contenido
Watch window
Memory window
Debugger
Simulacin de registros
Permite observar y/o modificar el estado de registros internos del micro-controlador Indica la cantidad de ciclos de instruccin y el tiempo (en segundos de acuerdo con el cristal seleccionado) que transcurrieron desde el comienzo de la ejecucin
Simulacin E/S
Permite colocar en estado alto/bajo cualquiera de los pins del dispositivo seleccionado Indica el estado cuando el programa acta sobre un determinado puerto o pin
Simulacin timers/counters
Permite modificar el estado de cuenta, modo de trabajo, etc. del dispositivo seleccionado Indica estado del temporizador (contador) cuando el programa lo modifica
Simulacin interrupciones
Permite modificar el estado del sistema de interrupciones Indica estado del sistema cuando el programa lo modifica Activacin o desactivacin de pedidos externos, pueden hacerse por los respectivos pins
Simulacin UART
Permite modificar el estado de los registros asociados a la UART Indica estado de la UART cuando se produce una recepcin/transmisin
Serial window
Permite la emulacin de una terminal para la UART Modos de edicin ASCII o HEX pueden ser configurados por un men local
Disassembly window
Permite observar en una misma ventana el cdigo fuente y el cdigo objeto del programa que est siendo depurado Muy til cuando se programa en lenguaje C y se quiere observar el cdigo que gener el compilador para una determinada funcin o bloque
Disassembly window
Code coverage
Muestra el porcentaje de las instrucciones del programa que han sido ejecutadas Permite detectar facilmente partes del cdigo que no han sido ejecutadas
Perfomance analyzer
Guarda y muestra el tiempo de ejecucin de funciones o bloques del programa Utilizable para analizar donde el programa consume ms tiempo de ejecucin
Debugger
IMPORTANTE: Para una visualizacin correcta de la ejecucin del programa, se debe activar la opcin Periodic Window Update en la entrada de men View
Bibliografa recomendada
uv2_v2.pdf Keil Vision2 IDE an Debugger Quick Start Gs51.pdf Getting Started and Creating Applications. Keil software A51.pdf Macro Assembler and Utilities. Keil software Finalwd.pdf The final word on 8051. Keil software 01502a01.pdf AP-69 An Introduction to the Intel MCS-51 Single-Chip microcomputer family