Microcontroladores y sistemas embebidos
Unidad 1: Arquitectura de Computadoras
Ing. Oscar Alonso Rosete Beas
Semana 25 Enero Rev:3 ciclo 2021-1
oscarrosete.com
oscarrosete.com
Agenda
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador.
1.4. Memoria.
1.5. Periféricos de entrada Salida.
1.6. Arquitectura de microcontroladores.
Unidad 1: Arquitectura de Computadoras
oscarrosete.com
Unidad 1
oscarrosete.com
oscarrosete.com
oscarrosete.com
Introducción a la materia
Horas de Clase Asistidas: 64 (4/semana)
Horas de laboratorio: 32 (2/semana)
Horas de Clase Independientes: 32 (2/semana)
Duración Total: 128 horas
Horario: Lunes 19:00-22:00 / Miércoles 19:00-22:00
Salón: 28103
DATOS DEL DOCENTE
Nombre: Oscar Alonso Rosete Beas
E-mail: oscar.rosete@cetys.mx
oscarrosete.com
oscarrosete.com
PROPÓSITO DEL CURSO
Este curso tiene como propósito que el alumno pueda adquirir y poner en práctica sus conocimientos acerca del diseño de controladores basados en microcontroladores y sistemas embebidos.
Durante el curso se estudiará:
-
Arquitectura de computadoras
-
Sistema de memoria, puertos de entrada y salida
-
Programación de microcontroladores en lenguaje ensamblador y C
-
Interconexión con sensores y periféricos
oscarrosete.com
Introducción a la materia
Las actividades que se realicen dentro del aula serán dirigidas por el profesor y otras serán de carácter independiente para ser realizadas por los alumnos fuera del aula.
Las formas genéricas de actividades de aprendizaje que serán realizadas por los alumnos son:
- Trabajo colaborativo dentro del aula para analizar y debatir sobre los contenidos y bajo la dirección del profesor.
- Exposición de contenidos por parte del profesor y alumnos
- Aprendizaje basado en proyectos de aplicación por equipos o individuales.
oscarrosete.com
oscarrosete.com
oscarrosete.com
EVIDENCIAS DE DESEMPEÑO
- Reportes de análisis y resolución de casos de estudio y ejercicios de aplicación.
-
Reportes de lectura y reportes de investigación.
-
Prácticas de Laboratorio (*).
-
Elaboración de prototipos/ simulaciones.
-
Presentaciones en clase.
-
Exámenes teóricos/prácticos a lo largo del curso.
-
Proyecto final integrador en donde se apliquen las herramientas vistas durante el curso.
Contenido temático
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2.Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
-
2.1. Introducción a los lenguajes de programación en microcontroladores
-
2.2. Arquitectura y lenguaje de programación Ensamblador
-
2.3. Modos de direccionamiento
-
2.4. Memoria RAM
-
2.5. Lenguaje C
Unidad 2: Programación
Contenido temático
oscarrosete.com
oscarrosete.com
3.1. Puertos paralelo de Entrada/Salida
3.2. Manejo de Temporización básica y contadores
3.3. Interrupciones
3.4. Puertos Seriales
3.5. Convertidores A-D y D-A
Unidad 3: Recursos de los microcontroladores
Contenido temático
oscarrosete.com
oscarrosete.com
4.1. Tecnologías de Memoria
4.2. Organización de Memoria
4.3. Sistemas de Memoria
4.4. Manejo de memoria externa en un microcontrolador
Unidad 4: Memoria
Unidad 5: Aplicaciones
5.1. Interfaces Hombre-Máquina
5.2. Interfaces con Sensores y Actuadores
5.3. Aplicaciones en Automatización y Robótica
Contenido temático
oscarrosete.com
oscarrosete.com
POLÍTICAS ENTREGAS
- Existe tolerancia de 5 minutos de llegada tardía, a partir de los cuales se tomará asistencia.
- Las fechas de entrega y presentación para exámenes parciales, tareas, exposiciones, prácticas y trabajo final son Inamovibles.
- No se aceptarán entregas de exámenes fuera de la fecha y hora establecida y la calificación de una falta de entrega o entrega extemporánea es cero.
oscarrosete.com
oscarrosete.com
- Se aceptarán entregas de tareas/prácticas fuera de las fechas y horas establecidas (calificación de falta de entrega es cero).
- Penalización 10%/ día en tareas
- Penalización 10%/ semana en práctica.
- Todas las entregas deberán realizarse por medio definido en clase, de acuerdo a las indicaciones dadas (blackboard y pdf generalmente).
POLÍTICAS ENTREGAS
oscarrosete.com
oscarrosete.com
POLÍTICAS MATERIAL
- El material para trabajar en clase, descripción de tareas y temas para exposición, así como cualquier material de apoyo estará disponible a través del Blackboard o el sitio web y este será actualizado periódicamente.
- Es responsabilidad de cada estudiante traer a la sesión de clase el material que indique el maestro, incluyendo exposiciones y tareas.
oscarrosete.com
oscarrosete.com
POLÍTICAS PRESENTACIONES
- Preparar una presentación formal e interactiva que presente al grupo el tema correspondiente (Prezi, PowerPoint, Google Slides, otro).
- Preparar un reporte escrito de los puntos más relevantes de la presentación, así como las referencias consultadas.
- Subir en la actividad correspondiente en Blackboard la presentación y el reporte escrito.
- Es necesario estar presente en las actividades de exposición, de lo contrario la calificación para la exposición es cero.
oscarrosete.com
oscarrosete.com
Introducción a la materia
Bibliografía
Wilmhurst, T. (2009). Designing Embedded Systems with PIC microcontrollers. Principles and Applications. Burlington, MA, USA: Newnes
Williams Elliot. (2014). AVR Programming. Learning to Write Software for Hardware. San Francisco, CA, USA. Maker Media Inc.
oscarrosete.com
oscarrosete.com
Introducción a la materia
Software:
Arduino IDE 1.8.8, Proteus 8 Professional, Multisim 14.0, MPLAB X IDE v5.10, Atmel Studio 7
Herramientas digitales:
Blackboard, Google suite, recursos microsoft, portafolio electronico, bases de datos.
oscarrosete.com
oscarrosete.com
Introducción a la materia
Concepto | Descripción | Ponderación |
---|---|---|
Formación: Actitudes y valores | Actitud en actividades individuales y en equipo relacionadas a la clase | 10% |
Tareas | Resolución de ejemplos típicos, solución de problemas en tareas individuales y en equipo. | 15% |
Exposiciones grupales | Exposiciones de acuerdo a temáticas asignadas. | 10% |
Pruebas objetivas (2) | Pruebas objetivas en forma de exámenes parciales y/o finales | 15% |
Prácticas de laboratorio | Desarrollo exitoso y elaboración de repórte de práctica de laboratorio | 25% |
Proyecto FInal | Desarrollo y presentaciones profesionales de los proyectos | 25% |
oscarrosete.com
oscarrosete.com
Información de referencia
Profesor:
Ing. Oscar Alonso Rosete Beas
E-Mail:
oscar.rosete@cetys.mx
Pagina de facebook:
https://www.facebook.com/oscararosete
Sitio web:
https://oscarrosete.com/
oscarrosete.com
oscarrosete.com
Contacto preferente para dudas
Asesorías: WhatsApp 686 264 5073
oscarrosete.com
oscarrosete.com
Proyecto final:
Desarrollar un proyecto de innovación a nivel experimental de tecnología utilizando microcontroladores y sistemas embebidos, donde el alumno proponga la solución de un problema planteado mediante el desarrollo de un proceso para la implementación de la solución y la realización de pruebas de factibilidad y utilidad de un sistema.
oscarrosete.com
oscarrosete.com
Introducción a la materia
Learning Path
Ensamblador
Software: MPLAB, Multisim , Proteus,
C
Software: MPLAB, Multisim , Proteus,
Ensamblador y C
Software: ATmega328p,
Tinkercad
Lenguaje Arduino
oscarrosete.com
oscarrosete.com
Introducción a la materia
Componentes básicos
oscarrosete.com
oscarrosete.com
Introducción a la materia
Componentes básicos
oscarrosete.com
oscarrosete.com
Introducción a la materia
- Formación de equipos para presentaciones y proyectos (3-4 integrantes)
- Registro en grupo de Facebook
oscarrosete.com
oscarrosete.com
Introducción a la materia
oscarrosete.com
oscarrosete.com
Agenda
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Agenda
- Ingeniería
- Sistemas de numeración
- Conversiones entre sistemas
- Código ASCII
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
En equipos de 3 personas, debatan al respecto y lleguen a una respuesta conjunta a las preguntas:
-
¿Qué es la ingeniería?
-
¿Cuál es la diferencia entre los ingenieros y los científicos?
-
¿Porqué sería relevante el estudio de microcontroladores?
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Sistema de numeración decimal, compuesto de 10 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9)
528= (5*10^2) + (2*10^1) + (8*10^0)= 500+20+8
Sistema de numeración binario, compuesto de 2 dígitos (0, 1) los cuales son comúnmente denominados bits. Ejemplo 1101012
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Sistema de numeración binario
Es utilizado en las computadoras debido al hecho de que dos niveles de voltaje pueden ser representados como los dígitos 0 y 1.
Un sistema puede definir:
0 v como 0 lógico
+5v como 1 lógico
*con su debida tolerancia a variaciones en voltaje.
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Conversión binario a decimal
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos.
Conversión decimal a binario
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Utilizada como una representación conveniente de los números binarios. Compuesto de 10 dígitos y 6 letras.
1000 1001 0110=896H
Sistema de numeración hexadecimal
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Conversión binario a hexadecimal: separar en bloques de 4 bits y reemplazar por su equivalente en hexadecimal.
Conversión hexadecimal a binario: Intercambiar cada dígito hexadecimal por su equivalente de 4 bits
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Conversión decimal a hexadecimal:
Convertir a binario y posteriormente a hexadecimal
Conversión hexadecimal a decimal:
Convertir a binario y posteriormente a decimal
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
En cada una de las bases cuando se adiciona uno al dígito más alto (9, 1 y F), el dígito se convierte en 0 con un carry en la siguiente posición.
-
1-->10 (binario)
-
9-->10 (decimal)
-
F-->10 (hexadecimal)
Suma de números binarios:
Relevante porque las computadoras tienen circuitos sumadores
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Suma de números hexadecimal:
Se agregan los dígitos como en la suma decimal, si el resultado es menor de 16 el dígito se asigna al resultado en la posición indicada, si es mayor de 16 al resultado de la operación se le resta 16 y se mantiene en la posición indicada con un acarreo de 1.
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Al requerirse representar toda la información en las computadoras por medio de 0s y 1s, se definieron patrones binarios para las letras y otros caracteres.
En 1960 una representación estándar denominada ASCII fue establecida para los números de 0 a 9, las letras del alfabeto en minúsculas y mayúsculas, así como signos de puntuación.
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
El sistema ASCII utiliza 7 bits para representar cada “código”, ej. 100 0001 es la letra “A” y 110 0001=“a”. A menudo se agrega un 0 para utilizar paquetes de 8 bits(0100 001=”A”)
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Actividad en clase
-
Convertir 7710 a binario y a hexadecimal
-
Convertir 1101012 a hexadecimal y a decimal
-
Realiza la adición binaria: 101100+101
-
Convertir 1101012 a su representación en complemento 2
-
Sumar 36BH+F6H
-
Investigar proceso para restar hexadecimal y realizar la operación 36BH-F6H
-
Escribir “Hola Mundo” en código ASCII(hexadecimal)
http://bit.ly/micro-2021-1-ej-1
oscarrosete.com
oscarrosete.com
Agenda
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
Equipos
Equipo 1: Carlos Maytorena, Saúl Mendoza, Marco Leal, Marian Meza
Equipo 2: Mariana Figueroa, Luis German, Juan Romero, Sergio Vargas
Equipo 3:Paulina Parra, Alfredo Angulo, Erween Felix y Sebastian Beltran
Equipo 4: Misael Anaya, Diana Castro y Carlos Yahir Rubio
Equipo 5: Missael Perez, Miguel Garcia, erick aragon Y Jorge Dávila
Equipo 6: Jose Luis Reynoso, Omar Rivera.
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
Los componentes electrónicos se encuentran presentes en la mayoría de los sistemas, la mayoría utiliza microcontroladores.
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
¿Qué tecnologías tendrán un rol importante en el futuro?
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
Sistema cyber-físico:
Conexión del mundo digital y el físico
Industria 4.0:
Recopilación de información de procesos de producción
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
Sistema cyber-físico:
Conexión del mundo digital y el físico
Industria 4.0:
Recopilación de información de procesos de producción
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
Embedded systems:
“Information processing systems embedded into a larger product”
-ETH Zurich EE281
No es la principal razón de compra, es valor agregado.
Información: conjunto organizado de datos
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
Networked embedded computing systems/IoT:
Computing systems embedded within things/gadgets connected to the network.
Stanford EE281
oscarrosete.com
oscarrosete.com
1.1 Introducción a los sistemas embebidos
oscarrosete.com
oscarrosete.com
1.2.Conceptos básicos de arquitectura de computadoras
¿Qué es una computadora?
Las computadoras se encuentran en todo lugar, celulares, carros, relojes, pulseras y mochilas entre otros lugares.
oscarrosete.com
oscarrosete.com
-Stanford EE108
1.2.Conceptos básicos de arquitectura de computadoras
oscarrosete.com
oscarrosete.com
1.2.Conceptos básicos de arquitectura de computadoras
¿Cómo funcionan las computadoras?
Solo funcionan con señales binarias
-
Tiene valor de 0 o 1 lógico, llamado bit.
-
Las letras, números, cadenas e imágenes deben ser construidas de múltiples bits.
-
Las cadenas de bits que le indican al hardware que hacer (instrucciones) y una secuencia de instrucciones se denomina programa en código máquina.
oscarrosete.com
oscarrosete.com
1.2.Conceptos básicos de arquitectura de computadoras
¿Cómo funcionan las computadoras?
Construidas a partir de compuertas lógicas(lógica booleana)
Cuentan con celdas de memoria para preservar bits a lo largo del tiempo (Flip-flops, registers, SRAM cells, DRAM cells)
oscarrosete.com
oscarrosete.com
Terminología básica
Tamaño
Un bit es un dígito binario, un byte son 8 bits, un nibble medio byte, word son 2 bytes o 16 bits.
Un kilobyte es 2^10 bytes o 1024 bytes, un megabyte 2^20 bytes o 1,048,576 bytes, gigabyte 2^30 bytes, terabyte 2^40 bytes.
oscarrosete.com
oscarrosete.com
Terminología básica
-
Software: Conjunto de programas necesarios para hacer posible la realización de una tarea específica. Programas + datos +documentación
-
Programa: Secuencia de sentencias
-
Sentencia o instrucción: Específica ciertas operaciones que debe ejecutar una computadora.
-
Lenguaje de programación: Notación que permite escribir programas.
-
Sintaxis: Reglas gramaticales
-Facultad de ingeniería , universidad de los Andes
oscarrosete.com
oscarrosete.com
Arquitectura von neumann
Generalmente tienen:
- Memoria caché
- Bus del Sistema
- Controlador de memoria
- Bus de I/O
Cada sistema es distinto, pero tienen elementos similares
Debe de tener:
-
Procesador, memoria
-
Interacción con medio externo (I/O)
Arquitectura Harvard vs Von Neumann (Programa almacenado)
La arquitectura Harvard utiliza una memoria separada para datos y para el programa con direcciones y buses independientes. Von Neumann utiliza la misma memoria.
- Microchip PIC family uses Harvard architecture
- Motorolla 68HC11 uses Von Neumann (Princeton)
Harvard
Von Neumann/Princeton
oscarrosete.com
Arquitectura Harvard vs Von Neumann (Programa almacenado)
oscarrosete.com
oscarrosete.com
1.2.Conceptos básicos de arquitectura de computadoras
Como ingenieros.....creamos
Describir en equipos de laboratorio 1 aplicación documentada y 1 no documentada (propuesta por ustedes) de un microcontrolador o 1 sistema embebido en:
-
Industria
-
Casa habitación/sociedad en general.
En una presentación deberá describir la problemática a resolver, con que dispositivos sera resuelto, clasificar el dispositivo central como microcontrolador o sistema embebido y justificar la selección de su dispositivo. Subir a blackboard.
La extensión mínima será de 2 diapositiva por aplicación.
Nota: Toda actividad debe subirse a blackboard en un solo archivo cuyo nombre sea:
No de matricula – Titulo_Actividad
Ejemplo: 13256 Aplicaciones Microcontroladores...
oscarrosete.com
oscarrosete.com
1.2.Conceptos básicos de arquitectura de computadoras
Programar en cualquier lenguaje de su preferencia un convertidor de sistemas de numeración.
El usuario deberá poder:
- Seleccionar la base del numero entregado
- Introducir el numero
- Seleccionar la base del numero convertido
- Obtener el numero en la base deseada.
Ejemplo:
"Me gustaría convertir el (1101) base 2 a hexadecimal"
Referencia:
https://gist.github.com/oarb-projects/3dc0a12e442ce20524b0602c544c44a1
oscarrosete.com
oscarrosete.com
Agenda
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Unidad I: Arquitectura de computadoras
oscarrosete.com
oscarrosete.com
1.3 Procesador
Procesador
Es el componente más importante de una computadora, ya que todo lo demás se encuentra centrado en el. En esencia, el procesador es la sección que hace el cómputo.
oscarrosete.com
oscarrosete.com
Procesador
Es un dispositivo capaz de manipular información de acuerdo a una secuencia de instrucciones. Estas instrucciones se denomina código máquina, las cuales pueden ser modificadas para adecuarse a la aplicación (son programables), una secuencia de instrucciones se denomina programa.
1.3 Procesador
oscarrosete.com
oscarrosete.com
Microprocesador
Un microprocesador incorpora las funciones de una unidad de procesamiento central (CPU/ procesador) en un circuito integrado.
Con excepción de las “supercomputadoras”, casi la totalidad de los procesadores modernos son microprocesadores, por lo que los términos son utilizados de manera intercambiable.
1.3 Procesador
Microprocesador
De manera análoga a una caja musical (se hace una secuencia de giros y se produce música) en un microprocesador se le envía una serie de patrones de bits y estas activan o desactivan partes del núcleo de procesamiento (puede ejecutar adiciones, guardar un byte en memoria). Cada procesador tiene una serie de instrucciones específico.
oscarrosete.com
1.3 Procesador
Microprocesador
Microprocesadores utilizados en la actualidad son las series Intel Pentium, Freescale/IBM PowerPC, MIPS, ARM y SPARC entre otros.
También se les llaman CPU.
oscarrosete.com
1.3 Procesador
oscarrosete.com
oscarrosete.com
Elementos que componen un microprocesador
Puede existir confusión ya que a los procesadores se les denomina CPU.
La CPU es responsable de ejecutar el ciclo de obtención, decodificación y ejecución de instrucciones. (comúnmente denominado three-stage pipeline)
1.3 Procesador
oscarrosete.com
oscarrosete.com
1.3 Procesador
Pueden diferir ampliamente en sus diseños, sin embargo de acuerdo al modelo Von Neumann, el ciclo se implementa a través de la combinación de los siguientes 4 componentes:
- Buses internos de CPU: interconecta ALU, registros y CU.
- ALU (unidad aritmético lógica): Implementa las operaciones ISA.
- Registros: un tipo de memoria rápida
- CU (unidad de control): administra el ciclo de obtención y ejecución.
oscarrosete.com
1.3 Procesador
Buses internos de cpu
Un bus es un grupo físico de líneas de señal que tiene relacionada una función. Buses permiten la transferencia de señales eléctricas entre distintas partes.
-John Catsoulis-Designing Embedded Hardware(2005, O'Reilly Media)
Los buses internos de un CPU son mecanismos que interconectan sus componentes internos (ALU, CU y registros).
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
1.3 Procesador
Ancho de bus
El ancho de bus es el número de líneas de señal dedicadas para transferencia de información. Un bus de 8 bits transfiere 8 bits de datos en paralelo.
Buses internos de cpu
La mayoría de los microprocesadores disponibles hoy utilizan la arquitectura de sistema denominada three-bus. Estos tres buses son bus de direcciones, bus de información y bus de control.
John Catsoulis-Designing Embedded Hardware(2005, O'Reilly Media)
oscarrosete.com
1.3 Procesador
Bus de información
Transportan información bidireccionalmente, entre registros y ALU.
Bus de direcciones
Transporta la ubicación de los registros que contienen información que debe ser transferida.
Bus de control
Transporta información de señales de control, tales como temporizador y señales de control entre registros, ALU y CU.
oscarrosete.com
1.3 Procesador
ALU
Implementa operaciones de comparación, logica y operaciones matemáticas definidas por ISA.
ISA Architecture Models
Modelo abstracto de una computadora o arquitectura del conjunto de instrucciones es el repertorio de instrucciones que puede entender y ejecutar la unidad de control de una determinada CPU.
En cuanto a la complejidad se clasifica en CISC O RISC.
oscarrosete.com
1.3 Procesador
ISA Architecture Models
La ISA define las operaciones que pueden utilizar los programadores para crear programas para la arquitectura especifica, los operandos (datos) que son aceptados, almacenamiento, modos de acceso a memoria y manejo de interrupciones.
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
1.3 Procesador
ALU (Arithmetic Logic Unit)
Es un circuito lógico combinatorio que puede tener una o más entradas y solamente una salida. La salida del ALU es dependiente de las entradas aplicadas en ese instante, y no de condiciones pasadas. Conformado por compuertas lógicas, medio sumador y como bloque de construcción más básico sumador completo.
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
1.3 Procesador
Circuitos lógicos combinatorios
Cuando compuertas lógicas se conectan para producir una salida específica para cierta combinación de variables de entrada, sin almacenamiento de información, el circuito resultante es combinatorio. Las variables de salida son dependientes en todo momento de la combinación de variables de entrada.
-Digital Logic Circuits. A.P.Godse, D.A.Godse
oscarrosete.com
1.3 Procesador
ALU son multifunción
Provee operaciones de adición, así como otras operaciones lógicas y matemáticas, diseñado a partir de la circuiteria sumadora y circuiteria adicional incorporada para realizar sustracciones (complemento a dos), AND lógico, OR lógico, entre otras.
oscarrosete.com
1.3 Procesador
ALU son multifunción
La ubicación donde es guardado a la información obtenida por el ALU varía dependiendo de la arquitectura.
En la PowerPC se guarda en un registro denominado acumulador.
También pueden ser guardados en memoria (una stack u otro lugar) o una combinación híbrida de estas ubicaciones.
oscarrosete.com
1.3 Procesador
Las 8 operaciones básicas ALU
- Suma
- Suma con acarreo
- Resta
- Resta con prestamo
- Negación
- Incremento
- Decremento
- Traspaso de bits (Pass through)
-Sistemas digitales: principios y aplicaciones. Ronald J. Tocci, Neal S. Widmer
oscarrosete.com
1.3 Procesador
a) En base al siguiente video, la información vista en clase describir que es un ALU y una investigación de bases de datos confiables
b) Realizar mapa conceptual del ALU.
El mapa conceptual mejor elaborado contará con 3 décimas en el examen.
oscarrosete.com
Actividad Individual
Actividad en equipos
Trabajaremos con el ALU 74LS181N existente en multisim.
El alumno deberá investigar y armar un circuito en el simulador que logre realizar y desplegar en un display de 7 segmentos el resultado de las siguientes funciones lógicas:
1.Suma lógica A+B
2.Producto lógico A*B
3. A XOR B
Comprobar con A=1001 y B=0011.
Resultados: 1.-1011 2.-0001 3.-1010
Siendo A y B números de 4 bits.
oscarrosete.com
oscarrosete.com
oscarrosete.com
Agenda
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Unidad I: Arquitectura de computadoras
Automatización y monitoreo remoto proceso industrial
10 equipos interconectados en una red ethernet industrial y comunicados a computador central por medio de sistemas embebidos
oscarrosete.com
Aplicaciones
oscarrosete.com
Aplicaciones
Automatización y monitoreo remoto proceso industrial
10 equipos interconectados en una red ethernet industrial y comunicados a computador central por medio de sistemas embebidos
oscarrosete.com
Desarrollo de fresadora CNC con placa de desarrollo Arduino y Dremel 3000.
Aplicaciones
oscarrosete.com
Memoria en la computadora
La memoria de una computadora se puede dividir en tres grupos:
-
Memoria del microprocesador
-
Memoria primaria o principal
-
Memoria secundaria
1.4. Memoria
oscarrosete.com
La memoria del microprocesador se refiere a sus registros internos, funcionan a velocidad del CPU pero solo se tiene un número limitado de ellos. Es una parte integral de un sistema microprocesador y su función es contener las instrucciones y los datos.
1.4. Memoria
oscarrosete.com
Registros
Son una combinación de varios flip-flops que pueden utilizarse para guardar información temporalmente o retrasar señales. Un registro de almacenamiento es una forma de memoria de procesador interno usualmente utilizada para temporalmente guardar, copiar y modificar operandos que están inmediatamente y frecuentemente utilizado por el sistema. Shift registers retrasan señales al pasar las señales a través de varios flip-flops internos con cada pulso de reloj.
1.4. Memoria
oscarrosete.com
Registros
Los registros están construidos de un grupo de flip-flops que pueden ser activados en grupo o individualmente, en realidad el número de flip-flops utilizados en cada registro describe el procesador, procesador de 32 bits cuenta con 32 flip-flops (circuito secuencial) en sus registros de trabajo.
1.4. Memoria
oscarrosete.com
Circuito secuencial
También denominado máquina de estados finitos, tiene un número finito de estados en los cuales se recuerda cierta información dependiendo del estado en particular que nos encontremos.
Ej. Máquina expendedora.
1.4. Memoria
oscarrosete.com
Ejemplo registro 8 bits con 8 flip-flops de tipo D
Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
1.4. Memoria
oscarrosete.com
1.4. Memoria
Registros
En resumen los registros tienen un flip-flop por cada bit que es manipulado o almacenado en un registro.
oscarrosete.com
1.4. Memoria
Registros
Aunque los diseños ISA no utilizan los registros de la misma manera para procesar información, el almacenamiento se clasifica en dos categorías:
-
Registros de propósito general: utilizados para almacenar y manipular cualquier tipo de información determinado por el programador.
-
Registros de propósito especial: solo pueden ser utilizados de una manera especificada por ISA, incluyendo guardar los resultados de tipos específicos de cálculos, banderas, contadores, puertos I/O y registros de corrimiento.
oscarrosete.com
1.4. Memoria
oscarrosete.com
1.4. Memoria
CU
El CU es responsable de generar las señales de temporizado, así como controlar y coordinar la obtención, decodificación y ejecución de instrucciones en el procesador.
Tras la obtención de instrucciones de memoria y decodificación, la CU determina la operación que debe desempeñar el ALU, selecciona y escribe señales apropiadas para cada unidad funcional dentro y fuera del procesador (memoria,registros,ALU).
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes).pdf
oscarrosete.com
1.4. Memoria
CU
La unidad de control se realiza por medio de una de las siguientes técnicas:
-
Control alambrado. El primero se hace diseñando físicamente los circuitos con compuertas y registros lógicos, se hace para un especifico juego de instrucciones . Ejemplo zilog Z8000
-
Control microprogramado incluye una ROM de control para la traducción de instrucciones, Ejemplo:Intel 8086.
oscarrosete.com
1.4. Memoria
CU
La unidad de control se realiza por medio de una de las siguientes técnicas:
-
En la nanoprogramación se incluyen dos ROMs donde la primera contiene las direcciones de la segunda que almacena las microoperaciones, esto lo hace más eficiente.
oscarrosete.com
1.4. Memoria
Resumen
El microprocesador generalmente contenido en un solo chip y es compuesto de registros, una o varias ALUs y una unidad de control.
En los microprocesadores de propósito general los registros pueden usarse para almacenar datos, direcciones o resultados de operaciones. La mayor parte de los microcontroladores actuales son de este tipo, aunque algunos tienen registros para usos específicos.
oscarrosete.com
1.4. Memoria
Realizar mapa mental o cuadro sinoptico de los elementos del procesador
oscarrosete.com
Aplicación
Sistema de detección y notificación de fugas con microcontrolador.
oscarrosete.com
Los 5 componentes de computadora
ENTRADAS/SALIDAS
Debido a las diferencias que hay entre el CPU y los dispositivos, es necesaria una circuitería de interfase para que se encarguen de las transferencias. El procesador utiliza instrucciones de E/S para tener acceso al bus de E/S.
Se tienen tres formas de transferir datos entre un dispositivo y el CPU:
- E/S programada
- E/S por interrupción
- Acceso directo a memoria.
oscarrosete.com
Los 5 componentes de computadora
ENTRADAS/SALIDAS
La comunicación entre el CPU y los dispositivos es por medio de registros llamados puertos. En los microcontroladores estos puertos se encuentran en el mismo C.I. que el CPU.
Los bits del puerto pueden configurarse como entradas o salidas ya sea como conjunto o individualmente, a través de un registro de comando.
oscarrosete.com
Los 5 componentes de computadora
ENTRADAS/SALIDAS
En los sistemas de propósito general por cuestiones de compatibilidad los puertos son fijos. Algunos puertos cuentan además con líneas de control (handshake) para regular el flujo de información.
oscarrosete.com
Microcontroladores
Un microcontrolador (MCU) es una computadora pequeña en un circuito integrado que consiste de una unidad central de procesamiento (CPU relativamente simple) combinada con dispositivos periféricos tales como memorias, dispositivos de entradas y salidas, y temporizadores.
Destinada a gobernar una sola tarea. Más de la mitad de los CPUS vendidos mundialmente son utilizados en microcontroladores.
oscarrosete.com
Microcontroladores
Un microcontrolador posee los siguientes componentes:
-
Unidad de proceso. Procesador, memoria del programa, memoria de datos, lineas de E/S.
-
Memoria no volátil para contener el programa
-
Memoria de lectura y escritura para guardar los datos.
-
Líneas de E/S para los controladores de periféricos: comunicación paralela,comunicación serie, diversas puertas de comunicación como bus I2C, USB, etc
oscarrosete.com
Microcontroladores
Un microcontrolador posee los siguientes componentes:
-
Recursos auxiliares: Circuito de reloj, temporizadores, perro guardián, protección contra fallas de alimentación, estado de reposo o bajo consumo,etc.
-
Periféricos complementarios. Timers, convertidores, A/D, comparadores analogicos, puertos de comunicación,etc.
oscarrosete.com
Microcontroladores
oscarrosete.com
Microcontroladores
oscarrosete.com
Microcontroladores
oscarrosete.com
Microcontroladores
oscarrosete.com
Fabricante de las familias PIC y AVR (disponibles en 8,16 y 32 bits) Busqueda parametrica familia AVR, Curso PIC avanzado
Microchip
Utilizaremos PIC16F84A ya que es simulable en Multisim y PROTEUS
oscarrosete.com
Microchip
oscarrosete.com
-
ARM es un procesador y las compañías más importantes lo producen
-
Mejor rendimiento en comparación con los microcontroladores de 8,16 y 32 bits como 8051, PIC 18 Y 32, texas MP
-
Son los de menor consumo de potencia eléctrica. Muy bajo costo.
-
Conjunto de instrucciones optimizado para programarse en lenguaje C
-
Hardware de punto flotante e instrucciones de DSP
oscarrosete.com
Aplicaciones
-
Qualcomm-snapdragon
-
IBM -iot con arm
-
Android principalmente en procesadores arm
-
Continental en sistemas automotrices
-
NI en sus DAQ
Tarjetas/Placas de desarrollo
Curso Youtube. ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad™ Evaluation Kit. Compra alternativa: teensy. Curso STNucleo
oscarrosete.com
oscarrosete.com
picaxe
oscarrosete.com
picaxe
Derivación de pic: Picaxe
'three wire' download cable connection vs programador convencional
Programado en PICAXE Basic
Blockly en PICAXE
oscarrosete.com
Trabajo de clase individual
Para Lunes junto con cuadro sinóptico/mental
Generales: Generar un documento Word o Powerpoint
-
Investigación individual con cuadro comparativo:
-
RISC
-
CISC
-
-
Clasificación de los siguientes microcontroladores acuerdo al arbol visto en clase (Agregar referencias):
-
Pic16f84a, pic16f18877
-
Atmega328p
-
PICAXE 08M2
-
oscarrosete.com
Trabajo de clase individual
-
Requerimientos para programar un microcontrolador pic16f84a
- Tarea conseguir los materiales para realizarlo
-
Requerimientos para simular un microcontrolador PIC16F84a utilizando lenguaje ensamblador y lenguaje C
-
Realizar una simulación del encendido de un LED utilizando el PIC16F84a en cualquier lenguaje.
-
-
Requerimientos para ejecutar un programa en lenguaje C
- Ejecutar "hello world" en su laptop
- Instalar MPLAB X IDE y Compiler XC8 (8 bits)
- Crear cuenta en TinkerCAD
oscarrosete.com
oscarrosete.com
Agenda
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Unidad I: Arquitectura de computadoras
Text
Text
oscarrosete.com
oscarrosete.com
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
Repaso el viernes 7 de febrero
Lunes 10 de febrero examen
Unidad 2. Programación
Agenda
oscarrosete.com
oscarrosete.com
Trabajo de clase individual
Para Lunes junto con cuadro sinóptico/mental
Generales: Generar un documento Word o Powerpoint
-
Investigación individual con cuadro comparativo:
-
RISC
-
CISC
-
-
Clasificación de los siguientes microcontroladores acuerdo al arbol visto en clase (Agregar referencias):
-
Pic16f84a, pic16f18877
-
Atmega328p
-
PICAXE 08M2
-
oscarrosete.com
oscarrosete.com
Trabajo de clase individual
-
Requerimientos para programar un microcontrolador pic16f84a
- Tarea conseguir los materiales para realizarlo
-
Requerimientos para simular un microcontrolador PIC16F84a utilizando lenguaje ensamblador y lenguaje C
-
Realizar una simulación del encendido de un LED utilizando el PIC16F84a en cualquier lenguaje.
-
-
Requerimientos para ejecutar un programa en lenguaje C
- Ejecutar "hello world" en su laptop
- Instalar MPLAB X IDE y Compiler XC8 (8 bits)
- Crear cuenta en TinkerCAD
oscarrosete.com
oscarrosete.com
MPLAB X IDE and assembly source code
mplab assembler input output
page 52,53
oscarrosete.com
oscarrosete.com
MPLAB® XC8 Compiler v2.10
oscarrosete.com
oscarrosete.com
MPLAB® XC8 Compiler v2.10
oscarrosete.com
oscarrosete.com
MPLAB® XC8 Compiler v2.10
oscarrosete.com
oscarrosete.com
MPLAB® XC8 Compiler v2.10
309c23fe3a02
oscarrosete.com
oscarrosete.com
Initial Setup
oscarrosete.com
oscarrosete.com
Initial Setup
oscarrosete.com
oscarrosete.com
Initial Setup
oscarrosete.com
oscarrosete.com
Initial Setup
oscarrosete.com
oscarrosete.com
Initial Setup
oscarrosete.com
oscarrosete.com
Debug main project
Click on debug
oscarrosete.com
oscarrosete.com
Debug main project
oscarrosete.com
oscarrosete.com
Debug main project
oscarrosete.com
oscarrosete.com
Debug main project
Cursor on status
oscarrosete.com
oscarrosete.com
Customize project config
oscarrosete.com
oscarrosete.com
Customize project config
oscarrosete.com
oscarrosete.com
Video repaso Procesador
oscarrosete.com
oscarrosete.com
PIC16F84A
Imagen de componentes
leer pg 3
O 30 LIBRO
pg. 5
oscarrosete.com
oscarrosete.com
Memoria PIC
Program memory
Data memory
Flash program memory
1 K words =1024 instructions
14 bit-program
memory word
Special Function Registers (SFR)
General Purpose Registers (GPR)
8-bits wide
oscarrosete.com
oscarrosete.com
Memoria del programa
El vector "RESET" se encuentra en la dirección 00h ()
El vector "interrupt" se encuentra en la dirección 0004h()
La memoria de programa abarca 1K x 14 bits (0000h-03FFh)
3ff=1023 de 0 a 1023(1024 lineas)
wraparound:
20h, 420h son la misma ubicación
32 y 1056. Diferencia son 1024
oscarrosete.com
oscarrosete.com
Program counter
El contador de programa (PC: Program Counter) es el registro del microcontrolador cuya función es direccionar la memoria de programa.
EL PC almacena direcciones de instrucciones; esta la dirección de la siguiente instrucción que hay que ejecutar.
es de 13 bits (8 a 12 bits PCLATH, bits 0-7 PCL)
Durante la ejecución de un programa, el PC se incrementa en 1 con cada instrucción que se ejecute.
oscarrosete.com
oscarrosete.com
Data Memory
Portions of data memory are banked. This is for both the SFR area and the GPR area.
Data memory is partitioned into two banks which contain the general purpose registers and the special function registers. Bank 0 is selected by clearing the RP0 bit (STATUS<5>). Setting the RP0 bit selects Bank 1.
oscarrosete.com
oscarrosete.com
Banked Memory
oscarrosete.com
oscarrosete.com
Data memory in MPLab
File register
SFRs
oscarrosete.com
oscarrosete.com
Special function register summary (SFR)
Page 7
oscarrosete.com
oscarrosete.com
I/O
-
El microcontrolador se comunica con el mundo exterior a través de los puertos.
-
Estos están constituidos por líneas digitales de entrada/salida que trabajan entre 0 y 5 V. los puertos se pueden configurar como entradas para recibir datos o como salidas para gobernar dispositivos externos
-
El Puerto A con 5 líneas, pines RA0 a RA4.
-
El puerto B con 8 líneas, pines RB0 a RB7.
Cada línea puede ser configurada como entrada o como salida, independientemente unas de otras, según se programe.
oscarrosete.com
oscarrosete.com
Grabación de microcontrolador
La información contenida en estas memorias, que es el programa que lo controla y que consiste de una serie de números hexadecimales (ejemplo:1683 0186 30FF 0085 1283 0805 0086 2805), debe ser grabada previamente mediante un equipo físico denominado programador o grabador. Este equipo se conecta al ordenador y mediante un software se controla la grabación de la memoria del programa del microcontrolador (grabar o programar el microcontrolador)
oscarrosete.com
oscarrosete.com
Grabación de microcontrolador
oscarrosete.com
oscarrosete.com
Ejercicio introductorio ensamblador
Realiza un programa que activa los pines 1,3,5 con un valor lógico de 1 de tu puerto B
- A traves de registro W
- A traves de bcf, bsf
oscarrosete.com
oscarrosete.com
EXPRESIONES, OPERACIONES Y OPERADORES
Las expresiones son combinaciones de constantes y símbolos mezclados con operadores aritméticos y lógicos. Se permite usar paréntesis, se pueden utilizar en el campo de los operandos.
Los operadores son los símbolos que denotan las operaciones aritméticas y lógicas definidas en el lenguaje ensamblador.
oscarrosete.com
oscarrosete.com
Operadores
Se clasifican en
-
Dirección
-
Asignación
-
Operan directamente con bits
-
Lógicos y de relación
-
Aritméticos
oscarrosete.com
oscarrosete.com
Operadores aritméticos
oscarrosete.com
oscarrosete.com
Operadores lógicos
Verdadero si su valor numérico es diferente de 0
oscarrosete.com
oscarrosete.com
Operadores con bits
Bitwise operations, operaciones bit a bit
oscarrosete.com
oscarrosete.com
Ejercicio 1-bitwise
oscarrosete.com
oscarrosete.com
Ejercicio 2-lógicos
oscarrosete.com
oscarrosete.com
Símbolos
- símbolo equ expresión (define constante)
- símbolo set expresión (define una variable)
equ no puede ser modificado posteriormente, se utiliza comúnmente para registros de funciones especiales y sus direcciones en memoria de datos.
oscarrosete.com
oscarrosete.com
Símbolos- Ejemplo
DATO1 equ .18
DATO2 equ .7
movlw DATO1 %DATO2
; Al dividir 18/7 el residuo es 4
DATO=.10 (operador de asignación)
oscarrosete.com
oscarrosete.com
Ejercicio introductorio ensamblador
Realiza un programa que activa los pines 1,3,5 con un valor lógico de 1 de tu puerto B
- A traves de registro W
- A traves de bcf, bsf
oscarrosete.com
oscarrosete.com
Ejercicios
Repaso PORTB, TRISB
- Asignar a un símbolo el valor 10, asignar a otro símbolo el valor 20, mover el valor del primer símbolo a la ubicación 2. Posteriormente incrementar en 5 el primer símbolo y en 1 el segundo símbolo y realizar el mismo proceso.
- Cargar 3f en memoria 0eh , cargar f3 en memoria 0fh e intercambiarlos.
Text
Text
oscarrosete.com
oscarrosete.com
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
Repaso el viernes 7 de febrero
Lunes 10 de febrero examen
Unidad 2. Programación
Agenda
oscarrosete.com
oscarrosete.com
Brazo robotico controlado por guante inalámbrico
Microcontrolador atmel
Aplicaciones
oscarrosete.com
oscarrosete.com
Examen 1 marzo
Procesador y sus componentes:
- ALU, Registros (tipos de registros), CU y buses internos de CPU
Computadora y sus componentes:
- Bus del sistema, Microprocesador, Memoria, Entradas y salidas
Arquitectura de Von Newmann y la Harvard
Microcontrolador
RISC y CISC
Pic16f84a, ensamblador básico
oscarrosete.com
oscarrosete.com
Ejercicios individuales
Repaso PORTB, TRISB
- Asignar a un símbolo el valor 10, asignar a otro símbolo el valor 20, mover el valor del primer símbolo a la ubicación 2. Posteriormente incrementar en 5 el primer símbolo y en 1 el segundo símbolo y realizar el mismo proceso.
- Cargar 3f en memoria 0eh , cargar f3 en memoria 0fh e intercambiarlos.
oscarrosete.com
oscarrosete.com
Ejercicios individuales
2.- Cargar 3f en memoria 0eh , cargar f3 en memoria 0fh e intercambiarlos.
3.- Lograr W sea igual a un símbolo con el valor 13 decimal.
Efectuar las siguientes operaciones:
- Incrementar W en 1
- Decrementar W en 1
- Agregarle el número 20h
- Realizar una negación lógica de W
- Guardar el resultado en el registro con dirección 1A.
oscarrosete.com
oscarrosete.com
Práctica 1
Las últimas 2 horas de los días Miércoles estarán designadas a trabajo en práctica de laboratorio.
Entrega: 17/03/21
Text
oscarrosete.com
oscarrosete.com
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
Unidad 2. Programación
Agenda
oscarrosete.com
oscarrosete.com
Analogía al switch-case
En los lenguajes de programación, un switch case o switch statement, declaración de cambiador o declaración de interruptor.
El valor de la expresión entregada como parámetro es comparada con las constantes asociadas a los casos, en caso de no haber coincidencia ejecuta operación predeterminada.
oscarrosete.com
oscarrosete.com
Propuesta
Se envia al registro w lo que se quiera comparar
movfw PORTA
Se llama a una subrutina
call compara
Al registro PCL se le asigna PCL+W
compara addwf PCL,F
Las combinaciones requeridas se ponen en orden dentro de la subrutina
oscarrosete.com
oscarrosete.com
Propuesta
¿Qué pasa cuando F tiene un valor de D'20'?
oscarrosete.com
oscarrosete.com
Ejercicios ensamblador 2
1. Una serie de interruptores conectados al Puerto B efectúan las siguientes operaciones:
- Si Puerto B ==0: Sumará el contenido del registro 1 y 2 y lo asignará al registro 3.
- Si puerto B==1: Restará el contenido del registro 1 al 2 y lo asignará al registro 3.
- Si puerto B==2: Intercambiará sus valores.
- Si puerto B==3: Activará los bits 1,3 en el Puerto A.
Asegurarse que solo realice la comparación si el puerto B tiene un valor <=3.
Nota: La ubicación de los registros y sus contenidos serán seleccionados de manera arbitraria por los estudiantes.
El contenido no puede ser 0.
Realizar el programa y simulación que cumpla con lo siguiente:
2. Interruptor conectado al puerto B bit 3 inicia la siguiente secuencia:
Se simulará el funcionamiento de un semáforo, en el puerto A bit 0 permanecerá 5 segundos encendidos, después hará un parpadeo de 0.5s se desactivará y activará el bit 1, el cual permanecerá 2 segundos encendido hará un parpadeo de 0.5s se desactivará y activará el bit 2 , el cual permanecerá 5 segundos encendido hará un parpadeo de 0.5s y repetirá la secuencia.
oscarrosete.com
Ejercicios ensamblador 2
oscarrosete.com
Referencias
Diagrama de flujo
Prender un LED
Documentar el codigo, decirle al software que usamos un pic16f84a e Incluir archivo de símbolos
;autor,fecha,descripción
list p=16F84a
#include "p16f84a.inc"
Definir que sucede al hacer reset al pic
org 0
goto init
Definir configuration bits
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _CP_OFF
Evitar vector de interrupción y acceder a banco 1 de memoria de datos
org 5
init bsf STATUS,RP0
Definir que es salida a traves de TRISB
bcf TRISB,0
regresamos al banco 0 e ir al inicio de mi ciclo principal
bcf STATUS,RP0
goto start
En ciclo principal cambiar a 1 el bit 0 de Puerto B
start bsf PORTB,0
goto start
Finalizar
END
oscarrosete.com
oscarrosete.com
Ejemplo Prender un LED
Presiona un botón y enciende un led
Evitar vector de interrupción y acceder a banco 1 de memoria de datos
org 5
init bsf STATUS,RP0
Definir que el bit 0 de Puerto B es salida y el bit 0 del puerto A es entrada
bcf TRISB,0
bsf TRISA,0
Regresamos al banco 0 e ir al inicio de mi ciclo principal
bcf STATUS,RP0
goto start
bit 0 del puerto A==0?
start btfsc PORTA,0
Cambiar a 1 el bit 0 de Puerto B
bsf PORTB,0
Si
No
goto start
oscarrosete.com
Presiona un botón y enciende un led
oscarrosete.com
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
The instruction cycle (also known as the fetch–decode–execute cycle or simply the fetch-execute cycle) is the cycle which the central processing unit (CPU) follows from boot-up until the computer has shut down in order to process instructions
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
pg. 22
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
pg. 23
Capacitor selection for crystal oscillator
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
pg. 57
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
Si el reloj principal es de 4 MHz y queremos saber cuanto tiempo emplea en procesarse la instrucción nop, la cual sólo emplea un ciclo de máquina, se emplearía la siguiente expresión matemática:
pg. 36
TCY= 4*( 1/Fosc )*Cycles=
4*( 1/( 4*10^6 ) )*1 =
1*10^6 s =
1μs
¿Cómo se realiza un retardo de tiempo?
oscarrosete.com
Retardo de 20 µs
GOTO?
CICLOS?
Retardo de 20 µs
oscarrosete.com
Llamada subrutina (2)
Primera vuelta (3+2)
3 vueltas intermedias (3)
Última vuelta s(2)
Retorno subrutina (2)
Alternativa 100 ms
oscarrosete.com
Comparación de mas de 1 bit
oscarrosete.com
oscarrosete.com
Realizar el programa y simulación que cumpla con lo siguiente:
- Desarrollar una subrutina o función que permita realizar un retardo de 1 segundo.
Ejercicios ensamblador 3
Ejercicios ensamblador 3
oscarrosete.com
Realizar el programa y simulación que cumpla con lo siguiente:
2. Con interruptores conectados a las terminales RB0 y RB1 activar los LEDs conectados a las terminales RA0 y RA1 de acuerdo a la Tabla 1.
RB0 | RB1 | RA1 | RA0 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 |
Tabla 1
Si PUERTOB==0000 0010:
Puerto A = 0000 0001
oscarrosete.com
Referencias
Microcontroladores Semana 25 Enero
By Oscar Rosete
Microcontroladores Semana 25 Enero
- 1,449