Tema 4: Microcontrolador AT90S2313 - Departamento de ... · Microcontrolador AT90S2313 Descripción...

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

Transcript of Tema 4: Microcontrolador AT90S2313 - Departamento de ... · Microcontrolador AT90S2313 Descripción...

Tema 4: MicrocontroladorTema 4: Microcontrolador AT90S2313 AT90S2313

• - Descripción externa- Descripción externa

• - Arquitectura interna- Arquitectura interna

• - Organización de memoria- Organización de memoria

• - Registros de propósito general- Registros de propósito general

• - Registros de entrada/salida (SREG,SPL)- Registros de entrada/salida (SREG,SPL)

• - Modos de direccionamiento- Modos de direccionamiento

• - Juego de instrucciones- Juego de instrucciones

• - Directivas de ensamblador y entorno de program.- Directivas de ensamblador y entorno de program.1

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313PresentaciónPresentación

• Arquitectura Risc. 8 bitsArquitectura Risc. 8 bits

• Frecuencia de reloj de hasta 10 Mhz (Xtal1,Xtal2)Frecuencia de reloj de hasta 10 Mhz (Xtal1,Xtal2)

• Hasta 10 MipsHasta 10 Mips

• 2 Kb Flash, 128 b SRAM, 2 Kb Flash, 128 b SRAM, 128 b EEprom128 b EEprom

• Diversos periféricosDiversos periféricos

• Encapsulado 20 pinesEncapsulado 20 pines

• Versiones bajo consumoVersiones bajo consumo

2

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Descripción externaDescripción externa

• VCC,GND : Terminales de alimentaciónVCC,GND : Terminales de alimentación

• #RESET: Reinicia ejecución de instrucciones#RESET: Reinicia ejecución de instrucciones

• XTAL1,XTAL2 : Entradas de relojXTAL1,XTAL2 : Entradas de reloj

• PD6-0PD6-0

• PB7-0PB7-0

• Pines de puerto con funciones Pines de puerto con funciones alternativasalternativas

3

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Descripción internaDescripción interna

4

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Mapa de memoria (programa y datos)Mapa de memoria (programa y datos)

5

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Mapa de memoria de datos (detalle)Mapa de memoria de datos (detalle)

6

• Son 32 registrosSon 32 registros

• Las instrucciones con modo inmediato sólo Las instrucciones con modo inmediato sólo usan los 16 registros superiores. Registro X, Y, usan los 16 registros superiores. Registro X, Y, Z para modos indirectosZ para modos indirectos

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de propósito generalRegistros de propósito general

7

• Registros X, Y, Z para modos indirectos Registros X, Y, Z para modos indirectos

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de propósito general (cont.)Registros de propósito general (cont.)

8

• Permiten el acceso y control de los periféricos y Permiten el acceso y control de los periféricos y de los recursos del microcontrolador.de los recursos del microcontrolador.

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de entrada/salida Registros de entrada/salida

9

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de entrada/salida (SREG)Registros de entrada/salida (SREG)

• Registro de estado.Registro de estado.

– El banderín I (interrupción) habilita o inhabilita la El banderín I (interrupción) habilita o inhabilita la generación de interrupciones.generación de interrupciones.

– El banderín T (bit de propósito general)El banderín T (bit de propósito general)

– Los bits (flags o banderines) C, Z, N, V, S, H Los bits (flags o banderines) C, Z, N, V, S, H cambian dependiendo del resultado de la ejecución cambian dependiendo del resultado de la ejecución de diferentes instrucciones (aritméticas, lógicas, de diferentes instrucciones (aritméticas, lógicas, rotación/desplaz. y de modificación de flags).rotación/desplaz. y de modificación de flags).

10

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de entrada/salida (SREG) cont.Registros de entrada/salida (SREG) cont.

• Bit C (Acarreo)Bit C (Acarreo)

– - Bit de acarreo de la etapa 7 de la ALU.- Bit de acarreo de la etapa 7 de la ALU.

• Bit Z (Zero)Bit Z (Zero)

– - Se pone a 1 para resultado cero, 0 en otro caso.- Se pone a 1 para resultado cero, 0 en otro caso.

• Bit N (Negative)Bit N (Negative)

– - Bit 7 del resultado. - Bit 7 del resultado.

• Bit V (Overflow en Ca2) A,B operand. y R resultadoBit 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 suma

– - V = A7 B7' R7' + A7' B7 R7 en resta- V = A7 B7' R7' + A7' B7 R7 en resta 11

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de entrada/salida (SREG) cont.Registros de entrada/salida (SREG) cont.

• Bit H (HalfCarry)Bit H (HalfCarry)

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

• Bit S (Sign en Ca2)Bit S (Sign en Ca2)

– - S = N - S = N VV

– - Es el signo correcto del resultados en operaciones - Es el signo correcto del resultados en operaciones en Ca2.en Ca2.

12

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Registros de entrada/salida (SPL)Registros de entrada/salida (SPL)

• Registro PUNTERO de PILA.Registro PUNTERO de PILA.

– Apunta al área de pila que defina el usuario.Apunta al área de pila que defina el usuario.

– El SP se decrementa al meter en pila y se El SP se decrementa al meter en pila y se incrementa al sacar.incrementa al sacar.

– Si el programador usa subrutinas o interrupciones, Si el programador usa subrutinas o interrupciones, es necesario inicializar el puntero de pila. En estos es necesario inicializar el puntero de pila. En estos casos el SP se incrementa o decrementa casos el SP se incrementa o decrementa automáticamente en dos unidades. automáticamente en dos unidades.

13

• DirectoDirecto

• IndirectoIndirecto

• Indirecto con predecrementoIndirecto con predecremento

• Indirecto con postincrementoIndirecto con postincremento

• Indirecto con desplazamientoIndirecto con desplazamiento

• Constantes del programaConstantes del programa

• InmediatoInmediato

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Modos de direccionamiento para datosModos de direccionamiento para datos

14

• La instrucción define el registro cuyo contenido La instrucción define el registro cuyo contenido se verá afectado por la propia instrucción.se verá afectado por la propia instrucción.

• Ejemplo: COM R4Ejemplo: COM R4

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento registro directoDireccionamiento registro directo

15

• La instrucción define el registro fuente (Rr) y La instrucción define el registro fuente (Rr) y destino (Rd).destino (Rd).

• Ejemplo: MOV R2, R4Ejemplo: MOV R2, R4

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento registro directo (2 reg.)Direccionamiento registro directo (2 reg.)

16

• La instrucción define el registro de E/S (P) y el La instrucción define el registro de E/S (P) y el registro, destino o fuente, n.registro, destino o fuente, n.

• Ejemplo: IN R14,34 ; OUT 34,R14Ejemplo: IN R14,34 ; OUT 34,R14

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento registro e/s directo Direccionamiento registro e/s directo

17

• La instrucción contiene la dirección de memoria La instrucción contiene la dirección de memoria además de un campo (Rd/Rr) que contiene el además de un campo (Rd/Rr) que contiene el registro destino o fuente.registro destino o fuente.

• Ejemplo: LDS R23,$D0 ;STS $12,R1Ejemplo: LDS R23,$D0 ;STS $12,R1

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Modo de direccionamiento directo Modo de direccionamiento directo

18

• La instrucción referencia al registro X,Y o Z que La instrucción referencia al registro X,Y o Z que contiene la dirección del operando..contiene la dirección del operando..

• Ejemplo: LD R1,X ;ST Z,R10Ejemplo: LD R1,X ;ST Z,R10

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Modo de direccionamiento indirecto Modo de direccionamiento indirecto

19

• La instrucción referencia al registro X,Y o Z que La instrucción referencia al registro X,Y o Z que contiene la dirección del operando, que contiene la dirección del operando, que después se incrementa en una unidad.después se incrementa en una unidad.

• Ejemplo: LD R0,X+ ;ST Z+,R1Ejemplo: LD R0,X+ ;ST Z+,R1

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento indirecto postincremento Direccionamiento indirecto postincremento

20

• La instrucción referencia al registro X,Y o Z La instrucción referencia al registro X,Y o Z que, primero se decrementa en una unidad, y que, primero se decrementa en una unidad, y después, accede al operando.después, accede al operando.

• Ejemplo: LD R15,-X ;ST -Y,R1Ejemplo: LD R15,-X ;ST -Y,R1

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento indirecto predecremento Direccionamiento indirecto predecremento

21

• La dirección del dato se obtiene mediante la La dirección del dato se obtiene mediante la suma del contenido del registro Y o Z y una suma del contenido del registro Y o Z y una constante q (0<q<64).constante q (0<q<64).

• Ejemplos: LDD R1,Y+10 ;STD Z+1,R1Ejemplos: LDD R1,Y+10 ;STD Z+1,R1

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento indirecto con desplazamto.Direccionamiento indirecto con desplazamto.

22

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

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento constantes de memoriaDireccionamiento constantes de memoria

23

• El dato está está codificado en la propia El dato está está codificado en la propia instruccióninstrucción

• Ejemplos: LDI r16,255, ANDI r25,0x10Ejemplos: LDI r16,255, ANDI r25,0x10

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento inmediatoDireccionamiento inmediato

24

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Modos de direccionamiento para programasModos de direccionamiento para programas

• Son utilizados por las instrucciones de salto y Son utilizados por las instrucciones de salto y llamada a subrutinas (procedimientos)llamada a subrutinas (procedimientos)

– Modo de direccionamiento de programa Modo de direccionamiento de programa indirectoindirecto

– Modo de direccionamiento de programa relativoModo de direccionamiento de programa relativo

25

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento de programa indirectoDireccionamiento de programa indirecto

• La ejecución del programa salta a la posición La ejecución del programa salta a la posición de memoria indicada por el registro Z.de memoria indicada por el registro Z.

• Ejemplos: IJMP, ICALLEjemplos: IJMP, ICALL

26

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Direccionamiento de programa relativoDireccionamiento de programa relativo

• La instrucción contiene un desplazamiento K que La instrucción contiene un desplazamiento K que se suma al contenido del PC para encontrar la se suma al contenido del PC para encontrar la siguiente instrucción a ejecutar. (-2048 <K< siguiente instrucción a ejecutar. (-2048 <K< 2047).2047).

• Ejemplos: RJMP, RCALLEjemplos: RJMP, RCALL

27

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: representaciónJuego de instrucciones: representación

• Instrucciones sin operandosInstrucciones sin operandos

– MnemónicoMnemónico

• Instrucciones con un operandoInstrucciones con un operando

– Mnemónico opfuente/destinoMnemónico opfuente/destino

• Instrucciones con dos operandosInstrucciones con dos operandos

– Mnemónico opdestino,opfuenteMnemónico opdestino,opfuente

• Representación de las instrucciones:Representación de las instrucciones:

• Mnemónico Operandos Descripción Rango de valores

posibles para losoperandos

Descripciónsimbólica

Flags del SREG

28

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instruccionesJuego de instrucciones

• - Instrucciones de transferencia de datos- Instrucciones de transferencia de datos

• - Instrucciones aritméticas y lógicas- Instrucciones aritméticas y lógicas

• - Instrucciones de bifurcación- Instrucciones de bifurcación

• - Instrucciones de desplazamiento y rotación- Instrucciones de desplazamiento y rotación

• - Instrucciones de bit- Instrucciones de bit

• - Instrucciones de control - Instrucciones de control

29

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Transferencia de datosJuego de instrucciones: Transferencia de datos

• - MOV- MOV

• - LDI - LDI

• - LDS - LDS

• - STS - STS

30

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Transferencia de datosJuego de instrucciones: Transferencia de datos

• - LD - LD

• - ST - ST

31

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Transferencia de datosJuego de instrucciones: Transferencia de datos

• - LDD - LDD

• - STD - STD

• - IN- IN

• - OUT- OUT

• 32

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Transferencia de datosJuego de instrucciones: Transferencia de datos

SRAM

32 registros

64 registros E/S

MOV R1,R2$00

$DF

IN R1,$10 OUT 12,R3

ST Z,R1STD Y+1,R30STS $DE,R4

LD R1,ZLDD R30,Y+2LDS R23,$10

33

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Transferencia de datosJuego de instrucciones: Transferencia de datos

• - PUSH - PUSH

• - POP- POP

• - LPM- LPM

• -SWAP-SWAP

34

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Aritméticas y lógicasJuego de instrucciones: Aritméticas y lógicas

• - Los operandos sólo pueden ser registros o - Los operandos sólo pueden ser registros o constantes.constantes.

• - Suma aritmética- Suma aritmética

– - Sin acarreo- Sin acarreo

– - Con acarreo- Con acarreo

– - Suma con registros 16 bits y dato inmediato- Suma con registros 16 bits y dato inmediato

35

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Aritméticas y lógicasJuego de instrucciones: Aritméticas y lógicas

• - Resta aritmética- Resta aritmética

– - Sin acarreo- Sin acarreo

– - Con dato inmediato- Con dato inmediato

– - Con acarreo- Con acarreo

– - Con dato inmediato y acarreo- Con dato inmediato y acarreo

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

36

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Aritméticas y lógicasJuego de instrucciones: Aritméticas y lógicas

• - Comparación- Comparación

– - 2 registros sin acarreo- 2 registros sin acarreo

– - 1 registro con dato inmediato- 1 registro con dato inmediato

– - 2 registros con acarreo- 2 registros con acarreo

• - INCrementa y DECrementa- INCrementa y DECrementa

• 37

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Aritméticas y lógicasJuego de instrucciones: Aritméticas y lógicas

• - CLR (poner a cero)- CLR (poner a cero)

• - SER (poner a $FF)- SER (poner a $FF)

• - NEG (Ca2)- NEG (Ca2)

38

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Aritméticas y lógicasJuego de instrucciones: Aritméticas y lógicas

• - AND- AND

• - OR- OR

• - EOR- EOR

• - COM- COM

• 39

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

• - Saltos incondicionales:- Saltos incondicionales:

– - Relativo, - Absoluto, -Indirecto - Relativo, - Absoluto, -Indirecto

• - Llamada a subrutinas:- Llamada a subrutinas:

– - Usan la pila (STACK) para almacenar el retorno.- Usan la pila (STACK) para almacenar el retorno.

– - Relativo, - Absoluto, -Indirecto - Relativo, - Absoluto, -Indirecto

40

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

• - De regreso de subrutinas. - De regreso de subrutinas.

• - Saltos condicionales:- Saltos condicionales:

– * Esquivar la siguiente instrucción:* Esquivar la siguiente instrucción:

41

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

• * Saltar grupo de instrucciones:* Saltar grupo de instrucciones:

– - Entre -64 instrucciones y 63 instrucciones- Entre -64 instrucciones y 63 instrucciones

– - Destinos más lejanos requieren de instrucciones - Destinos más lejanos requieren de instrucciones de salto incondicionales situadas en destinos de salto incondicionales situadas en destinos previos.previos.

– - Consultan el estado de algún bit del SREG o - Consultan el estado de algún bit del SREG o combinación de estos.combinación de estos.

– - Instrucciones BRBS y BRBC:- Instrucciones BRBS y BRBC:

42

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

– - Instrucciones BREQ y BRNE:- Instrucciones BREQ y BRNE:

– - Instrucciones BRCS y BRCC:- Instrucciones BRCS y BRCC:

– - Instrucciones BRVS y BRVC:- Instrucciones BRVS y BRVC:

43

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

– - Instrucciones BRTS y BRTC:- Instrucciones BRTS y BRTC:

– - Instrucciones BRHS y BRHC:- Instrucciones BRHS y BRHC:

– - Instrucciones BRIE y BRID:- Instrucciones BRIE y BRID:

44

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

– - Instrucciones BRPL y BRMI: - Instrucciones BRPL y BRMI:

– -Instrucción BRSH -Instrucción BRSH – - Salta si igual o mayor- Salta si igual o mayor– - Sin signo - Sin signo

– - Instrucción BRLO- Instrucción BRLO– - Salta si menor- Salta si menor– - Sin signo- Sin signo

45

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

– - Instrucción BRGE - Instrucción BRGE – - Salta si igual o mayor- Salta si igual o mayor– - Con signo - Con signo

– - Instrucción BRLT- Instrucción BRLT– - Salta si menor- Salta si menor– - Con signo- Con signo–

•46

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Instrucciones de bifurcaciónJuego de instrucciones: Instrucciones de bifurcación

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

47

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Desplazamiento y rotaciónJuego de instrucciones: Desplazamiento y rotación

• - Desplazamiento.- Desplazamiento.

• - Desplazamiento aritmético- Desplazamiento aritmético

Rn C0

RnC 0

Rn C7

48

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: Desplazamiento y rotaciónJuego de instrucciones: Desplazamiento y rotación

• - Rotaciones.- Rotaciones.

• - Instrucciones- Instrucciones

Rn C

RnC

49

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: De manejo de bitsJuego de instrucciones: De manejo de bits

• - De puertos: SBI, CBI- De puertos: SBI, CBI

• - De registro de estado SREG- De registro de estado SREG

50

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Juego de instrucciones: De controlJuego de instrucciones: De control

• - NOP- NOP

• - WDR- WDR

• - SLEEP- SLEEP

51

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Directivas de ensambladorDirectivas de ensamblador

• Son comandos al programa que genera el código Son comandos al programa que genera el código objeto y que se encuentran mezclados en el objeto y que se encuentran mezclados en el fichero fuente con las instrucciones del micro.fichero fuente con las instrucciones del micro.

• - CSEG-Code Segment- CSEG-Code Segment• Sintaxis: .CSEGSintaxis: .CSEG

• - DSEG-Date Segment- DSEG-Date Segment• Sintaxis: .DSEGSintaxis: .DSEG

• - DB-Define Byte en Program Memory- DB-Define Byte en Program Memory• Sintaxis: .DB expressionlist Sintaxis: .DB expressionlist • Const: .DBConst: .DB 0,255, 0b01010101,-128,0xaa,$45 0,255, 0b01010101,-128,0xaa,$45 52

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Directivas de ensambladorDirectivas de ensamblador

• - DW – Define Word en Program Memory- DW – Define Word en Program Memory• Sintaxis: .DW expressionlistSintaxis: .DW expressionlist

• Const: .DW 0,0xFFFF, -32768,65535, Const: .DW 0,0xFFFF, -32768,65535, 0b11111111000000000b1111111100000000

• - BYTE – Reserva bytes a una variable- BYTE – Reserva bytes a una variable• Reserva en SRAM. Posible sólo en DSEGReserva en SRAM. Posible sólo en DSEG• Sintaxis: label: .BYTE expresionSintaxis: label: .BYTE expresion

• Var1:Var1: .BYTE .BYTE 1 1

• Tabla: .BYTETabla: .BYTE 10 1053

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Directivas de ensambladorDirectivas de ensamblador

• - DEF – Asigna un nombre simbólico a un registro.- DEF – Asigna un nombre simbólico a un registro.• Sintaxis: .DEF symbol=registerSintaxis: .DEF symbol=register

• .DEF temp = r16.DEF temp = r16

• .DEF.DEF ior= r0 ior= r0

• - EQU – Símbolo igual a expresión- EQU – Símbolo igual a expresión• Sintaxis: .EQU label = expressionSintaxis: .EQU label = expression

• .EQU.EQU puertas = 2 puertas = 2

••

54

MicrocontroladorMicrocontrolador AT90S2313 AT90S2313Directivas de ensambladorDirectivas de ensamblador

• - ORG – Establece el origen del programa- ORG – Establece el origen del programa• Sintaxis: .ORG expressionSintaxis: .ORG expression

• .DSEG.DSEG

• .ORG.ORG 0X37 0X37

• Variable: .BYTE 1Variable: .BYTE 1

• .CSEG.CSEG

• .ORG.ORG 0x10 0x10

• MovMov r0,r1r0,r1

55

Herramientas de desarrollo del ATMEL Herramientas de desarrollo del ATMEL AT90S2313AT90S2313

• WavrasmWavrasm

• AVR ISPAVR ISP

• AVR-StudioAVR-Studio

• STK-200STK-200

• STK-500STK-500

56

Herramientas de desarrollo del ATMEL Herramientas de desarrollo del ATMEL AT90S2313AT90S2313

• WavrasmWavrasm

• AVR ISPAVR ISP

• AVR-StudioAVR-Studio

• STK-200STK-200

• STK-500STK-500

57

Wavrasm (cont.)Wavrasm (cont.)

• Editor de texto para escribir programas en Editor de texto para escribir programas en lenguaje ensamblador ( .asm )lenguaje ensamblador ( .asm )

• Ensamblador integradoEnsamblador integrado– Permite el uso de directivasPermite el uso de directivas

– Permite la identificación de los errores en el Permite la identificación de los errores en el programa escritoprograma escrito

– Genera ficheros con las extensiones (.lst) que Genera ficheros con las extensiones (.lst) que mezcla nuestro programa con el código objeto, mezcla nuestro programa con el código objeto, (.obj) que contiene sólo el código objeto y (.hex) (.obj) que contiene sólo el código objeto y (.hex) o formato Intel Hex que se usará, en último o formato Intel Hex que se usará, en último lugar, por el AVR ISP para la programación física lugar, por el AVR ISP para la programación física del microcontrolador.del microcontrolador.

58

AVR ISPAVR ISP

59

AVR ISP (cont.)AVR ISP (cont.)

• Software de programaciónSoftware de programación

• Requiere el STK200 conectado al puerto Requiere el STK200 conectado al puerto paralelo a través de un conector especial o paralelo a través de un conector especial o “dongle”“dongle”

• Abre ficheros (.hex) generados por AVRASM y Abre ficheros (.hex) generados por AVRASM y programa su contenido en un modelo de programa su contenido en un modelo de microcontrolador previamente escogidomicrocontrolador previamente escogido

• PermitePermite– Borrar dispositivoBorrar dispositivo

– Programar EEPROM datosProgramar EEPROM datos

– Programar EEPROM de programaProgramar EEPROM de programa60

AVR ISP (cont.)AVR ISP (cont.)

– Verificar programa almacenadoVerificar programa almacenado

– Chequeo del dispositivoChequeo del dispositivo

– Comprobación de CheksumComprobación de Cheksum

– Programación fusiblesProgramación fusibles

– OtrosOtros

61

AVR STUDIOAVR STUDIO

62

AVR STUDIO (cont.)AVR STUDIO (cont.)

• En las primeras versiones sólo contenía un En las primeras versiones sólo contenía un simulador. simulador.

• A partir de la versión 3, es un entorno integrado que A partir de la versión 3, es un entorno integrado que permite la edición de programas, generación de permite la edición de programas, generación de código máquina, programación y simulación.código máquina, programación y simulación.

• La programación se realiza a través del puerto serie La programación se realiza a través del puerto serie hacia el STK500hacia el STK500

• Permite incorporar en la simulación código escrito en Permite incorporar en la simulación código escrito en lenguaje C.lenguaje C.

63

STK-200STK-200

• Placa STK200Placa STK200

64

STK-200 (cont.)STK-200 (cont.)

• Establece un entorno de funcionamiento para el Establece un entorno de funcionamiento para el microcontrolador permitiendo la realización de microcontrolador permitiendo la realización de ensayos básicos.ensayos básicos.

• Zócalos de diferentes tamaños para los distintos Zócalos de diferentes tamaños para los distintos modelos de la familia AT90modelos de la familia AT90

• Oscilador de cristal Oscilador de cristal

• Driver’s RS232 con conector DB9Driver’s RS232 con conector DB9

• Conector para la programación del microcontrolador Conector para la programación del microcontrolador a través del puerto paraleloa través del puerto paralelo

65

STK-200 (cont.)STK-200 (cont.)

• Conjunto de diodos LEDS Conjunto de diodos LEDS

• Conjunto de pulsadores mecánicosConjunto de pulsadores mecánicos

• Conectores de expansiónConectores de expansión

• Regulador de alimentaciónRegulador de alimentación

• Zócalo para LCD.Zócalo para LCD.

66

STK-500STK-500

• Placa STK500Placa STK500

67

STK-500 (cont.)STK-500 (cont.)

• Se comunica con el PC a través del puerto serieSe comunica con el PC a través del puerto serie

• Software actualizableSoftware actualizable

• Frecuencia de reloj programable desde el PC (AvrStudio)Frecuencia de reloj programable desde el PC (AvrStudio)

• Voltaje de alimentación de los Voltaje de alimentación de los μμC regulable desde PC.C regulable desde PC.

• Conjunto de ledsConjunto de leds

• Conjunto de pulsadoresConjunto de pulsadores

• Zócalos de diferentes tamañosZócalos de diferentes tamaños

• Conectores de expansión.Conectores de expansión.68