1123021 Microcontroladores 15-P

1123021 Microcontroladores 15-P
Eduardo Rodr´ıguez Mart´ınez
Departamento de Electr´onica
Divisi´
on de Ciencias B´asicas e Ingenier´ıa
Universidad Aut´
onoma Metropolitana
Unidad Azcapotzalco
Email: erm@correo.azc.uam.mx
Sitio Web: http://kali.azc.uam.mx/erm/
1123021 Microcontroladores
page 1
Presentaci´
on
⊲ Presentaci´on
Metas y Objetivos
Contenido
Bibliograf´ıa
Tema 1
Tema 2
Inicio del curso: 04 de Mayo del 2015
Fin del curso: 24 de Julio del 2015
Grupo: CEL01
Sal´
on de clase: F303
Dias y hora de clase: Lunes, y Miercoles de 11:30 a 13:00,
y Jueves de 13:00 a 16:00 hrs
Asesor´ıas: Lunes, Miercoles y Viernes de 10:00 a 11:30
1123021 Microcontroladores
page 2
Presentaci´
on
⊲ Presentaci´on
Metas y Objetivos
Contenido
Bibliograf´ıa
Tema 1
Tema 2
Inicio del curso: 04 de Mayo del 2015
Fin del curso: 24 de Julio del 2015
Grupo: CEL01
Sal´
on de clase: F303
Dias y hora de clase: Lunes, y Miercoles de 11:30 a 13:00,
y Jueves de 13:00 a 16:00 hrs
Asesor´ıas: Lunes, Miercoles y Viernes de 10:00 a 11:30
Evaluaci´
on: 30 % Examenes, 70 % Trabajo en laboratorio.
1123021 Microcontroladores
page 2
Presentaci´
on
⊲ Presentaci´on
Metas y Objetivos
Contenido
Bibliograf´ıa
Tema 1
Tema 2
Inicio del curso: 04 de Mayo del 2015
Fin del curso: 24 de Julio del 2015
Grupo: CEL01
Sal´
on de clase: F303
Dias y hora de clase: Lunes, y Miercoles de 11:30 a 13:00,
y Jueves de 13:00 a 16:00 hrs
Asesor´ıas: Lunes, Miercoles y Viernes de 10:00 a 11:30
Evaluaci´
on: 30 % Examenes, 70 % Trabajo en laboratorio.
•
•
1123021 Microcontroladores
Tres examenes parciales: 21 de Mayo, 18 de Junio, y 02
de Julio.
Evaluaci´on global: 20 de Julio (Exenci´on si el promedio de
los globales es aprobatorio).
page 2
Presentaci´
on
⊲ Presentaci´on
Metas y Objetivos
Contenido
Bibliograf´ıa
Tema 1
Tema 2
Inicio del curso: 04 de Mayo del 2015
Fin del curso: 24 de Julio del 2015
Grupo: CEL01
Sal´
on de clase: F303
Dias y hora de clase: Lunes, y Miercoles de 11:30 a 13:00,
y Jueves de 13:00 a 16:00 hrs
Asesor´ıas: Lunes, Miercoles y Viernes de 10:00 a 11:30
Evaluaci´
on: 30 % Examenes, 70 % Trabajo en laboratorio.
•
•
•
1123021 Microcontroladores
Tres examenes parciales: 21 de Mayo, 18 de Junio, y 02
de Julio.
Evaluaci´on global: 20 de Julio (Exenci´on si el promedio de
los globales es aprobatorio).
Ocho sesiones de laboratorio + Proyecto final
page 2
Metas y Objetivos
Presentaci´
on
Metas y
Objetivos
Contenido
Bibliograf´ıa
⊲
Tema 1
Tema 2
Diferenciar un microcontrolador de un microprocesador.
Identificar el campo de aplicaci´on de los microcontroladores.
Familiarizarse con el concepto de compilaci´
on cruzada.
Construir aplicaciones en lenguaje ensamblador y lenguaje C.
Dominar la configuraci´
on y el uso de los principales
perif´ericos en un microcontrolador.
Dise˜
nar aplicaciones que usen eficientemente los recursos de
un microcontrolador.
1123021 Microcontroladores
page 3
Contenido
Presentaci´
on
Metas y Objetivos
Contenido
Bibliograf´ıa
⊲
Tema 1
Tema 2
1. Introducci´on a los microcontroladores
2. Programaci´on en lenguaje ensamblador y de alto nivel
3. Introducci´on a perif´ericos
4. Uso de temporizadores
5. Uso de convertidores A/D y D/A
6. Manejo de interrupciones
7. Manejo del sistema de modulaci´
on por ancho
de pulso
8. Interfaz de comunicaci´on serie
1123021 Microcontroladores
3 hrs
3 hrs
6
3
3
3
3
hrs
hrs
hrs
hrs
hrs
3 hrs
page 4
Bibliograf´ıa
Presentaci´
on
Metas y Objetivos
Contenido
Bibliograf´ıa
⊲
Tema 1
Tema 2
John H. Davies, ”MSP430 Microcontroller basics”, Editorial
Newnes-Elsevier, 2008.
”MSP430x2xx Family: User’s Guide”, Ref. SLAU144J, Texas
Instruments, 2004.
1123021 Microcontroladores
page 5
Tema 1 - Introducci´
on a los microcontroladores - (3.0 hrs)
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
´
1. Ambito
de aplicaci´on de los microcontroladores
2. Comparaci´on de microcontroladores frente a
microprocesadores.
3. Evoluci´
on de los microcontroladores.
4. Familias de microcontroladores.
Tema 2
1123021 Microcontroladores
page 6
Tema 1 - Introducci´
on a los microcontroladores - (3.0 hrs)
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
´
1. Ambito
de aplicaci´on de los microcontroladores
2. Comparaci´on de microcontroladores frente a
microprocesadores.
3. Evoluci´
on de los microcontroladores.
4. Familias de microcontroladores.
Tema 2
1123021 Microcontroladores
page 6
Tema 1 - Introducci´
on a los microcontroladores - (3.0 hrs)
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
´
1. Ambito
de aplicaci´on de los microcontroladores
2. Comparaci´on de microcontroladores frente a
microprocesadores.
3. Evoluci´
on de los microcontroladores.
4. Familias de microcontroladores.
Tema 2
1123021 Microcontroladores
page 6
Tema 1 - Introducci´
on a los microcontroladores - (3.0 hrs)
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
´
1. Ambito
de aplicaci´on de los microcontroladores
2. Comparaci´on de microcontroladores frente a
microprocesadores.
3. Evoluci´
on de los microcontroladores.
4. Familias de microcontroladores.
Tema 2
1123021 Microcontroladores
page 6
´
Ambito
de aplicaci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 7
´
Ambito
de aplicaci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 7
´
Ambito
de aplicaci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 7
´
Ambito
de aplicaci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 7
´
Ambito
de aplicaci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 7
´
Ambito
de aplicaci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 7
Comparaci´
on de microcontroladores frente a microprocesadores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 8
Comparaci´
on de microcontroladores frente a microprocesadores
Tema 1 Introducci´
on a los µCs
page 9
Comparaci´
on de microcontroladores frente a microprocesadores
Tema 1 Introducci´
on a los µCs
page 10
Evoluci´
on de los microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 11
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Evoluci´
on de los microcontroladores
Tema 1 Introducci´
on a los µCs
page 12
Familias de microcontroladores
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 13
Familias del MSP430
Tema 1 Introducci´
on a los µCs
page 14
Familias del MSP430
Tema 1 Introducci´
on a los µCs
page 14
Familia MSP430G2xxx
Tema 1 Introducci´
on a los µCs
page 15
Familia MSP430G2xxx
Arquitectura: von Newman de 16 bits
Conjunto de instrucciones: RISC
Almacenamiento en memoria: Little-endian
Todas las instrucciones se componen de entre 1 a 3 palabras, por lo que
su direcci´on de inicio es par
Los puertos de entrada/salida aparecen como direcciones de memoria
(memory mapped I/O)
Cada puerto tiene varios registros asociados que permiten configurarlo o
realizar operaciones de lectura o escritura
Tema 1 Introducci´
on a los µCs
page 16
Familia MSP430G2xxx - Unidad Central de Procesamiento
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
16 registros de 16 bits cada uno
4 son reservados para funciones
especiales, el resto son de prop´
osito
general
R0/PC - Contador de programa.
Apunta a la direcci´
on de memoria
donde inicia la siguiente instrucci´
on
a ser ejecutada.
R1/SP - Apuntador de pila. Apunta
a la parte superior de la pila,
utilizada para almacenar direcciones
de retorno de subrutinas o
interrupciones.
R2/SR - Registro de estado.
Proporciona informaci´
on sobre el
estado de las banderas aritm´
eticas.
CG1,CG2 - Generador de
constantes. Mediante mecanismos
de indexado, usando R2 y R3,
provee seis constantes
(0,+4,+8,+1,+2,-1) sin la
necesidad de usar c´
odigo adicional
o localidades de memoria para su
almacenamiento.
page 17
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Tema 2
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
N
Tema 2
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Z
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
C
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
SCG1
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
SCG0
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
OSCOFF
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
OSCOFF
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
Interruptor del oscilador externo. Al escribir un 1 a este bit se
desactiva la entrada del oscilador externo LFCT1.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
OSCOFF
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
Interruptor del oscilador externo. Al escribir un 1 a este bit se
desactiva la entrada del oscilador externo LFCT1.
CPUOFF
Tema 1 Introducci´
on a los µCs
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
OSCOFF
CPUOFF
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
Interruptor del oscilador externo. Al escribir un 1 a este bit se
desactiva la entrada del oscilador externo LFCT1.
Interruptor de CPU. El CPU se apaga al escribir un 1 a este bit.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
OSCOFF
CPUOFF
GIE
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
Interruptor del oscilador externo. Al escribir un 1 a este bit se
desactiva la entrada del oscilador externo LFCT1.
Interruptor de CPU. El CPU se apaga al escribir un 1 a este bit.
page 18
Familia MSP430G2xxx - Unidad Central de Procesamiento
Registro de estado
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
14
13 12 11
Reservados
Bandera
V
⊲
N
Tema 2
Z
C
SCG1
SCG0
OSCOFF
CPUOFF
GIE
Tema 1 Introducci´
on a los µCs
10
9
8
V
7
SCG1
6
SCG0
5
OSCOFF
4
CPUOFF
3
GIE
2
N
1
Z
0
C
Descripci´
on
Bandera de sobreflujo. Este bit solo es igual a uno cuando el resultado de una operaci´
on aritm´
etica sobrepas´
o el rango de representaci´
on
permitido para n´
umeros con signo.
Bandera de negativos. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on es negativo.
Bandera de cero. Este bit solo es igual a 1 cuando el resultado de
una operaci´
on es cero.
Bandera de acarreo. Este bit solo es igual a 1 cuando el resultado
de una operaci´
on produce un acarreo de salida.
Generador del sistema de reloj (1). Cuando se escribe un 1 a este
bit, el SMCKL se apaga.
Generador del sistema de reloj (0). Cuando se escribe un 1 a este
bit, el DCO se apaga.
Interruptor del oscilador externo. Al escribir un 1 a este bit se
desactiva la entrada del oscilador externo LFCT1.
Interruptor de CPU. El CPU se apaga al escribir un 1 a este bit.
Habilitaci´
on de interrupciones. Todas las interrupciones mascarables se habilitan al escribir un 1 a este bit.
page 18
Familia MSP430G2xxx - Organizaci´
on de la memoria
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Memoria
Principal: vector de interrupciones
Principal: c´odigo de usuario
Tama˜
no
Flash
Flash
Memoria de informaci´
on
Tama˜
no
Flash
RAM
Tama˜
no
Perif´ericos
Tema 1 Introducci´
on a los µCs
Tama˜
no
16 bits
8 bits
RFE de 8 bits
MSP430G2452
MSP430G2553
8kB
16kB
0xFFFF 0xFFC0 0xFFFF 0xFFC0
0xFFBF 0xE000 0xFFBF 0xC000
Espacio
256 bytes
256 bytes
0x10FF 0x1000 0x10FF 0x1000
Espacio
256 bytes
512 bytes
0x02FF 0x0200 0x03FF 0x0200
512 bytes
512 bytes
0x01FF 0x0100 0x01FF 0x0100
0x00FF 0x0010 0x00FF 0x0010
0x000F 0x0000 0x000F 0x0000
page 19
Familia MSP430G2xxx - Conjunto de instrucciones
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
27 instrucciones b´asicas (core instructions)
•
•
C´
odigo de operaci´on u
´nico para cada instrucci´on
Se clasifican en tres formatos
◦ Binarias
◦ Unitarias
◦ Saltos
⊲
Tema 2
24 instrucciones emuladas (emulated instructions)
•
•
•
No poseen un c´
odigo de operaci´on
Hacen los programas m´as f´aciles de escribir y leer
Son remplazadas por instrucciones b´asicas mediante el
ensamblador
Tema 1 Introducci´
on a los µCs
page 20
Familia MSP430G2xxx - Conjunto de instrucciones
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
15
15
Formato de las instrucciones binarias
14 13 12
Op-code
14
⊲
Tema 2
11
10 9
S-Reg
8
7
Ad
6
B/W
5
4
3
As
Formato de las instrucciones unitarias
13
12 11 10
Op-code
9
8
7
6
B/W
5 4
Ad
3
Formato de las instrucciones de salto
15 14 13
Op-code
As
S-reg
Ad
D-reg
B/W
Tema 1 Introducci´
on a los µCs
12
11
C
10
9
8
7
2 1 0
D-Reg
2 1 0
D/S-Reg
6 5 4 3 2
Desplazamiento
1
0
Indica el modo de direccionamiento usado para la
fuente
El registro usado como fuente
Indica el modo de direccionamiento usado para el
destino
El registro usado como destino
Indica si la instrucci´on opera sobre bytes (B/W=1)
o palabras (B/W=0)
page 21
Familia MSP430G2xxx - Conjunto de instrucciones
Instrucciones binarias
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
mov.b/mov - transfiere un byte o una palabra de la fuente
src al destino dst: src → dst
add.b/add - src + dst → dst
addc.b/addc - src + dst + C → dst
sub.b/sub - dst − src → dst
subc.b/subc - Permite restar por partes, n´
umeros de m´as de
16 bits: dst − src − 1 + C → dst
cmp.b/cmp - Solo afecta banderas, el resultado se descarta:
dst − src
dadd.b/dadd - Suma en BCD: src + dst + C → dst
bit.b/bit - src AND dst
bic.b/bic - NOT(src) AND dst → dst
bis.b/bis - src OR dst → dst
xor.b/xor - src XOR dst → dst
and.b/and - src AND dst → dst
Tema 1 Introducci´
on a los µCs
page 22
Familia MSP430G2xxx - Conjunto de instrucciones
Instrucciones unitrias
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
rrc.b/rrc - rotaci´
on a la derecha concatenado con el acarreo:
C → MSB, MSB → MSB-1, . . ., LSB+1 → LSB, LSB → C
swpb - intercambia el byte bajo con el byte alto del operando
rra.b/rra - rotaci´
on aritm´etica a la derecha: MSB → MSB,
MSB → MSB-1, . . ., LSB+1 → LSB, LSB → C
sxt - extensi´on con signo de byte a palabra
push.b/push - ingresa dato a pila: SP-2 → SP, src → @SP
call
reti - regreso de interrupci´on: TOS → SR, SP+2 → SP, TOS
→ PC, SP+2 → SP
Tema 1 Introducci´
on a los µCs
page 23
Familia MSP430G2xxx - Conjunto de instrucciones
Instrucciones de salto
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
jeq/jz - salta si Z=1: PC+2 offset → PC
jne/jnz salta si Z=0
jc - salta si C=1
jnc - salta si C=0
jn - salta si N=1
jge - salta si N XOR V=0
jl - salta si N XOR V=1
jmp - salto incondicional
Tema 1 Introducci´
on a los µCs
page 24
Familia MSP430G2xxx - Modos de direccionamiento
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
Los modos de direccionamiento es la forma en que se especifican
los operandos en las instrucciones en ensamblador.
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 25
Familia MSP430G2xxx - Modos de direccionamiento
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
Los modos de direccionamiento es la forma en que se especifican
los operandos en las instrucciones en ensamblador. En el
MSP430 existen siete modos de direccionamiento para el
operando fuente y cuatro para el operando destino.
⊲
Tema 2
Tema 1 Introducci´
on a los µCs
page 25
Familia MSP430G2xxx - Modos de direccionamiento
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Tema 2
Los modos de direccionamiento es la forma en que se especifican
los operandos en las instrucciones en ensamblador. En el
MSP430 existen siete modos de direccionamiento para el
operando fuente y cuatro para el operando destino.
As/Ad
00/0
Modo de direccionamiento
Registro
01/1
Indexado
X(Rn)
01/1
Simb´olico
ADDR
Tema 1 Introducci´
on a los µCs
Sintaxis
Rn
Descripci´
on
El contenido del registro Rn sirve
como operando
El operando se encuentra en la
direcci´
on (Rn+X), en donde X es
una palabra almacenada en las siguientes dos direcciones de memoria
El operando se encuentra en la
direcci´
on (PC+X), por lo que es
equivalente a X(PC)
page 25
Familia MSP430G2xxx - Modos de direccionamiento
Presentaci´
on
Tema 1
Contenido
Aplicaci´
on
µP vs. µC
Evoluci´
on
Familias
MSP430G2xxx
Instrucciones
⊲
Los modos de direccionamiento es la forma en que se especifican
los operandos en las instrucciones en ensamblador. En el
MSP430 existen siete modos de direccionamiento para el
operando fuente y cuatro para el operando destino.
As/Ad
01/1
Modo de direccionamiento
Absoluto
10/-
Registro-Indirecto
11/-
Indirecto-Autoincremento
11/-
Inmediato
Sintaxis
&ADDR
Tema 2
Tema 1 Introducci´
on a los µCs
@Rn
@Rn+
#N
Descripci´on
La palabra que le sigue al c´
odigo de instrucci´
on contiene la direcci´
on absoluta de donde se
leer´a el operando. El modo indexado X(SR) es utilizado para
encontrar S/D-Reg.
Rn se usa como apuntador al
operando
Rn se usa como apuntador al
operando. Despu´es de ejecutar la
instrucci´
on, Rn se incrementa en
1 para instrucciones .b o en 2 para instrucciones .w
La palabra siguiente al c´
odigo de
operaci´
on contiene el operando.
Equivale al modo @PC+.
page 26
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Tema 2 - Programaci´
on en ensamblador y lenguaje C - (3.0 hrs)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1. Uso de un ensamblador, un simulador y/o un compilador.
2. Estructura general de un programa en ensamblador.
2.1 Estructuras de control en ensamblador.
2.1.1 Selecci´
on if y case.
2.1.2 Ciclos for, while y do-while.
2.2 Operadores aritm´eticos y l´ogicos.
3. Estructura general de un programa en C
3.1 Funciones y bibliotecas.
4. Ejemplos de programaci´on
1123021 Microcontroladores
page 27
Uso de un ensamblador, un simulador y/o un compilador
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 28
Uso de un ensamblador, un simulador y/o un compilador
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Ver el documento lab00.pdf para un tutorial sobre Code
Composer Studio, que es el Entorno Integrado de Desarrollo
(IDE - Integrated Development Environment) que provee
Texas Instruments para uso bajo Windows.
Para otros sistemas operativos, existen herramientas de
c´
odigo abierto, m´as ligeras pero que carecen de una interfaz
gr´afica. Ver el documento tools_install_linux.pdf para
un peque˜
no tutorial sobre instalaci´on y uso de dichas
herramientas para el sistema operativo Linux, y el documento
tools_install_mac.pdf con el mismo tutorial pero para el
sistema operativo OS X.
Tema 2 Programaci´
on en ensamblador y C
page 29
Estructura general de un programa en ensamblador
C´
odigo fuente - blink.asm
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1
2
3
4
5
6
7
8
9
10
11
12
13
start:
repeat:
waiter:
.include “msp430x2xx.inc”
;biblioteca de macros
org 0xf800
mov.w #WDTPW|WDTHOLD, &WDTCTL
mov.b #0x41, &PDIR
mov.w #0x01, r8
mov.b r8, &P1OUT
xor.b #0x41, r8
mov.w #40000, r9
dec r9
jnz waiter
jmp repeat
;direcci´on de inicio del programa
;apaga el temporizador “watchdog”
;configura P1.0 y P1.6 como salidas
;r8.bit0=1 y r8.bit6=0
;P1.0 XOR 1; P1.6 XOR 0
;r8.bit0 XOR 1; r8.bit6 XOR 1
;retardo: decrementa r9 hasta llegar a cero
;fin del ciclo de retardo
;ciclo infinito
org 0xfffe
dw start
Tema 2 Programaci´
on en ensamblador y C
page 30
Estructura general de un programa en ensamblador
Resoluci´
on de macros - blink.asm
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
1
2
3
4
5
6
7
8
9
10
start:
repeat:
waiter:
11
12
Tema 2 Programaci´
on en ensamblador y C
org 0xf800
mov.w #0x5a80, &0x0120
mov.b #0x41, &0x0022
mov.w #1, r8
mov.b r8, &0x0021
xor.b #0x41, r8
mov.w #0x9c40, r9
sub.w #1, r9
jnz waiter
jmp repeat
org 0xfffe
dw start
page 31
Estructura general de un programa en ensamblador
Lista absoluta - blink.asm
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
1
2
3
⊲
4
5
6
7
8
9
10
11
12
Tema 2 Programaci´
on en ensamblador y C
org 0xf800
start:
mov.w #0x5a80, &0x0120 ;5 ciclos
0xf800: 0x40b2, 0xf802: 0x5a80, 0xf804: 0x0120
mov.b #0x41, &0x0022
;5 ciclos
0xf806: 0x40f2, 0xf808: 0x0041, 0xf80a: 0x0022
mov.w #1, r8
;1 ciclo
0xf80c: 0x4318
repeat: mov.b r8, &0x0021
;4 ciclos
0xf80e: 0x48c2, 0xf810: 0x0021
xor.b #0x41, r8
;2 ciclos
0xf812: 0xe078, 0xf814: 0x0041
mov.w #0x9c40, r9
;2 ciclos
0xf816: 0x4039, 0xf818: 0x9c40
waiter: sub.w #1, r9
;1 ciclo
0xf81a: 0x8319
jne 0xf81a
;2 ciclos
0xf81c: 0x23fe
jmp 0xf80e
;2 ciclos
0xf81e: 0x3ff7
org 0xfffe
dw start
0xfffe: 0xf800
page 32
Estructura general de un programa en ensamblador
Presentaci´
on
Lenguaje m´aquina - blink.asm
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
0xf800:
0xf806:
0xf80c:
0xf812:
0xf818:
0xf81e:
....
0xfffe:
Tema 2 Programaci´
on en ensamblador y C
b2
f2
18
78
40
f7
40
40
43
e0
9c
3f
00
f8
80 5a
41 00
c2 48
41 00
19 83
?? ??
.....
?? ??
20
22
21
39
fe
??
01
00
00
40
23
??
??
??
page 33
Estructuras de control en lenguaje ensamblador: if-then-else
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 34
Estructuras de control en lenguaje ensamblador: switch/case
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 35
Estructuras de control en lenguaje ensamblador: ciclo for
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 36
Estructuras de control en lenguaje ensamblador: ciclo while
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 37
La Pila
Estructura LIFO (abreviatura del ingl´es Last In - First Out)
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
•
•
•
El apuntador de pila (SP por sus siglas en ingl´es) apunta
al u
´ltimo elemento almacenado en la pila (TOS del ingl´es
Top Of Stack).
Se ingresan datos a la pila mediante la instrucci´on push,
y se recuperan datos de la pila con la instrucci´on pop.
Se pueden usar todos los modos de direccionamiento.
Debe ser inicializada correctamente al inicio de cada
programa.
Se usa para almacenar:
•
•
•
variables locales (temporales).
estado de los registros.
el contador del programa y el registro de estado antes de
atender una interrupci´on.
Forma barata de alamacenar datos temporales.
Tema 2 Programaci´
on en ensamblador y C
page 38
La Pila - Subrutinas
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
Remplazan codigo repetitivo.
Hacen uso de la pila para almacenar el punto de retorno.
Se pueden pasar par´ametros por medio de registros, de la
memoria, ´
o de la pila.
Se debe de hacer una planeaci´
on previa para no perder
informaci´
on relevante al ejecutar la subrutina.
⊲
Tema 2 Programaci´
on en ensamblador y C
page 39
La Pila - Subrutinas
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 40
La Pila - Subrutinas
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 40
La Pila - Subrutinas
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 40
La Pila - Subrutinas
Presentaci´
on
Tema 1
Tema 2
Contenido
IDE
Programa en
ensamblador
if-then-else
switch/case
ciclo for
ciclo while
La pila
⊲
Tema 2 Programaci´
on en ensamblador y C
page 40