Tema 4: Microcontrolador AT90S2313

Documentos relacionados
Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011

Tema 4: Ejemplo de un computador real: ATmegaX8pa. 8-bit Microcontroller

Guía de programación ATMega328pa

3. PROGRAMACIÓN Microcontroladores

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

Programación en ensamblador y en alto nivel (C)

Arquitectura Interna del 8088

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

Tema 4: Ejemplo de un computador real: ATmegaX8PA. 8-bit Microcontroller

3 - Arquitectura interna de un up

Arquitectura de Computadores II

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Arquitectura de Computadores II Clase #3

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

Relación de Problemas I

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

5 - Lenguaje Ensamblador

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Registros SFR vistos hasta ahora: Microcontroladores PIC

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

8.4. El software en los μprocesadores

Tema 1. Fundamentos del lenguaje ensamblador

Tablas familia MCS-51 (8051)

Guía de uso del programa AVR-Studio

BLOQUE 3 (PARTE 2) MICROCONTROLADOR 8051 DESCRIPCIÓN GENERAL

Conceptos de Arquitectura de Computadoras Curso 2015

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Ejercicios del tema 4. El procesador

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

Sistemas con Microprocesadores I

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Análisis general de un Microprocesador

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Arquitectura (Procesador familia 80 x 86 )

INDICE Capitulo 1. Microcontroladores Programables: La Solución está en un CHIP Capitulo 2. Microcontroladores de 8 BITS: Los <<PIC>>

BLOQUE 3 (PARTE 3) DESARROLLO DE SISTEMAS ELECTRÓNICOS DIGITALES BASADOS EN UN MICROCONTROLADOR HERRAMIENTAS HARDWARE Y SOFTWARE

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

ORGANIZACIÓN DE LA MEMORIA

Operaciones lógicas y repetición

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

ESTRUCTURA BÁSICA DEL µc AT89C51

El Diseño de un Lenguaje Máquina

Presentación Funciones (o rutinas) Declaración de una función Llamada a una función La pila (STACK)... 9

Características generales

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Los números naturales y enteros en el 80X86 y en LAN

9. Lenguaje ensamblador

Instrucciones de máquina y tipos de software

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Arquitectura de Computadores II Clase #3

Arquitectura de Computadoras

Arquitectura y mapa de memoria del 80C167. Cesáreo Fernández Martínez Álvaro Sánchez Miralles

Dada la CPU con la estructura interna que se muestra en la figura,

Microprocesadores, Tema 3 (2):

Resumen de las instrucciones del 8086/8088

Práctica 3 - Arquitectura del CPU

Taller de Firmware. Introducción a los Microcontroladores. Facultad de Ingeniería Instituto de Computación

El microprocesador de 16 bits MC68000

SISTEMAS OPERATIVOS Arquitectura de computadores

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017

Organización de Computadoras. Clase 7

INSTRUCCIONES DE ENSAMBLADOR

Capítulo 1 Conceptos arquitectónicos

MICROCONTROLADORES: FUNDAMENTOS Y APLICACIONES CON PIC. Autores: Fernando E. Valdés Pérez Ramon Pallàs Areny. Título de la obra:

Estructura de Computadores

Arquitectura intel Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

1.2.- EL MICROPROCESADOR.

PRÁCTICA 1. Programación del 8086

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa

MPD: MICROPROCESADOR DIDÁCTICO EN VHDL Javier Hernández 1, César Sanz 2, Antonio Carpeño 3 y Bernardo Merino 4

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

El nivel ISA (II)! Conjunto de Instrucciones

Tema 4. Lenguaje máquina y lenguaje ensamblador

ARQUITECTURA VON NEUMANN

ARQUITECTURA DE COMPUTADORES

UNIVERSIDAD EMILIANO ZAPATA

Preguntas claves (y sus respuestas)

APENDICE A Microcontrolador de 8 bits MC68HC11F1

Instrucciones de Control de Flujo y Usos de la Pila

FUNDAMENTOS DE COMPUTADORES

Microprocesadores. Informática Aplicada DSI-EIE FCEIA

CONJUNTO DE INSTRUCCIONES PARA LA FAMILIA DEL 51

Clasificación del procesador según el número de referencias a memoria.

Guía de práctica. Dispositivo

Controladores Lógicos Programables

Modos de Direccionamiento

Microcontroladores de Atmel

INSTITUTO TECNOLÓGICO SUPERIOR DE PÁNUCO APUNTES DE LA MATERIA DE: MICROPROCESADORES Y MICROCONTROLADORES I

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

2.2-1 Visión Interna PIC16F873/876. SBM

Procesador MIPS - Registros

Hoja de Datos NoMADA ISP+ [DAT002A NoMADA ISP+ 03/16]

Introducción a la arquitectura de computadores

Transcripción:

Tema 4: - Descripción externa - Arquitectura interna - Organización de memoria - Registros de propósito general - Registros de entrada/salida (SREG,SPL) - Modos de direccionamiento - Juego de instrucciones 1 - Directivas de ensamblador y entorno de program.

Presentación Arquitectura Risc. 8 bits Frecuencia de reloj de hasta 10 Mhz (Xtal1,Xtal2) Hasta 10 Mips 2 Kb Flash, 128 b SRAM, 128 b EEprom Diversos periféricos Encapsulado 20 pines Versiones bajo consumo 2

Descripción externa VCC,GND : Terminales de alimentación #RESET: Reinicia ejecución de instrucciones XTAL1,XTAL2 : Entradas de reloj PD6-0 PB7-0 Pines de puerto con funciones alternativas 3

Descripción interna 4

Mapa de memoria (programa y datos) 5

Mapa de memoria de datos (detalle) 6

Registros de propósito general Son 32 registros Las instrucciones con modo inmediato sólo usan los 16 registros superiores. Registro X, Y, Z para modos indirectos 7

Registros de propósito general (cont.) Registros X, Y, Z para modos indirectos 8

Registros de entrada/salida Permiten el acceso y control de los periféricos y de los recursos del microcontrolador. 9

Registros de entrada/salida (SREG) Registro de estado. El banderín I (interrupción) habilita o inhabilita la generación de interrupciones. El banderín T (bit de propósito general) Los bits (flags o banderines) C, Z, N, V, S, H cambian dependiendo del resultado de la ejecución de diferentes instrucciones (aritméticas, lógicas, rotación/desplaz. y de modificación de flags). 10

Registros de entrada/salida (SREG) cont. Bit C (Acarreo) - Bit de acarreo de la etapa 7 de la ALU. Bit Z (Zero) - Se pone a 1 para resultado cero, 0 en otro caso. Bit N (Negative) - Bit 7 del resultado. Bit V (Overflow en Ca2) A,B operand. y R resultado - V = A7 B7 R7' + A7' B7' R7 en suma - V = A7 B7' R7' + A7' B7 R7 en resta 11

Registros de entrada/salida (SREG) cont. Bit H (HalfCarry) - Bit de acarreo de la etapa 3 de la ALU (semiacarreo). Bit S (Sign en Ca2) -S=N V - Es el signo correcto del resultados en operaciones en Ca2. 12

Registros de entrada/salida (SPL) Registro PUNTERO de PILA. Apunta al área de pila que defina el usuario. El SP se decrementa al meter en pila y se incrementa al sacar. Si el programador usa subrutinas o interrupciones, es necesario inicializar el puntero de pila. En estos casos el SP se incrementa o decrementa automáticamente en dos unidades. 13

Modos de direccionamiento para datos Directo Indirecto Indirecto con predecremento Indirecto con postincremento Indirecto con desplazamiento Constantes del programa Inmediato 14

Direccionamiento registro directo La instrucción define el registro cuyo contenido se verá afectado por la propia instrucción. Ejemplo: COM R4 15

Direccionamiento registro directo (2 reg.) La instrucción define el registro fuente (Rr) y destino (Rd). Ejemplo: MOV R2, R4 16

Direccionamiento registro e/s directo La instrucción define el registro de E/S (P) y el registro, destino o fuente, n. Ejemplo: IN R14,34 ; OUT 34,R14 17

Modo de direccionamiento directo La instrucción contiene la dirección de memoria además de un campo (Rd/Rr) que contiene el registro destino o fuente. Ejemplo: LDS R23,$D0 ;STS $12,R1 18

Modo de direccionamiento indirecto La instrucción referencia al registro X,Y o Z que contiene la dirección del operando.. Ejemplo: LD R1,X ;ST Z,R10 19

Direccionamiento indirecto postincremento La instrucción referencia al registro X,Y o Z que contiene la dirección del operando, que después se incrementa en una unidad. Ejemplo: LD R0,X+ ;ST Z+,R1 20

Direccionamiento indirecto predecremento La instrucción referencia al registro X,Y o Z que, primero se decrementa en una unidad, y después, accede al operando. Ejemplo: LD R15,-X ;ST -Y,R1 21

Direccionamiento indirecto con desplazamto. La dirección del dato se obtiene mediante la suma del contenido del registro Y o Z y una constante q (0<q<64). Ejemplos: LDD R1,Y+10 ;STD Z+1,R1 22

Direccionamiento constantes de memoria El dato está en la memoria de programa (instrucción LPM). La dirección del dato se sitúa en el registro Z. 23

Direccionamiento inmediato El dato está está codificado en la propia instrucción Ejemplos: LDI r16,255, ANDI r25,0x10 24

Modos de direccionamiento para programas Son utilizados por las instrucciones de salto y llamada a subrutinas (procedimientos) Modo de direccionamiento de programa indirecto Modo de direccionamiento de programa relativo 25

Direccionamiento de programa indirecto La ejecución del programa salta a la posición de memoria indicada por el registro Z. Ejemplos: IJMP, ICALL 26

Direccionamiento de programa relativo La instrucción contiene un desplazamiento K que se suma al contenido del PC para encontrar la siguiente instrucción a ejecutar. (-2048 <K< 2047). Ejemplos: RJMP, RCALL 27

Juego de instrucciones: representación Instrucciones sin operandos Mnemónico Instrucciones con un operando Mnemónico opfuente/destino Instrucciones con dos operandos Mnemónico opdestino,opfuente Representación de las instrucciones: Mnemónico Operandos Descripción Rango de valores Descripción posibles para los simbólica operandos Flags del SREG 28

Juego de instrucciones - Instrucciones de transferencia de datos - Instrucciones aritméticas y lógicas - Instrucciones de bifurcación - Instrucciones de desplazamiento y rotación - Instrucciones de bit - Instrucciones de control 29

Juego de instrucciones: Transferencia de datos - MOV - LDI - LDS - STS 30

Juego de instrucciones: Transferencia de datos - LD - ST 31

Juego de instrucciones: Transferencia de datos - LDD - STD - IN - OUT 32

Juego de instrucciones: Transferencia de datos $00 MOV R1,R2 32 registros IN R1,$10 ST Z,R1 STD Y+1,R30 STS $DE,R4 OUT 12,R3 64 registros E/S LD R1,Z LDD R30,Y+2 LDS R23,$10 SRAM $DF 33

Juego de instrucciones: Transferencia de datos - PUSH - POP - LPM -SWAP 34

Juego de instrucciones: Aritméticas y lógicas - Los operandos sólo pueden ser registros o constantes. - Suma aritmética - Sin acarreo - Con acarreo - Suma con registros 16 bits y dato inmediato 35

Juego de instrucciones: Aritméticas y lógicas - Resta aritmética - Sin acarreo - Con dato inmediato - Con acarreo - Con dato inmediato y acarreo - Con dato inmediato y con registros de 16 bits. 36

Juego de instrucciones: Aritméticas y lógicas - Comparación - 2 registros sin acarreo - 1 registro con dato inmediato - 2 registros con acarreo - INCrementa y DECrementa 37

Juego de instrucciones: Aritméticas y lógicas - CLR (poner a cero) - SER (poner a $FF) - NEG (Ca2) 38

Juego de instrucciones: Aritméticas y lógicas - AND - OR - EOR - COM 39

Juego de instrucciones: Instrucciones de bifurcación - Saltos incondicionales: - Relativo, - Absoluto, -Indirecto - Llamada a subrutinas: - Usan la pila (STACK) para almacenar el retorno. - Relativo, - Absoluto, -Indirecto 40

Juego de instrucciones: Instrucciones de bifurcación - De regreso de subrutinas. - Saltos condicionales: * Esquivar la siguiente instrucción: 41

Juego de instrucciones: Instrucciones de bifurcación * Saltar grupo de instrucciones: - Entre -64 instrucciones y 63 instrucciones - Destinos más lejanos requieren de instrucciones de salto incondicionales situadas en destinos previos. - Consultan el estado de algún bit del SREG o combinación de estos. - Instrucciones BRBS y BRBC: 42

Juego de instrucciones: Instrucciones de bifurcación - Instrucciones BREQ y BRNE: - Instrucciones BRCS y BRCC: - Instrucciones BRVS y BRVC: 43

Juego de instrucciones: Instrucciones de bifurcación - Instrucciones BRTS y BRTC: - Instrucciones BRHS y BRHC: - Instrucciones BRIE y BRID: 44

Juego de instrucciones: Instrucciones de bifurcación - Instrucciones BRPL y BRMI: -Instrucción BRSH - Salta si igual o mayor - Sin signo - Instrucción BRLO - Salta si menor - Sin signo 45

Juego de instrucciones: Instrucciones de bifurcación - Instrucción BRGE - Salta si igual o mayor - Con signo - Instrucción BRLT - Salta si menor - Con signo 46

Juego de instrucciones: Instrucciones de bifurcación Resumen de las instrucciones de saltos condicionales y sus dependencias de los banderines del SREG 47

Juego de instrucciones: Desplazamiento y rotación - Desplazamiento. 0 Rn C Rn C 0 - Desplazamiento aritmético Rn C 7 48

Juego de instrucciones: Desplazamiento y rotación - Rotaciones. Rn C C Rn - Instrucciones 49

Juego de instrucciones: De manejo de bits - De puertos: SBI, CBI - De registro de estado SREG 50

Juego de instrucciones: De control - NOP - WDR - SLEEP 51

Directivas de ensamblador Son comandos al programa que genera el código objeto y que se encuentran mezclados en el fichero fuente con las instrucciones del micro. - CSEG-Code Segment Sintaxis:.CSEG - DSEG-Date Segment Sintaxis:.DSEG - DB-Define Byte en Program Memory Sintaxis:.DB expressionlist Const:.DB 0,255, 0b01010101,-128,0xaa,$45 52

Directivas de ensamblador - DW Define Word en Program Memory Sintaxis:.DW expressionlist Const:.DW 0,0xFFFF, -32768,65535, 0b1111111100000000 - BYTE Reserva bytes a una variable Reserva en SRAM. Posible sólo en DSEG Sintaxis: label:.byte expresion Var1:.BYTE 1 Tabla:.BYTE 10 53

Directivas de ensamblador - DEF Asigna un nombre simbólico a un registro. Sintaxis:.DEF symbol=register.def temp = r16.def ior= r0 - EQU Símbolo igual a expresión Sintaxis:.EQU label = expression.equ puertas = 2 54

Directivas de ensamblador - ORG Establece el origen del programa Sintaxis:.ORG expression.dseg.org 0X37 Variable:.BYTE 1.CSEG.ORG 0x10 Mov r0,r1 55

Herramientas de desarrollo del ATMEL AT90S2313 Wavrasm AVR ISP AVR-Studio STK-200 STK-500 56

Herramientas de desarrollo del ATMEL AT90S2313 Wavrasm AVR ISP AVR-Studio STK-200 STK-500 57

Wavrasm (cont.) Editor de texto para escribir programas en lenguaje ensamblador (.asm ) Ensamblador integrado Permite el uso de directivas Permite la identificación de los errores en el programa escrito Genera ficheros con las extensiones (.lst) que mezcla nuestro programa con el código objeto, (.obj) que contiene sólo el código objeto y (.hex) o formato Intel Hex que se usará, en último lugar, por el AVR ISP para la programación física del microcontrolador. 58

AVR ISP 59

AVR ISP (cont.) Software de programación Requiere el STK200 conectado al puerto paralelo a través de un conector especial o dongle Abre ficheros (.hex) generados por AVRASM y programa su contenido en un modelo de microcontrolador previamente escogido Permite Borrar dispositivo Programar EEPROM datos Programar EEPROM de programa 60

AVR ISP (cont.) Verificar programa almacenado Chequeo del dispositivo Comprobación de Cheksum Programación fusibles Otros 61

AVR STUDIO 62

AVR STUDIO (cont.) En las primeras versiones sólo contenía un simulador. A partir de la versión 3, es un entorno integrado que permite la edición de programas, generación de código máquina, programación y simulación. La programación se realiza a través del puerto serie hacia el STK500 Permite incorporar en la simulación código escrito en lenguaje C. 63

STK-200 Placa STK200 64

STK-200 (cont.) Establece un entorno de funcionamiento para el microcontrolador permitiendo la realización de ensayos básicos. Zócalos de diferentes tamaños para los distintos modelos de la familia AT90 Oscilador de cristal Driver s RS232 con conector DB9 Conector para la programación del microcontrolador a través del puerto paralelo 65

STK-200 (cont.) Conjunto de diodos LEDS Conjunto de pulsadores mecánicos Conectores de expansión Regulador de alimentación Zócalo para LCD. 66

STK-500 Placa STK500 67

STK-500 (cont.) Se comunica con el PC a través del puerto serie Software actualizable Frecuencia de reloj programable desde el PC (AvrStudio) Voltaje de alimentación de los μc regulable desde PC. Conjunto de leds Conjunto de pulsadores Zócalos de diferentes tamaños Conectores de expansión. 68