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 110101a 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

project gallery

'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

  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.

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

  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

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:

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