Microcontroladores y sistemas embebidos

Unidad 1: Arquitectura de Computadoras

Ing. Oscar Alonso Rosete Beas

Semana 23 Enero Rev:4 ciclo 2023-1

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

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 17:00-19:00  Miércoles 19:00-21:00   Viernes 19:00-21:00 (Lab)

 

DATOS DEL DOCENTE  

Nombre: Oscar Alonso Rosete Beas

E-mail: oscar.rosete@cetys.mx  

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

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

Introducción a la materia

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.

oscarrosete.com

Contenido temático

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

  • 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

oscarrosete.com

Contenido temático

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

oscarrosete.com

Contenido temático

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

oscarrosete.com

Contenido temático

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

  • 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

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

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

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

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

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

Introducción a la materia

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

Contacto preferente para dudas

Asesorías: WhatsApp  686 264 5073

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

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

Introducción a la materia

Componentes básicos

oscarrosete.com

Introducción a la materia

Componentes básicos

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

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

Agenda

  • Ingeniería
  • Sistemas de numeración
  • Conversiones entre sistemas
  • Código ASCII

Unidad I: Arquitectura de computadoras

oscarrosete.com

Agenda

Introducción a la materia

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

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

Conversión binario a decimal

Unidad I: Arquitectura de computadoras

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

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

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

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

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

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

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

 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

Unidad I: Arquitectura de computadoras

oscarrosete.com

Actividad en clase

  • Convertir 7710 a binario y a hexadecimal

  • Convertir 110101a hexadecimal y a decimal

  • Realiza la adición binaria: 101100+101

​Bonus:

  • Sumar 36BH+F6H

  • Investigar proceso para restar hexadecimal y realizar la operación 36BH-F6H

  • Escribir “Hola Mundo” en código ASCII(hexadecimal)

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

Agenda

Unidad I: Arquitectura de computadoras

oscarrosete.com

Agenda

Equipos

Equipo 1: Jesus Melendrez, Miguel Borquez, Bryan Angulo, Martin Corral


Equipo 2: Citlali Capiz, Dahel Corona, Euric Fukuy, Jared Cebreros


Equipo 3: Emmanuel Agundez, Hector de Dios, Bernardo Hernandez, Luis Arturo Montalvo


Equipo 4: Andrea Corral, Beatriz Velez, Paulina Hernández, Sofía Soto

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

¿Qué tecnologías tendrán un rol importante en el futuro?

 

1.1 Introducción a los sistemas embebidos

oscarrosete.com

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

1.1 Introducción a los sistemas embebidos

oscarrosete.com

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

1.1 Introducción a los sistemas embebidos

oscarrosete.com

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

1.1 Introducción a los sistemas embebidos

oscarrosete.com

Networked embedded computing systems/IoT:

 

Computing systems embedded within things/gadgets connected to the network.

Stanford EE281

1.1 Introducción a los sistemas embebidos

oscarrosete.com

1.1 Introducción a los sistemas embebidos

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"

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.

 

-Stanford EE108

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.

1.2.Conceptos básicos de arquitectura de computadoras

oscarrosete.com

 ¿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

1.2.Conceptos básicos de arquitectura de computadoras

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

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

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"

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

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)

oscarrosete.com

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)

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

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.

oscarrosete.com

1.3 Procesador

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.

oscarrosete.com

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, Amd, Freescale/IBM PowerPC, MIPS, ARM y SPARC entre otros.

También se les llaman CPU (Central Processing Units).

oscarrosete.com

1.3 Procesador

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

1.3 Procesador

oscarrosete.com

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.

1.3 Procesador

oscarrosete.com

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)

1.3 Procesador

oscarrosete.com

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)

1.3 Procesador

oscarrosete.com

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.

1.3 Procesador

oscarrosete.com

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.

1.3 Procesador

oscarrosete.com

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)

1.3 Procesador

oscarrosete.com

Como ingenieros.....creamos

Describir en equipos de laboratorio aplicaciones de un microcontrolador o sistema embebido en:

  • Industria (1 documentada, 1  propuesta por el equipo)

  • Casa habitación/sociedad en general (1 documentada, 1  propuesta por el equipo)

 

oscarrosete.com

1.2.Conceptos básicos de arquitectura de computadoras

oscarrosete.com

1.2.Conceptos básicos de arquitectura de computadoras

Como ingenieros.....creamos

 

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.

 

La extensión mínima será de 2 diapositivas por aplicación.

 

Nota: Toda actividad debe subirse a blackboard en un solo archivo cuya portada contenga el nombre completo y matricula de los integrantes del equipo.

oscarrosete.com

1.2.Conceptos básicos de arquitectura de computadoras

Equipos

Equipo 1: Jesus Melendrez, Miguel Borquez, Bryan Angulo, Martin Corral


Equipo 2: Citlali Capiz, Dahel Corona, Euric Fukuy, Jared Cebreros


Equipo 3: Emmanuel Agundez, Hector de Dios, Bernardo Hernandez, Luis Arturo Montalvo


Equipo 4: Andrea Corral, Beatriz Velez, Paulina Hernández, Sofía Soto

 

Equipo 5: Jeremi Araujo, Hugo Treviño, Ian Marroquin, Jorge Ibarra y Daniel Suarez

oscarrosete.com

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)

 

1.3 Procesador

oscarrosete.com

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

1.3 Procesador

oscarrosete.com

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.

1.3 Procesador

oscarrosete.com

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.

1.3 Procesador

oscarrosete.com

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

1.3 Procesador

oscarrosete.com

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.

Actividad Individual

oscarrosete.com

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

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

 

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 primaria o principal

  • Memoria secundaria

  • Memoria del microprocesador

  •  

oscarrosete.com

1.4. Memoria

Memoria Principal

Es la memoria de la computadora donde se almacenan temporalmente tanto los datos como los programas que la unidad central de procesamiento (CPU) está procesando o va a procesar en un determinado momento.

 

Memoria Secundaria

Dispositivos de almacenamiento capaces de almacenar datos de gran volumen, tambien llamados medios de almacenamiento.

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.

oscarrosete.com

1.4. Memoria

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.

oscarrosete.com

1.4. Memoria

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.

oscarrosete.com

1.4. Memoria

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)

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

Realizar mapa mental o cuadro sinoptico de los registros y RAM

 

oscarrosete.com

1.4. Memoria

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

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

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

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

oscarrosete.com

1.4. Memoria

Realizar mapa mental o cuadro sinoptico de los elementos del procesador

 

oscarrosete.com

1.4. Memoria

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 realicen 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:

oscarrosete.com

  • E/S programada
  • E/S por interrupción
  • Acceso directo a memoria.

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

Los 5 componentes de computadora

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

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

Microcontroladores

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

oscarrosete.com

Microchip

  • 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

oscarrosete.com

Tarjetas/Placas de desarrollo

Curso Youtube. ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad™ Evaluation Kit. Compra alternativa: teensy. Curso STNucleo

oscarrosete.com

picaxe

oscarrosete.com

Derivación de pic: Picaxe

project gallery

'three wire' download cable connection vs programador convencional

Programado en PICAXE Basic

Blockly en PICAXE

oscarrosete.com

picaxe

​Instalar MPLAB X IDE y Compiler XC8 (8 bits)

oscarrosete.com

MPLAB

Trabajo de clase individual

Para Jueves junto con cuadro sinóptico/mental

Generales: Generar un documento Word o Powerpoint

  • Clasificación de los siguientes microcontroladores acuerdo al arbol visto en clase (Agregar referencias):

    • Pic16f84a, pic16f18877

    • Atmega328p

    • PICAXE 08M2

oscarrosete.com

  • Investigación individual con cuadro comparativo:
    • RISC

    • CISC

  • 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
  • Crear cuenta en TinkerCAD

oscarrosete.com

Trabajo de clase individual

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

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
 

 

Jueves 16 o Lunes 20 de febrero examen

Unidad 2. Programación

Agenda

oscarrosete.com

Trabajo de clase individual

Para Jueves junto con cuadro sinóptico/mental

Generales: Generar un documento Word o Powerpoint

  • Clasificación de los siguientes microcontroladores acuerdo al arbol visto en clase (Agregar referencias):

    • Pic16f84a, pic16f18877

    • Atmega328p

    • PICAXE 08M2

oscarrosete.com

MPLAB X IDE and assembly source code

mplab assembler input output

page 52,53

oscarrosete.com

MPLAB® XC8 Compiler v2.10

oscarrosete.com

oscarrosete.com

MPLAB® XC8 Compiler v2.10

oscarrosete.com

MPLAB® XC8 Compiler v2.10

309c23fe3a02

oscarrosete.com

MPLAB® XC8 Compiler v2.10

Initial Setup

oscarrosete.com

oscarrosete.com

Initial Setup

oscarrosete.com

Initial Setup

oscarrosete.com

Initial Setup

oscarrosete.com

Initial Setup

Debug main project

Click on debug

oscarrosete.com

oscarrosete.com

Debug main project

oscarrosete.com

Debug main project

Cursor on status

oscarrosete.com

Debug main project

Customize project config

oscarrosete.com

oscarrosete.com

Customize project config

Video repaso Procesador

oscarrosete.com

PIC16F84A

Imagen de componentes

leer pg 3

O 30 LIBRO

 

pg. 5

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

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

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

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

Banked Memory

oscarrosete.com

Data memory in MPLab

File register

SFRs

oscarrosete.com

Special function register summary (SFR)

Page 7

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

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

Grabación de microcontrolador

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

 

Subir archivo .asm a Blackboard

oscarrosete.com

Text

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

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

 

Subir archivo .asm a Blackboard

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

  • 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

Trabajo de clase individual

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

Operadores

Se clasifican en

  • Dirección

  • Asignación

  • Operan directamente con bits

  • Lógicos y de relación

  • Aritméticos

oscarrosete.com

Operadores aritméticos

oscarrosete.com

Operadores lógicos

Verdadero si su valor numérico es diferente de 0

oscarrosete.com

Operadores con bits

Bitwise operations, operaciones bit a bit

oscarrosete.com

Ejercicio 1-bitwise

oscarrosete.com

Ejercicio 2-lógicos

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

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

Ejercicios

Repaso PORTB, TRISB

  1. 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.
  2. Cargar 3f en memoria 0eh , cargar f3 en memoria 0fh e intercambiarlos.

oscarrosete.com

Text

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

Comparación de mas de 1 bit

oscarrosete.com

Brazo robotico controlado por guante inalámbrico

Microcontrolador atmel

 

Aplicaciones

oscarrosete.com

Práctica 1

Las 2 horas de los días Martes estarán designadas a trabajo en práctica de laboratorio.

Entrega: Martes 14/03/21

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

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

Propuesta

¿Qué pasa cuando F tiene un valor de D'20'?

oscarrosete.com

Realizar el programa y simulación que cumpla con lo siguiente:

1. 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

Ejercicios ensamblador 3

Ejercicios ensamblador 3

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.

oscarrosete.com

Referencias

oscarrosete.com

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

Ejemplo Prender un LED

oscarrosete.com

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?

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

oscarrosete.com

pg. 22

oscarrosete.com

¿Cómo se realiza un retardo de tiempo?

pg. 23

Capacitor selection for crystal oscillator

oscarrosete.com

¿Cómo se realiza un retardo de tiempo?

pg. 57

oscarrosete.com

¿Cómo se realiza un retardo de tiempo?

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

oscarrosete.com

¿Cómo se realiza un retardo de tiempo?

Retardo de 20 µs

GOTO?

CICLOS?

oscarrosete.com

¿Cómo se realiza un retardo de tiempo?

Retardo de 20 µs

Llamada subrutina (2)

Primera vuelta (3+2)

3 vueltas intermedias (3)

Última vuelta s(2)

Retorno subrutina (2)

oscarrosete.com

Alternativa 100 ms

oscarrosete.com

Realizar un programa que simule el funcionamiento de un semáforo (mplab y multisim):

 

Un interruptor conectado al puerto B bit 3 inicia la siguiente secuencia

1. En el puerto A, activar el bit 0 por 5 segundos

2. Hacer un parpadeo (off-on) de 0.5s, despúes desactivar bit 0.

3. En el puerto A, activar el bit 1 por 2 segundos.

4. Hacer un parpadeo (off-on) de 0.5s, despúes desactivar bit 1 .

5. En el puerto A, activar el bit 2 por 5 segundos,

6. Hacer un parpadeo (off-on) de 0.5s, despúes desactivar bit 2 y repertir la secuencia

oscarrosete.com

Ejercicios ensamblador 4

Comparación de mas de 1 bit

oscarrosete.com

Microcontroladores Unidad 1

By Oscar Rosete

Microcontroladores Unidad 1

  • 363