Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAPÍTULO 2.
MICROCONTROLADOR
1
07/06/2022
Objetivos:
2
07/06/2022
07/06/2022 3
3
07/06/2022
Microcontrolador
Es un circuito digital secuencial y programable, con
capacidad de procesamiento limitada. Contiene en
un solo chip o encapsulado, el procesador,
memoria de programa y datos, buses de
comunicación y recursos periféricos para conectarle
dispositivos de entrada y salida, que pueden ser
analógicas y digitales. Se presenta generalmente en
empaques robustos y de bajo costo para facilitar su
uso en el desarrollo de múltiples actividades
comerciales e industriales diversas.
07/06/2022 4
4
07/06/2022
Estructura Interna
07/06/2022 5
5
07/06/2022
Microprocesador / Microcontrolador
07/06/2022 6
6
07/06/2022
07/06/2022 7
7
07/06/2022
07/06/2022 8
8
07/06/2022
Microchip
Manual
Libro de instrucciones
07/06/2022 9
9
07/06/2022
Diagrama de Bloques
Microcontrolador
07/06/2022 10
10
07/06/2022
07/06/2022 11
11
07/06/2022
Diagrama de Bloques
CPU
07/06/2022 12
12
07/06/2022
Garantiza la correcta
ejecución del programa.
Puede acceder a las
memorias, realizar
cálculos, controlar
periféricos y manejar
interrupciones.
07/06/2022 13
13
07/06/2022
07/06/2022 14
14
07/06/2022
Registros X, Y, Z
Los registros R26..R31 tienen algunas funciones
añadidas a su uso de propósito general. Estos registros
son punteros de 16 bits de dirección para el
direccionamiento indirecto del espacio de datos.
15
07/06/2022
Memorias
La arquitectura AVR tiene dos espacios de memoria principales,
la memoria de datos y la memoria de programa. Además, el
ATmega164PA cuenta con una memoria EEPROM para
almacenamiento de datos. Los tres espacios de memoria son
lineales y regulares.
07/06/2022 16
16
07/06/2022
07/06/2022 17
17
07/06/2022
SRAM
07/06/2022 18
18
07/06/2022
07/06/2022 19
19
07/06/2022
07/06/2022 20
20
07/06/2022
07/06/2022 21
21
07/06/2022
07/06/2022 22
22
07/06/2022
07/06/2022 23
23
07/06/2022
07/06/2022 24
24
07/06/2022
07/06/2022 25
25
07/06/2022
Lenguajes de Programación
07/06/2022 26
26
07/06/2022
Compilador
07/06/2022 27
27
07/06/2022
Herramienta de desarrollo
https://www.microchip.com/en-us/tools-
resources/develop/microchip-studio
07/06/2022 28
28
07/06/2022
07/06/2022 29
29
07/06/2022
07/06/2022 30
30
07/06/2022
Detalles: http://ww1.microchip.com/downloads/en/devicedoc/40001917a.pdf
07/06/2022 31
31
07/06/2022
07/06/2022 32
32
07/06/2022
07/06/2022 33
33
07/06/2022
Set de Instrucciones
07/06/2022 34
34
07/06/2022
CAPÍTULO 2.
MICROCONTROLADOR
07/06/2022 35
35
07/06/2022
Objetivos:
07/06/2022 36
36
07/06/2022
Tamaño de memoria
Atmega 16KB 8K x 16
Líneas de direccionamiento
n= log 8k/ log2
37
07/06/2022
Memoria SRAM
07/06/2022 38
38
07/06/2022
Tamaño de instrucción
07/06/2022 39
39
07/06/2022
Tamaño de instrucción
07/06/2022 40
40
07/06/2022
Tamaño de instrucción
07/06/2022 41
41
07/06/2022
Tamaño de instrucción
07/06/2022 42
42
07/06/2022
E 1 0 4
43
07/06/2022
0 F 0 1
44
07/06/2022
Set de Instrucciones
A. Movimiento de datos
Permite mover información de un registro a
otro.
45
07/06/2022
MOV Rd,Rr
El valor de Rr y se copia en Rd.
Palabras: 1
Ciclos: 1
46
07/06/2022
MOVW Rd,Rr
Copia un par de registros consecutivos
(palabra).
Rd+1:Rd ← Rr+1:Rr
Palabras: 1
Ciclos: 1
47
07/06/2022
LDI Rd,K
Carga inmediata de una constante K (0-255)
a un registro Rd.
Palabras: 1
Ciclos: 1
48
07/06/2022
LDS Rd,k
Carga a Rd un dato desde espacio de datos
por medio de la dirección k.
Palabras: 2
Ciclos: 2
49
07/06/2022
LD Rd,X
Carga indirecta al registro D del valor apuntado por X.
Palabras: 1
Ciclos: 1
50
07/06/2022
LD Rd,X+
Carga indirecta al registro D del valor apuntado por X. Después, el
puntero se incrementa en uno
Palabras: 1
Ciclos: 2
Ejemplo: LD R10,X+
Registro Dato Puntero 0x02C2 Registro Dato
R10 0x01 R10 0x5B
R26 0xC2 R26 0xC3
R27 0x02 R27 0x02
51
07/06/2022
LD Rd,-X
Primero decremento el puntero en uno y luego carga
indirecta al registro D del valor apuntado por X.
Palabras: 1
Ciclos: 2
Ejemplo: LD R10,-X
Registro Dato Puntero 0x02C1 Registro Dato
R10 0x01 R10 0x12
R26 0xC2 R26 0xC1
R27 0x02 R27 0x02
52
07/06/2022
Palabras: 1
Ciclos: 3
53
07/06/2022
STS k,Rr
Almacenamiento directo al espacio de datos. Guarda en la
dirección k, el dato de Rr.
Palabras: 2
Ciclos: 2
54
07/06/2022
ST X, Rr
Almacenamiento indirecto al espacio de datos. Guarda en
la dirección apuntada por X, el dato de Rr.
Palabras: 1
Ciclos: 2
Ejemplo: ST X,R17
Registro Dato Puntero 0x020E Registro Dato
R17 0xA2 R17 0xA2
R26 0x0E R26 0x0E
R27 0x02 R27 0x02
55
07/06/2022
STS – ST (extensión)
56
07/06/2022
LPM
Permite mover información de la flash a un registro. Solo
usa el puntero Z.
Palabras: 1
Ciclos: 3
8bits
LSB/ MSB
57
07/06/2022
Ejemplo: LPM
Z 0x202B
0010 0000 0010 1011 MSB
Dirección: 0x1015
Registro Dato
R00 0x13
R30 0x2B
R31 0x20
58
07/06/2022
Z 0x202B
0010 0000 0010 1011 MSB
Dirección: 0x1015
Registro Dato
R16 0x13
R30 0x2B
R31 0x20
59
07/06/2022
Z 0x202B
0010 0000 0010 1011 MSB
Dirección: 0x1015
Registro Dato
R16 0x13
R30 0x2C
R31 0x20
60
07/06/2022
Ejemplo LPM
Se desea extraer el 0xAC
Dirección 0x0F46
MSB 1
Z 0x1E8D
LDI ZH,0x1E
LDI ZL,0x8D
LPM
R8 0xAC
61
07/06/2022
Z0x202F
62
07/06/2022
SPM
Permite mover información de un registro a
la flash (usa el puntero Z).
Palabras: 1
Registro Dato
Dirección MSB LSB
R00 0xA2
0x102B 0x13 0x01
R01 0x10
0x102C 0x5B 0x02
R30 0x2B
R31 0x10
Registro Dato
R00 0xA2
R01 0x10
R30 0x2B
R31 0x20
63
07/06/2022
In – Out
Permite la transferencia de datos entre los
registros I/O y los registros de uso general.
IN R3,0x01
R3 0x94
OUT 0x3C,R15
0x3C 0x04
64
07/06/2022
PUSH - POP
Permite tomar o poner datos en el stack
(subrutinas).
65