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
© Copyright 2024