Vous êtes sur la page 1sur 68

Tema 4: Microcontrolador AT90S2313

- Descripcin externa - Arquitectura interna - Organizacin de memoria - Registros de propsito general - Registros de entrada/salida (SREG,SPL) - Modos de direccionamiento - Juego de instrucciones
1 - Directivas de ensamblador y entorno de program.

Microcontrolador AT90S2313
Presentacin
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 perifricos Encapsulado 20 pines Versiones bajo consumo

Microcontrolador AT90S2313
Descripcin externa
VCC,GND : Terminales de alimentacin #RESET: Reinicia ejecucin de instrucciones XTAL1,XTAL2 : Entradas de reloj PD6-0 PB7-0 Pines de puerto con funciones alternativas

Microcontrolador AT90S2313
Descripcin interna

Microcontrolador AT90S2313

Mapa de memoria (programa y datos)

Microcontrolador AT90S2313

Mapa de memoria de datos (detalle)

Microcontrolador AT90S2313
Registros de propsito general
Son 32 registros Las instrucciones con modo inmediato slo usan los 16 registros superiores. Registro X, Y, Z para modos indirectos

Microcontrolador AT90S2313

Registros de propsito general (cont.)

Registros X, Y, Z para modos indirectos

Microcontrolador AT90S2313
Registros de entrada/salida
Permiten el acceso y control de los perifricos y de los recursos del microcontrolador.

Microcontrolador AT90S2313
Registro de estado.

Registros de entrada/salida (SREG)

El bandern I (interrupcin) habilita o inhabilita la generacin de interrupciones. El bandern T (bit de propsito general) Los bits (flags o banderines) C, Z, N, V, S, H cambian dependiendo del resultado de la ejecucin de diferentes instrucciones (aritmticas, lgicas, rotacin/desplaz. y de modificacin de flags). 10

Microcontrolador AT90S2313
Bit C (Acarreo)

Registros de entrada/salida (SREG) cont.

- 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

Microcontrolador AT90S2313
Bit H (HalfCarry)

Registros de entrada/salida (SREG) cont.

- Bit de acarreo de la etapa 3 de la ALU (semiacarreo).

Bit S (Sign en Ca2)


-S=NV - Es el signo correcto del resultados en operaciones en Ca2.

12

Microcontrolador AT90S2313
Registro PUNTERO de PILA.

Registros de entrada/salida (SPL)

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 automticamente en dos unidades.

13

Microcontrolador AT90S2313
Directo Indirecto Indirecto con predecremento Indirecto con postincremento Indirecto con desplazamiento Constantes del programa Inmediato

Modos de direccionamiento para datos

14

Microcontrolador AT90S2313

Direccionamiento registro directo


La instruccin define el registro cuyo contenido se ver afectado por la propia instruccin. Ejemplo: COM R4

15

Microcontrolador AT90S2313

Direccionamiento registro directo (2 reg.)


La instruccin define el registro fuente (Rr) y destino (Rd). Ejemplo: MOV R2, R4

16

Microcontrolador AT90S2313

Direccionamiento registro e/s directo


La instruccin define el registro de E/S (P) y el registro, destino o fuente, n. Ejemplo: IN R14,34 ; OUT 34,R14

17

Microcontrolador AT90S2313

Modo de direccionamiento directo


La instruccin contiene la direccin de memoria adems de un campo (Rd/Rr) que contiene el registro destino o fuente. Ejemplo: LDS R23,$D0 ;STS $12,R1

18

Microcontrolador AT90S2313

Modo de direccionamiento indirecto


La instruccin referencia al registro X,Y o Z que contiene la direccin del operando.. Ejemplo: LD R1,X ;ST Z,R10

19

Microcontrolador AT90S2313

Direccionamiento indirecto postincremento


La instruccin referencia al registro X,Y o Z que contiene la direccin del operando, que despus se incrementa en una unidad. Ejemplo: LD R0,X+ ;ST Z+,R1

20

Microcontrolador AT90S2313

Direccionamiento indirecto predecremento


La instruccin referencia al registro X,Y o Z que, primero se decrementa en una unidad, y despus, accede al operando. Ejemplo: LD R15,-X ;ST -Y,R1

21

Microcontrolador AT90S2313

Direccionamiento indirecto con desplazamto.


La direccin 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

Microcontrolador AT90S2313

Direccionamiento constantes de memoria


El dato est en la memoria de programa (instruccin LPM). La direccin del dato se sita en el registro Z.

23

Microcontrolador AT90S2313
Direccionamiento inmediato
El dato est est codificado en la propia instruccin Ejemplos: LDI r16,255, ANDI r25,0x10

24

Microcontrolador AT90S2313

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

Microcontrolador AT90S2313

Direccionamiento de programa indirecto


La ejecucin del programa salta a la posicin de memoria indicada por el registro Z. Ejemplos: IJMP, ICALL

26

Microcontrolador AT90S2313

Direccionamiento de programa relativo


La instruccin contiene un desplazamiento K que se suma al contenido del PC para encontrar la siguiente instruccin a ejecutar. (-2048 <K< 2047). Ejemplos: RJMP, RCALL

27

Microcontrolador AT90S2313
Instrucciones sin operandos
Mnemnico

Juego de instrucciones: representacin

Instrucciones con un operando


Mnemnico opfuente/destino

Instrucciones con dos operandos


Mnemnico opdestino,opfuente

Representacin de las instrucciones:

Mnemnico

Operandos

Descripcin Rango de valores Descripcin posibles para los simblica operandos

Flags del SREG


28

Microcontrolador AT90S2313
Juego de instrucciones - Instrucciones de transferencia de datos - Instrucciones aritmticas y lgicas - Instrucciones de bifurcacin - Instrucciones de desplazamiento y rotacin - Instrucciones de bit - Instrucciones de control

29

Microcontrolador AT90S2313
- MOV - LDI - LDS - STS

Juego de instrucciones: Transferencia de datos

30

Microcontrolador AT90S2313
- LD - ST

Juego de instrucciones: Transferencia de datos

31

Microcontrolador AT90S2313
- LDD - STD - IN - OUT

Juego de instrucciones: Transferencia de datos

32

Microcontrolador AT90S2313
$00

Juego de instrucciones: Transferencia de datos


MOV R1,R2 IN R1,$10
64 registros E/S 32 registros

ST Z,R1 STD Y+1,R30 STS $DE,R4 OUT 12,R3

LD R1,Z LDD R30,Y+2 LDS R23,$10


SRAM

$DF

33

Microcontrolador AT90S2313
- PUSH - POP - LPM -SWAP

Juego de instrucciones: Transferencia de datos

34

Microcontrolador AT90S2313

Juego de instrucciones: Aritmticas y lgicas - Los operandos slo pueden ser registros o constantes. - Suma aritmtica
- Sin acarreo - Con acarreo - Suma con registros 16 bits y dato inmediato

35

Microcontrolador AT90S2313
- Resta aritmtica
- Sin acarreo - Con dato inmediato - Con acarreo

Juego de instrucciones: Aritmticas y lgicas

- Con dato inmediato y acarreo - Con dato inmediato y con registros de 16 bits.

36

Microcontrolador AT90S2313
- Comparacin
- 2 registros sin acarreo

Juego de instrucciones: Aritmticas y lgicas

- 1 registro con dato inmediato - 2 registros con acarreo

- INCrementa y DECrementa
37

Microcontrolador AT90S2313
- CLR (poner a cero) - SER (poner a $FF) - NEG (Ca2)

Juego de instrucciones: Aritmticas y lgicas

38

Microcontrolador AT90S2313
- AND - OR - EOR - COM

Juego de instrucciones: Aritmticas y lgicas

39

Microcontrolador AT90S2313
- Saltos incondicionales:

Juego de instrucciones: Instrucciones de bifurcacin

- Relativo, - Absoluto, -Indirecto

- Llamada a subrutinas:
- Usan la pila (STACK) para almacenar el retorno. - Relativo, - Absoluto, -Indirecto

40

Microcontrolador AT90S2313
- De regreso de subrutinas. - Saltos condicionales:

Juego de instrucciones: Instrucciones de bifurcacin

* Esquivar la siguiente instruccin:

41

Microcontrolador AT90S2313

Juego de instrucciones: Instrucciones de bifurcacin * Saltar grupo de instrucciones:


- Entre -64 instrucciones y 63 instrucciones - Destinos ms lejanos requieren de instrucciones de salto incondicionales situadas en destinos previos. - Consultan el estado de algn bit del SREG o combinacin de estos. - Instrucciones BRBS y BRBC:

42

Microcontrolador AT90S2313

Juego de instrucciones: Instrucciones de bifurcacin


- Instrucciones BREQ y BRNE: - Instrucciones BRCS y BRCC: - Instrucciones BRVS y BRVC:

43

Microcontrolador AT90S2313
- Instrucciones BRTS y BRTC: - Instrucciones BRHS y BRHC: - Instrucciones BRIE y BRID:

Juego de instrucciones: Instrucciones de bifurcacin

44

Microcontrolador AT90S2313
- Instrucciones BRPL y BRMI: -Instruccin BRSH
- Salta si igual o mayor - Sin signo

Juego de instrucciones: Instrucciones de bifurcacin

- Instruccin BRLO
- Salta si menor - Sin signo

45

Microcontrolador AT90S2313
- Instruccin BRGE
- Salta si igual o mayor - Con signo

Juego de instrucciones: Instrucciones de bifurcacin

- Instruccin BRLT
- Salta si menor - Con signo

46

Microcontrolador AT90S2313

Juego de instrucciones: Instrucciones de bifurcacin


Resumen de las instrucciones de saltos condicionales y sus dependencias de los banderines del SREG

47

Microcontrolador AT90S2313
- Desplazamiento. - Desplazamiento aritmtico
Rn
7

Juego de instrucciones: Desplazamiento y rotacin

0 C

Rn Rn

C 0

48

Microcontrolador AT90S2313
- Rotaciones.
C Rn Rn

Juego de instrucciones: Desplazamiento y rotacin

- Instrucciones
49

Microcontrolador AT90S2313
- De puertos: SBI, CBI - De registro de estado SREG

Juego de instrucciones: De manejo de bits

50

Microcontrolador AT90S2313
- NOP - WDR - SLEEP

Juego de instrucciones: De control

51

Microcontrolador AT90S2313
Directivas de ensamblador Son comandos al programa que genera el cdigo 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

Microcontrolador AT90S2313
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 slo en DSEG Sintaxis: label: .BYTE expresion Var1: .BYTE 1 Tabla: .BYTE 10

53

Microcontrolador AT90S2313
Directivas de ensamblador - DEF Asigna un nombre simblico a un registro.
Sintaxis: .DEF symbol=register .DEF temp = r16 .DEF ior= r0

- EQU Smbolo igual a expresin


Sintaxis: .EQU label = expression .EQU puertas = 2

54

Microcontrolador AT90S2313
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 identificacin de los errores en el programa escrito Genera ficheros con las extensiones (.lst) que mezcla nuestro programa con el cdigo objeto, (.obj) que contiene slo el cdigo objeto y (.hex) o formato Intel Hex que se usar, en ltimo lugar, por el AVR ISP para la programacin fsica del microcontrolador.

58

AVR ISP

59

AVR ISP (cont.)


Software de programacin Requiere el STK200 conectado al puerto paralelo a travs 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 Comprobacin de Cheksum Programacin fusibles Otros

61

AVR STUDIO

62

AVR STUDIO (cont.)


En las primeras versiones slo contena un simulador. A partir de la versin 3, es un entorno integrado que permite la edicin de programas, generacin de cdigo mquina, programacin y simulacin. La programacin se realiza a travs del puerto serie hacia el STK500 Permite incorporar en la simulacin cdigo escrito en lenguaje C.
63

STK-200

Placa STK200

64

STK-200 (cont.)
Establece un entorno de funcionamiento para el microcontrolador permitiendo la realizacin de ensayos bsicos. Zcalos de diferentes tamaos para los distintos modelos de la familia AT90 Oscilador de cristal Drivers RS232 con conector DB9 Conector para la programacin del microcontrolador a travs del puerto paralelo
65

STK-200 (cont.)
Conjunto de diodos LEDS Conjunto de pulsadores mecnicos Conectores de expansin Regulador de alimentacin Zcalo para LCD.

66

STK-500
Placa STK500

67

STK-500 (cont.)
Se comunica con el PC a travs del puerto serie Software actualizable Frecuencia de reloj programable desde el PC (AvrStudio) Voltaje de alimentacin de los C regulable desde PC. Conjunto de leds Conjunto de pulsadores Zcalos de diferentes tamaos Conectores de expansin. 68

Vous aimerez peut-être aussi