Está en la página 1de 21

Introducción a Sistemas Embebidos

EL6004

Manejo de datos
Microcontroladores

Prof. Jimmy Tarrillo


2020-1
1
Objetivos del Curso
• Comprender el set de instrucciones de un
microcontorlador
• Comprender el camino de datos de un
microcontorlador
• Utilizar instrucciones de transferencia de
datos y operaciones aritmético/lógicas en
programas básicos

2
Set de instrucciones
• Cada uC/uP posee un set de instrucciones
basado en su arquitectura
• Se requieren compiladores cruzados para
generar los ejecutables
• Instrucciones más complejas pueden
realizar programas más complejos de
manera eficiente

3
Set de instrucciones
Suma: ADD, ADC, ADIW, INC
Aritmético

Resta: SUB, SUBI, SBC, SBCI, SBIW, DEC


/ lógicas

Multi: MUL, MULS, MULSU, FMUL, FMULS, FMUSU


Op. lógicas: AND, ANDI, OR, ORI, EOR, COM, NEG,
Otros: SBR, CBR, TST, CLR, SER

Condicionales: CPSE, SBRC, SBRS, SBIC, SBIS, BRBS, BRBC, BREQ, BRNE,
BRCS, BRCC, BRSH, BRLO, BRMI, BRPL, BRGE, BRLT, BRHS, BRHC, BRTS,
Saltos

BRTC, BRVS, BRVC, BRIE, BRID


Incondicionales : RJMP, IJMP, JMP, RCALL, ICALL, EICALL, CALL, RET, RETI,
Otros: CP, CPC, CPI

Registros: MOV, MOVW


Lectura : LDI, LDS, LD, LDD, IN, LPM, ELPM
Datos

Escritura: STS, ST, STD, OUT


Pila: PUSH, POP
Desplazamiento: LSL, LSR, ROL, ROR, ASR, SWAP
Bit a
Bit

Lectura : BSET, BCLR, SBI, CBI, BST, BLD, SEC, CLC, SEN, CLN, SEN, SEZ,
CLZ, SEI, CLI, SES, CLS, SEV, CLV, SET, CLT, SEH, CLH
Otros NOP, SLEEP, WDR 4
Tipos de direccioamiento
1. Directo con registro (un solo registro)
2. Directo con registro(dos registros)
3. Directo con I/O
4. Directo con datos
5. Indirecto con datos con desplazamiento
6. Indirecto con datos
7. Indirecto con datos con pre-decremento
8. Indirecto con datos con pos-incremento
9. A memoria de programa usando LPM, ELPM, SPM
10.A memoria de programa con pos-incremento usando
LPM+, ELPM+
11.A memoria de programa directo (JMP, CALL)
12.A memoria de programa indirecto (IJMP, ICALL)
13.A memoria de programa relativo
5 (RJMP, RCAL)
Transferencia de datos

6
Transferencia de datos
Instrucciones de carga de datos
• Loads one byte indirect from the data space to a register.
• For parts with SRAM, the data space consists of the Register
File, I/O memory, and internal SRAM (and external SRAM if
applicable).
• For parts without SRAM, the data space consists of the
Register File only.

7
Transferencia de datos

8
Transferencia de datos

9
Transferencia de datos

10
Transferencia de datos

11
Transferencia de datos

12
Transferencia de datos

13
Transferencia de datos

14
Transferencia de datos

15
Transferencia de datos

16
Ejercicio
• Implemente un programa que envíe por el
puerto D el resultado de la operación AND
de los estados de los puertos B y C

17
Ejercicio
• Implemente un programa que envíe por el
puerto B el resultado de la operación OR
entre los nibbles más y menos
significativos del puerto D

18
Ejercicio
• Implemente un programa que envíe por el puerto
D los códigos ASCII de 0 al 9 almacenados en
memoria RAM. Cargue previamente dichos
códigos en la memoria RAM desde una tabla en
memoria FLASH. Realice el diagrama de flujo.
– Defina los valores ASCII en memoria FLASH
– Reserve 10 posiciones de memoria de la memoria
RAM para almacenar la tabla
– Use directivas CSEG, DSEG, ORG, BYTE, DB

19
Analice
• ¿Es posible leer de un puerto definido como
salida? ¿Es posible escribir de un puerto definido
como entrada?
• ¿Es posible escribir datos en un puerto usando la
instrucción ST? ¿leerlo usando LD?
• ¿En qué casos se usa LD/ST y LDS/STS?
• ¿Cómo puede modificarse solo algunos bits de un
puerto?
• ¿Qué hacer con los pines que los requisitos no lo
definen como entrada o salida?
20
Referencias
1. AVR Instruction Set Manual
2. ATMEL 8-BIT MICROCONTROLLER WITH 4/8/16/32KBYTES IN-SYSTEM
PROGRAMMABLE FLASH DATASHE
3. Beginners Introduction to the Assembly Language of ATMELAVR-
Microprocessors

21

También podría gustarte