Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EL6004
Manejo de datos
Microcontroladores
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
Condicionales: CPSE, SBRC, SBRS, SBIC, SBIS, BRBS, BRBC, BREQ, BRNE,
BRCS, BRCC, BRSH, BRLO, BRMI, BRPL, BRGE, BRLT, BRHS, BRHC, BRTS,
Saltos
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