ARQUITECTURA SIST MICRO_REV2.pptx
-
Upload
franklin-augusto-saa-vega -
Category
Documents
-
view
55 -
download
0
Transcript of ARQUITECTURA SIST MICRO_REV2.pptx
13/04/2023Arquitectura de Sistemas Microprocesados
1
Seminario de TitulaciónIngeniería en Sistemas
Arquitectura de Sistemas Microprocesados
13/04/2023Arquitectura de Sistemas Microprocesados
2
Objetivos de Asignatura Objetivo general:
Diseñar sistemas automatizados de mediana complejidad gobernados por Microcontroladores
Objetivos específicos: Caracterizar las funciones y arquitectura de un
sistema microprocesado. Interpretar las instrucciones de programación del
microcontrolador en lenguaje JAVA. Programar microcontroladores con herramientas de entorno gráfico.
Diseñar aplicaciones de sistemas automatizados.
13/04/2023Arquitectura de Sistemas Microprocesados
3
Contenidos: Unidades didácticas:
1: Arquitectura de sistemas microprocesados Microprocesadores vs microcontroladores Arquitectura interna de microcontroladores
2: Programación de microcontroladores: C++, JAVA Estructura de programas Fundamentos de lenguaje para microncontroladores Herramientas OPEN SOURCE para microcontroladores Simulación de sistemas microprocesados
3: Programación gráfica de microcontroladores Funciones y Macros de recursos especiales de uC
4: Diseño de aplicaciones con microcontroladores
13/04/2023Arquitectura de Sistemas Microprocesados
4
Metodología En cada período de clase se presentará el tema,
exponiendo el objetivo específico y las habilidades que se desea alcanzar. Mediante el autoaprendizaje (exploraciones) se llega al descubrimiento de conceptos y patrones de manera independiente, aprovechando el poder de la tecnología. Las actividades (aplicaciones) son una rica y variada selección de aplicaciones del mundo real, estas ofrecen un constante repaso de las habilidades para resolver problemas. Además, se pueden incorporar Actividades en equipo, motivando al estudiante a pensar, hablar y escribir soluciones en un ambiente de aprendizaje de mutuo apoyo.
13/04/2023Arquitectura de Sistemas Microprocesados
5
Sistema de evaluación La evaluación será continua y constante
durante el desarrollo de las temáticas programadas: Controles frecuentes, Trabajos individuales o en
grupo, Pruebas escritas y prácticas, Resolución de ejercicios, Exposiciones y trabajos independientes.
Para el control de notas se guiará según ficha de evaluación para cada parcial emitida por el Departamento Académico. Es decir con notas intraclase y extractase.
actividades desarrolladas intraclase y extractase (EF)
20%
Evaluación parcial (EP) 20 %
Evaluación ordinaria o final (EO) 60%
13/04/2023Arquitectura de Sistemas Microprocesados
6
Referencias bibliográficas JOSÉ Mª ANGULO USATEGUI, IGNACIO ANGULO
MARTÍNEZ. PIC diseño práctico de aplicaciones, Tercera edición. MCGRAW HILL
VERLE MILAN. PIC Microcontrollers Programming in C. Primera edición. 2009
BANZI MASSIMO. GETTING STARTED WITH ARDUINO. Segunda edición. O´REILLY. 2011
WARREN JOHN, JOSH ADAMS, MOLLE HARALD. ARDUINO ROBOTICS. Primera edición. TIA. 2010
BART HUYSKENS, JOHN DOBSON, STEVE TANDY. AN INTRODUCTION TO MICROCONTROLLER PROGRAMMING. MATRIX MULTIMEDIA. 2010
13/04/2023Arquitectura de Sistemas Microprocesados
7
Plataforma de trabajo Microcontroladores PIC de 8 bits:
PIC16F887 PIC16F88
Microcontroladores ATMEL de 32 bits: ARDUINO
Entrenadores de microcontroladores: AUTOMASIS VER3.0
Equipos de medición: Osciloscopios, fuentes cc, multímetros,
generadores de señales, programadores PIC
Compiladores y simuladores: MPLAB, MIKROC, PROTEUS
13/04/2023Arquitectura de Sistemas Microprocesados
8
¿Cómo trabaja nuestro sistema?
13/04/2023Arquitectura de Sistemas Microprocesados
9
Pasos de diseño de sistemas microprocesados Procesamiento secuencial:
La lógica digital Codificación de los datos La organización de los componentes Programación: ensamblador, lenguaje C Compilar Interfaces con mundo exterior Dispositivos y controladores
13/04/2023Arquitectura de Sistemas Microprocesados
10
Repaso de electrónica digital
Función AND (producto)
111
001
010
000
SbabaS
Función OR (suma)
111
101
110
000
SbabaS
Función NOT (inversor)
01
10
SaaS
Primera forma canónica
1111
0011
0101
0001
1110
0010
1100
0000
Scba Minitérminos: Casos en los que se obtiene salida 1
cuando a y b son 0 y c es 1(a·b·c)
cuando a es 0 y b y c son 1(a·b·c)
cuando a, b y c son 1(a·b·c)
ó
ó
S = (a·b·c) + (a·b·c) + (a·b·c)Al unir los casos favorables
Segunda forma canónica
1111
1011
1101
0001
1110
1010
1100
0000
ScbaMaxitérminos: Casos en los que se
obtiene salida 0cuando a, b y c son 0
(a+b+c)
cuando a es 1 y b y c son 0(a+b+c)
y
S = (a+b+c) · (a+b+c)Al eliminar los casos desfavorables
Propiedades del álgebra de BooleEstructura matemática de un conjunto de elementos {0,1} con tres operaciones con ellos {+, ·, }
1 ) Conmutativa• a+b = b+a• a·b = b·a
2 ) Asociativa• a+b+c = a+(b+c)• a·b·c = a·(b·c)
3 ) Distributiva• a·(b+c) = a·b + a·c• a+(b·c) = (a+b)·(a+c)
4 ) Elemento neutro• a+0 = a• a·1 = a
5 ) Elemento absorbente• a+1 = 1• a·0 = 0
6 ) Ley del complementario• a+a = 1• a·a = 0
7 ) Idempotente• a+a = a• a·a = a
8 ) Simplificativa• a+a·b = a• a·(a+b) = a
Teoremas de De Morgan
1 ) Primer teorema
a + b = a · b
2 ) Segundo teorema
a · b = a + b
Función NAND
011
101
110
100
SbabaS
Función NOR
011
001
010
100
SbabaS
Función XOR (o exclusiva)
011
101
110
000
SbabaS
Codificadores
Dan salidas dependiendo de los valores de las entradas
Decimal a BCD
BCD a decimal
BCD a 7 segmentos
Multiplexor
• Una salida
• 2n entradas
• n entradas de selección
a b c S
0 0 0 D0
0 0 1 D1
0 1 0 D2
0 1 1 D3
1 0 0 D4
1 0 1 D5
1 1 0 D6
1 1 1 D7
Transforma valores en paralelo a valores en serie
Demultiplexor
• 2n salidas
• una entrada
• n entradas de selección
Transforma valores en serie a valores en paralelo
Comparador
• 2 grupos de 2n entradas
• tres salidas
25
Actividad en clase:
26
Actividad 2: Arquitectura de sistemas microprocesados
Objetivo: Conceptualizar
componentes en un sistema microprocesado, mediante el análisis de sus módulos funcionales, para la identificación en procesos de ejecución.
27
¿Cuántos componentes caben en un chip?
28
Arquitectura simplificada de uComputadora
PERIFERICOENTRADASALIDA
µPMEMORIA
RAMROM
BUS DATOS
BUS DIRECCIONES
BUS CONTROL
29
Buses de comunicación Nos referiremos a tres clases de buses de
comunicación: Bus de direcciones Bus de datos Bus de control
Bus de direcciones: A0-AM-1. Es el empleado por la CPU para seleccionar la dirección de memoria o el dispositivo de E/S con el cual va a intercambiar información.
Es unidireccional. El tamaño determina la capacidad de direccionamiento de la CPU, que es el máximo número de posiciones de memoria y dispositivos E/S a los que la CPU puede acceder. Para m líneas la capacidad de direccionamiento será: 2m.
30
Buses de comunicación
31
Buses de comunicación Bus de datos: D0 - DN-1. El bus de datos es el conjunto
de conductores a través del cual el microprocesador intercambia información con la unidad de memoria o E/S seleccionada mediante el bus de direcciones.
Características: Bidireccional: La información puede viajar en los dos sentidos. Número de líneas (N): representa la cantidad de bits que se
pueden transmitir simultáneamente. Suele denominarse “la palabra del μP”.
Triestado: Las líneas del bus de datos deben ser triestado. Las líneas triestado son aquellas capaces de tener tres estados:
Estado alto (High, H). Estado bajo (Low, L). Estado de alta impedancia (High Impedance, HZ).
32
Buses de datos
33
Bus de control Bus de control. Está formado por un
conjunto de líneas por las que circulan las señales auxiliares de gobierno y sincronización del sistema. Las líneas existentes dependen del fabricante del μP y de las funciones que desee implementarle.
Algunas señales típicas en todos los sistemas son: Señal de reloj de sincronización (CLK) Señal de RESET o inicialización (RST) Señal de lectura/escritura en memoria (R/W), etc.
34
Bus de control
35
Arquitectura RISC vs CISC Arquitectura CISC (Complex Instruction Set
Computer).
Basado en un amplio repertorio de instrucciones. Se aumenta la potencia del microprocesador a costa de aumentar el tamaño de las instrucciones, y por tanto el número de ciclos de reloj que precisan para ejecutarse. Eso sí, los programas verán reducido el número de instrucciones máquina que precisan para ser ejecutados por el microprocesador.
Ejemplos: Los procesadores de Intel y AMD son puramente CISC
36
Arquitectura CISC
37
Arquitectura RISC Arquitectura RISC (Reduced
Instruction Set Computer).
Plantea un conjunto reducido de instrucciones, buscando reducir el número de ciclos de reloj de ejecución por cada una de ellas, haciéndolas simples y evitando instrucciones complejas. Se descarga la responsabilidad de construir programas eficientes al software, al compilador.
Ejemplos: Procesadores Alpha, el Power PC (Motorola/IBM), microcontroladores ATMEL, PIC
38
Arquitectura RISC
13/04/2023Arquitectura de Sistemas Microprocesados
39
Microprocesadores VS. Microcontroladores
Microprocesadores Microcontroladores
Set de instrucciones complejo: en INTEL cerca de 320 instrucciones
Set de instrucciones reducido: PIC gama media 32 instrucciones
Multipropósito: operaciones lógicas, operaciones aritméticas, multimedia
Propósito específico: programados para tareas concretas
Costo mayor Menor costo
Requieren de dispositivos externos para funcionar: reloj, memorias, tarjetas I/O
En CHIP se encuentran CPU, memorias, reloj interno
Programa principal se almacena en memoria externa
Cuenta con memoria de programa interna reprogramable
Mayores frecuencias de trabajo: INTEL en GHz
Frecuencias de trabajo menores: PIC en MHz
Microcontroladores: Ing. Víctor Medina G
40
Microprocesador vs Microcontrolador
41
Arquitectura de uP de 8 bits
42
Además de la Unidad de Aritmética y Lógica (ALU) y de la Unidad de Control (UC), los microprocesadores contienen REGISTROS.
REGISTRO (register): Es el elemento más pequeño que puede retener un dato. Usado para almacenar temporalmente información dentro de la CPU. Los registros pueden ser de propósito general o especializado.
Componentes de uP
43
REGISTRO DE PROPÓSITO GENERAL (general-purpose register): Son aquellos sobre los que no existe restricción en cuanto a su utilización. Pueden ser empleados como fuente o destino de datos, como contador, como puntero de localidades de memoria o de elementos de E/S.
REGISTROS ESPECIALIZADOS (special-purpose register): Son los registros que están dedicados a realizar alguna función específica.
Registros internos
44
7 0
REGISTRO ACUMULADO
R
REGISTRO DE
BANDERASS, C, Z, etc.
ALU DE8 BITS
7 0
REGISTROS TEMPORALES
7 0
ALU y registros
45
REGISTRO ACUMULADOR (accumulator): Es el registro base para las operaciones aritméticas y lógicas. Antes de la ejecución de la instrucción contiene uno de los OPERANDOS y después de la ejecución es el que generalmente recibe el resultado. También es registro fuente o destino de las transferencias de datos con la unidad de memoria o con el sistema de entrada / salida. En algunos microprocesadores existe más de un Acumulador.
Registro de trabajo (W)
46
REGISTROS TEMPORALES O AUXILIARES (temporal registers) Son registros para uso interno de la CPU, en los que se almacena momentáneamente cierta información y no son accesibles al programador mediante ninguna instrucción.
REGISTRO DE BANDERAS (flag register): Esta formado por un conjunto de biestables, los mismos que indican ciertas condiciones del resultado de las operaciones; como por ejemplo el valor del signo, si hubo o no carry, si es igual a cero o no, etc.
Registro temporales y FLAGS
47
7 0
REGISTRO ACUMULADO
R
REGISTRO DE INSTRUCCIONE
S
REGISTRO DE
BANDERASS, C, Z, etc.
ALU DE8 BITS
DECODIFICADOR DE
INSTRUCCIONES
BUS DE CONTROL
7 0
REGISTROS TEMPORALES
7 0
CIRCUITOS LÓGICOS GENERADORES
DE TIEMPO Y DE CONTROL
7 0
48
REGISTRO DE INSTRUCCIONES (instruction register): Es el registro donde se almacena el CÓDIGO DE LA OPERACIÓN de la instrucción que se esta ejecutando, una vez que es traído desde la memoria del programa mediante el Bus de Datos.
DECODIFICADOR DE INSTRUCCIONES (instruction decoder): Es la parte de la Unidad de Control que se encarga de interpretar la instrucción que se encuentra en el Registro de Instrucciones, en base a una memoria ROM que contiene microinstrucciones que controlan la ejecución de las instrucciones.
Registros de instrucciones
49
CIRCUITOS LÓGICOS GENERADORES DE TIEMPO Y CONTROL (timming and control circuits): Son los circuitos encargados de generar las señales tanto internas como externas que permiten ejecutar las instrucciones. A estos circuitos también llegan las señales externas como las de inicialización, las de espera, las de interrupciones, etc. Es decir, es el bloque que esta directamente relacionado con el Bus de Control.
TIMMING AND CONTROL CIRCUITS
50
BUS DE DATOS D7…D0
7 0
REGISTRO ACUMULADO
R
REGISTRO DE INSTRUCCIONE
S
REGISTRO DE
BANDERASS, C, Z, etc.
ALU DE8 BITS
7 0BUFFER DEL BUS DE
DATOS
DECODIFICADOR DEINSTRUCCIONES
BUS DE CONTROL
BUS DE DATOS INTERNO (8
BITS)
BUS DE DATOS INTERNO (8
BITS)
7 0
REGISTROS TEMPORALES
7 0
CIRCUITOS LÓGICOS GENERADORES
DE TIEMPO Y DE CONTROL
7 0
51
BUS INTERNO (internal bus): Es el bus de comunicaciones entre los distintos componentes del microprocesador, se lo conoce también como el BUS INTERNO DE DATOS. El número de líneas que posee este bus esta determinado por el número de bits que procesa en paralelo la ALU y es uno de los parámetros que clasifican a los microprocesadores. Este bus se encuentra relacionado con el bus externo de datos a través del BUFFER DEL BUS DE DATOS.
Buses
52
BUS DE DATOS D7…D0
7 0
REGISTRO ACUMULADO
R
REGISTRO DE INSTRUCCIONE
S
REGISTRO DE
BANDERASS, C, Z, etc.
REGISTROS DE PROPÓSITO GENERAL
REGISTROS ÍNDICES
REGISTRO CONTADOR DEL PROGRAMA (PC)
REGISTRO PUNTERO DE LA PILA (SP)
ALU DE8 BITS
7 0BUFFER DEL BUS DE
DATOS
DECODIFICADOR DE
INSTRUCCIONES
BUS DE CONTROL
BUS DE DATOS INTERNO (8
BITS)
BUS DE DATOS INTERNO (8
BITS)
7 0
REGISTROS TEMPORALES
7 0
CIRCUITOS LÓGICOS GENERADORES
DE TIEMPO Y DE CONTROL
7 0
15 0
7 0
7 0
REGISTROS ESPECIALIZADO
S
REGISTROS ESPECIALIZADO
S
53
CONTADOR DEL PROGRAMA (program counter PC): Es el que contiene la dirección de la localidad donde se encuentra la siguiente instrucción a ser ejecutada.
PUNTERO DE LA PILA (stack pointer SP): Contiene la dirección de la memoria donde se almacenó el último dato de la PILA o STACK.
REGISTRO ÍNDICE (index register): También contiene una dirección y es utilizado como puntero. El uso de este registro permite que los programas sean más flexibles, ya que para acceder a distintas localidades de memoria, basta especificar un valor que sumado al contenido del registro índice da la dirección real.
Contador de programa
54
BUS DE DATOS D7…D0
7 0
REGISTRO ACUMULADO
R
REGISTRO DE INSTRUCCIONE
S
REGISTRO DE
BANDERASS, C, Z, etc.
REGISTROS DE PROPÓSITO GENERAL
REGISTROS ÍNDICES
REGISTRO CONTADOR DEL PROGRAMA (PC)
REGISTRO PUNTERO DE LA PILA (SP)
BUFFER DEL BUSDE DIRECCIONES
ALU DE8 BITS
7 0BUFFER DEL BUS DE
DATOS
BUS DE DIRECCIONES A15...A0
DECODIFICADOR DEINSTRUCCIONES
BUS DE CONTROL
BUS DE DATOS INTERNO (8
BITS)
BUS DE DATOS INTERNO (8
BITS)
7 0
REGISTROS TEMPORALES
7 0
CIRCUITOS LÓGICOS GENERADORES
DE TIEMPO Y DE CONTROL
7 0
15 0
7 0
7 0
REGISTROS ESPECIALIZADO
S
REGISTROS ESPECIALIZADO
S
55
Ciclo de instrucciones en microprocesador de 8 bits
13/04/2023Arquitectura de Sistemas Microprocesados
56
Arquitectura RISC
13/04/2023Arquitectura de Sistemas Microprocesados
57
Segmentación PIPE-LINE La segmentación permite al procesador
realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (en los PIC cada ciclo de instrucción son cuatro ciclos de reloj).
Durante la fase de búsqueda, la dirección de la instrucción la proporciona el PC, el cual normalmente se autoincrementa en la mayoría de las instrucciones, excepto en las de salto.
13/04/2023Arquitectura de Sistemas Microprocesados
58
Ciclo de instrucción El registro Program Counter (PC) es gobernado
por el ciclo de instrucción. Cada ciclo de instrucción la CPU lee (ciclo Fetch) la instrucción guardada en la memoria de programa apuntada por PC y al mismo tiempo ejecuta la instrucción anterior, esto debido a una cola de instrucciones que le permite ejecutar una instrucción mientras lee la próxima.
13/04/2023Arquitectura de Sistemas Microprocesados
59
Ciclo de instrucción
13/04/2023Arquitectura de Sistemas Microprocesados
60
Ciclo de instrucción Como puede verse, cada ciclo de instrucción:
(Tcy = 4Tosc) Se compone a su vez de cuatro ciclos del oscilador
Tosc= 1/Fosc. Cada ciclo Q provee la sincronización para los
siguientes eventos: Q1: Decodificación de la instrucción Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato
Debido a esto cada ciclo de instrucción consume 4 ciclos de reloj, de manera que si la frecuencia de oscilación es Fosc, Tcy será 4/Fosc.
13/04/2023Arquitectura de Sistemas Microprocesados
61
Segmentación PIPE-LINE
Microcontroladores62
Actividad 3: Arquitectura de microcontroladores
Objetivo: Definir los componentes de un microcontrolador
mediante el análisis de sus etapas funcionales
Registros Un registro
o una celda de memoria es un circuito electrónico que puede memorizar el estado de un byte.
Microcontroladores63
Registro SFR
Registros de funciones especiales, cada bit configura los circuitos internos del microcontroladores que se conectan a través de los pines a los periféricos.
Microcontroladores64
PUERTOS DE ENTRADA/SALIDA (E/S)
Conectan los circuitos internos con los periféricos. Son configurables bit a bit. Carga máxima (10-20mA)
Microcontroladores65
UNIDAD DE MEMORIA
Almacena los datos.
Microcontroladores66
UNIDAD DE MEMORIA
Microcontroladores67
Memoria en PIC
Microcontroladores68
UNIDAD CENTRAL DE PROCESAMIENTO (CENTRAL PROCESSOR UNIT - CPU)
Decodificador de instrucciones: decodifica las instrucciones del programa y acciona otros circuitos
Unidad lógica aritmética (Arithmetical Logical Unit - ALU) realiza todas las operaciones matemáticas y lógicas sobre datos
Acumulador o registro de trabajo.
Microcontroladores69
Bus
El bus está formado por 8, 16 o más cables. Dos tipos de buses: Bus de direcciones Bus de datos.
Microcontroladores70
COMUNICACIÓN EN SERIE
Permite conectar un uC con un periférico utilizando un mínimo número de cables, lo que permite el alcance de mayores distancias.
Microcontroladores71
VELOCIDAD DE TRANSMISIÓN SERIAL
La velocidad de transmisión serial (baud rate) es el término utilizado para denotar el número de bits transmitidos por segundo [bps].
El protocolo normalmente requiere que cada byte se transmita junto con varios bits de control. Eso quiere decir que un byte en un flujo de datos serial puede consistir en 11 bits. Por ejemplo, si velocidad de transmisión serial es 300 bps un máximo de 37 y un mínimo de 27 bytes se pueden transmitir por segundo.
Microcontroladores72
Sistemas de comunicación serial I2C (INTER INTEGRATED CIRCUIT) -
CIRCUITO INTER-INTEGRADO Circuito inter-integrado es un sistema
para el intercambio de datos serial entre los microcontroladores y los circuitos integrados. Se utiliza cuando la distancia entre ellos es corta (el receptor y el transmisor están normalmente en la misma placa de circuito impreso). La conexión se establece por medio de dos líneas - una se utiliza para transmitir los datos, mientras que la otra se utiliza para la sincronización (la señal de reloj).
Microcontroladores73
I2C (INTER INTEGRATED CIRCUIT)
Microcontroladores74
SPI (SERIAL PERIPHERAL INTERFACE BUS)
SPI (SERIAL PERIPHERAL INTERFACE BUS) - BUS SERIAL DE INTERFAZ DE PERIFÉRICOS
Es un sistema para la comunicación serial que utiliza hasta cuatro líneas (normalmente solo son necesarias tres) - para recibir los datos, para transmitir los datos, para sincronizar y (opcional) para seleccionar el dispositivo con el que se comunica.
Esto es la conexión full duplex, lo que significa que los datos se envían y se reciben simultáneamente.
La velocidad de transmisión máxima es mayor que en el sistema de conexión I2C. Microcontroladores75
UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER)
UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER) - TRANSMISOR-RECEPTOR ASÍNCRONO UNIVERSAL
Este tipo de conexión es asíncrona, lo que significa que no se utiliza una línea especial para transmitir la señal de reloj.
Tanto el receptor como el transmisor reciben y envían los datos a velocidad misma que ha sido predefinida para mantener la sincronización necesaria. Esto es una manera simple de transmitir datos puesto que básicamente representa una conversión de datos de 8 bits de paralelo a serial. La velocidad de transmisión no es alta, es hasta 1 Mbit/sec.
Microcontroladores76
OSCILADOR
Se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cerámico para estabilización de frecuencia. Además, puede funcionar como un circuito autónomo (como oscilador RC).
Microcontroladores77
CIRCUITO DE ALIMENTACIÓN
Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el voltaje de la fuente de alimentación salga de unos márgenes debido al ruido eléctrico. Como el microcontrolador dispone de varios circuitos que funcionan a niveles de voltaje diferentes, ese estado puede causar un comportamiento descontrolado. Para evitarlo, el microcontrolador normalmente tiene un circuito incorporado para el brown out reset.
El pin de reset (reinicio), marcado frecuentemente con MCLR (Master Clear Reset), sirve para el reinicio externo del microcontrolador al aplicar un cero (0) o un uno (1) lógico dependiendo del tipo del microcontrolador. En caso de que el circuito brown out no esté incorporado, un simple circuito externo para el brown out reset se puede conectar al pin MCLR.
Microcontroladores78
TEMPORIZADORES/CONTADORES
Son circuitos que sirven medir el tiempo transcurrido entre dos eventos, basados en contar los pulsos generados por el oscilador principal que es un cristal de cuarzo
Microcontroladores79
¿CÓMO FUNCIONAN LOS TEMPORIZADORES?
Los pulsos generados por el oscilador de cuarzo son llevados al circuito una vez por cada ciclo de máquina directamente o por el pre-escalador, lo que aumenta el número en el registro del temporizador.
Microcontroladores80
UTILIZAR UN PREESCALADOR EN EL FUNCIONAMIENTO DEL TEMPORIZADOR
Un pre-escalador es un dispositivo electrónico utilizado para dividir la frecuencia por un factor predeterminado. Esto quiere decir que se necesita llevar 1, 2, 4 o más pulsos a su entrada para generar un pulso a la salida.
Microcontroladores81
UTILIZAR UNA INTERRUPCIÓN EN EL FUNCIONAMIENTO DEL TEMPORIZADOR
Si el registro del temporizador es de 8 bits, el mayor número que se puede escribir en él es 255. Si se excede este número, el temporizador se reinicia automáticamente y el conteo comienza de nuevo en cero. Esto es denominado desbordamiento o sobreflujo (overflow).
Microcontroladores82
TEMPORIZADOR PERRO GUARDIÁN (WATCHDOG)
El perro guardián es un temporizador conectado a un oscilador RC completamente independiente dentro del microcontrolador.
Si el perro guardián está habilitado, cada vez que cuenta hasta el máximo valor en el que ocurre el desbordamiento del registro se genera una señal de reinicio del microcontrolador y la ejecución de programa inicia en la primera instrucción.
Microcontroladores83
CONVERTIDOR A/D
Un convertidor analógico-digital es un circuito electrónico encargado de convertir las señales continuas en números digitales discretos. En otras palabras, este circuito convierte un número real en un número binario y se lo envía a la CPU para ser procesado.
Microcontroladores84
Codificación analógica a digital
Microcontroladores85
CONVERTIDOR A/D
Resolución depende del número de BITS.
A mayor número de BITS, menor error.
Microcontroladores86
13/04/2023Arquitectura de Sistemas Microprocesados
87
Actividad 4: Arquitectura de microcontroladores PIC16F887
Objetivo: Diferenciar gamas de microcontroladores mediante análisis de sus partes funcionales
13/04/2023Arquitectura de Sistemas Microprocesados
88
Características PIC16F887 Arquitectura RISC
35 instrucciones Instrucciones son uni-ciclo excepto por las
de ramificación Frecuencia de operación 0-20 MHz Oscilador interno de alta precisión
Rango de frecuencia de 8MHz a 31KHz seleccionado por software
Voltaje de la fuente de alimentación de 2.0V a 5.5V Consumo: 220uA (2.0V, 4MHz), 11uA (2.0 V,
32 KHz) 50nA (en modo de espera) Ahorro de energía en el Modo de
suspensión 35 pines de entrada/salida
Resistencias pull-up programables individualmente por software
Interrupción al cambiar el estado del pin Memoria ROM de 8K con tecnología
FLASH El chip se puede re-programar hasta
100.000 veces Opción de programación serial en el
circuito
256 bytes de memoria EEPROM Los datos se pueden grabar más de
1.000.000 veces 368 bytes de memoria RAM Convertidor A/D:
14 canales resolución de 10 bits
3 temporizadores/contadores independientes
Temporizador perro guardián Módulo comparador analógico con
Dos comparadores analógicos Referencia de voltaje fija (0.6V) Referencia de voltaje programable en el
chip Módulo PWM incorporado Módulo USART mejorado
Soporta las comunicaciones seriales RS-485, RS-232 y LIN2.0
Auto detección de baudios Puerto Serie Síncrono Maestro (MSSP)
Soporta los modos SPI e I2C
13/04/2023Arquitectura de Sistemas Microprocesados
89
Descripción de PINOUT PIC16F887 La mayoría de los pines del microcontrolador
PIC16F887 son multipropósito. Por ejemplo, la asignación RA3/AN3/Vref+/C1IN+
para el quinto pin del microcontrolador indica que éste dispone de las siguientes funciones: RA3 Tercera entrada/salida digital del puerto A AN3 Tercera entrada analógica Vref+ Referencia positiva de voltaje C1IN+ Entrada positiva del comparador C1
Estas funciones de los pines no se pueden utilizar simultáneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento mediante SW.
13/04/2023Arquitectura de Sistemas Microprocesados
90
Memoria en PIC16F887 Memoria ROM:
El PIC16F887 tiene 8Kb de memoria ROM (en total 8192 localidades). Como la memoria ROM está fabricada con tecnología FLASH, su contenido se puede cambiar al proporcionarle un voltaje de programación especial (13V).
Memoria EEPROM: El contenido de esta memoria está permanentemente
guardado al apagar la fuente de alimentación. Sin embargo, a diferencia de la ROM, el contenido de la EEPROM se puede cambiar durante el funcionamiento del microcontrolador. Posee 256 localidades que pueden ser cambiados y utilizados durante el funcionamiento.
13/04/2023Arquitectura de Sistemas Microprocesados
91
Memoria en PIC16F887 Memoria RAM: Se compone de dos
partes: registros de propósito general y en los registros de funciones especiales (SFR). Todos estos registros se dividen en cuatro bancos de memoria.
Los dos grupos de registros se ponen a cero al apagar la fuente de alimentación, además están fabricados de la misma forma y se comportan de la manera similar.
13/04/2023Arquitectura de Sistemas Microprocesados
92
Sistema de interrupciones Al aparecer una petición de interrupción lo primero que hace el
microcontrolador es ejecutar la instrucción actual después de que se detiene el proceso de ejecución de programa. Como resultado, la dirección de memoria de programa actual se apila automáticamente y la dirección por defecto (predefinida por el fabricante) se escribe en el contador de programa. La localidad en la que el programa continúa con la ejecución se le denomina vector de interrupción. En el caso del microcontrolador PIC16F887 esta dirección es 0x0004h.
Al reconocer la fuente de interrupción y al terminar de ejecutar la rutina de interrupción el microcontrolador alcanza la instrucción RETFIE, toma la dirección de la pila y continúa con la ejecución de programa desde donde se interrumpió.
MIKROC reconoce una rutina de interrupción que se ejecutará como la función void interrupt(). El cuerpo de la función, o sea, rutina de interrupción, debe ser escrito por el usuario. void interrupt() { // Interrupt routine cnt++ ; // Interrupt causes variable cnt to be
incremented by 1}
13/04/2023Arquitectura de Sistemas Microprocesados
93
Sistema de interrupciones
13/04/2023Arquitectura de Sistemas Microprocesados
94
Principales registros SFR: STATUS Contiene el estado aritmético de datos en el registro W, el estado
RESET, los bits para seleccionar el banco para los datos de la memoria.
IRP - Registro de selección de Banco usado para direccionamiento indirecto
1 - Bancos 0 y 1 son activos (00h-FFh) 0 - Bancos 2 y 3 son activos (00h-1FFh) RP1, RP0 - Registro de selección de banco usado para
direccionamiento directo. TO - Time-out bit bit de salida del temporizador perro
guardián 1 - Después de encender el uC, o ejecutarse CLRWDT o
ejecutarse la instrucción SLEEP 0 - Después de acabarse el tiempo del WDT. PD - Power-down bit: 1 - Después de encender el
microcontrolador, después de ejecutar la instrucción CLRWDT, 0 - Después de ejecutarse la instrucción SLEEP que pone al microcontrolador en el modo de bajo consumo.
Z - Zero bit (bit cero): 1 - El resultado de una operación lógica o aritmética es 0; 0 - El resultado de una operación lógica o aritmética es distinto de 0.
DC - Digit carry/borrow bit (bit de acarreo/préstamo de dígito) cambia al sumar o al restar si ocurre un "desbordamiento"
1 - Hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.
0 - No hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.
C - Carry/Borrow bit cambia al sumar o al restar si ocurre
un "desbordamiento" en el resultado, o sea si el resultado es mayor de 255 .
1 - Ocurrió acarreo en el bit más significativo (MSB) del resultado.
0 - No ocurrió acarreo en el bit más significativo (MSB) del resultado.
IRP RP1 RP0 TO PD Z DC C
7 6 5 4 3 2 1 0
Entrada o salida en puertos Si deseamos configurar el puerto A con la
siguiente asignación:RA0 salidaRA1 salidaRA2 salidaRA3 salidaRA4 entradaRA5 entradaRA6 entrada
Posibles instrucciones a utilizarADCON1 = 6; \\ instrucción indispensable para usar el
puerto A y el puerto E como entrada o salida de datos digitales
TRISA = 0b’01110000’;TRISA = 0x70;TRISA = 112;
13/04/2023Arquitectura de Sistemas Microprocesados
96
Principales registros SFR: OPTION
13/04/2023Arquitectura de Sistemas Microprocesados
97
Principales registros SFR: INTCON
13/04/2023Arquitectura de Sistemas Microprocesados
98
Principales registros SFR: INTCON
Actividad 5: Acondicionamiento de señales
Objetivos: Establecer parámetros de medición e interface mediante el estudio de acondicionamiento de señales a microcontroladores.
El control de procesos depende de la obtención de información de entrada, su evaluación y la ejecución de la acción correspondiente.
En control industrial, la mayoría de las veces la información de entrada involucra el monitoreo de dispositivos de campo que admiten dos estados posibles.
Un interruptor es un ejemplo común de dispositivo de dos estados.
O está abierto o está cerrado.
Microcontroladores99
Acondicionamiento de señales Interruptores:
activan o desactivan señales de entrada
Microcontroladores100
Conexión eléctrica de interruptores
Conectados directamente a los puertos Se recomienda proceso anti rebote
Microcontroladores101
Acondicionamiento señales digitales
Microcontroladores102
Interruptor reflectivo
Las señales ingresan por cortes de luminosidad en receptor
Microcontroladores103
Acondicionamiento de señales a cargas
Microcontroladores se conectan a cargas eléctricas mayores mediante dispositivos actuadores, cumpliendo secuencias, considerando retardos debido a inercias mecánicas, retardos en activaciones, etc
Microcontroladores104
Acondicionamiento de señales a cargas
Microcontroladores105
Acondicionamiento salidas digitales
Microcontroladores106
Control de procesos continuos
Circuitos retroalimentados, la salida se compara con la entrada.
Microcontroladores107
Sensores de temperatura
Transductores: convierten señales físicas en señales eléctricas.
Sensores: miden señales sin convertirlas en otra magnitudes, contienen a los transductores
Microcontroladores108
Sistemas continuos = retroalimentados
Microcontroladores109
Control sistemas continuos con PIC
Microcontroladores110
Actividad 6: Programación de PIC en C
Objetivos: Definir la estructura de un programa en C
mediante la descripción de etapas en lenguaje de alto nivel para microcontroladores
111
Lenguajes de programación
El uC ejecuta el programa cargado en la memoria Flash, se denomina el código ejecutable.
Dependiendo de la arquitectura, el código binario está compuesto por palabras de 12, 14 o 16 bits de anchura, que se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento. Se les denominan Conjunto de instrucciones.
El código ejecutable se representa con números hexadecimales denominada código Hex.
En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.
Microcontroladores112
Lenguaje ensamblador (ASSEMBLER)
Las instrucciones consisten en abreviaturas con significado y a cada instrucción corresponde una localidad de memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a código máquina (código binario).
Microcontroladores113
Desventajas de ASSEMBLER
Una sola operación en ensamblador consiste en muchas instrucciones, haciéndolo muy largo y difícil de manejar.
Cada tipo de microcontrolador tiene su propio conjunto de instrucciones.
Un programador tiene que conocer el hardware del microcontrolador para escribir un programa.
Microcontroladores114
Lenguaje alto nivel vs. ASSEMBLER
Microcontroladores115
Lenguaje C
El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como sobre los bits (operaciones lógicas, desplazamiento etc.).
C está estandarizado (el estándar ANSI)
Microcontroladores116
CARACTERÍSTICAS PRINCIPALES DEL MIKROC
Este lenguaje es muy similar al C estándar, no obstante en determinados aspectos difiere del ANSI estándar en algunas características. Algunas de estas diferencias se refieren a las mejoras, destinadas a facilitar la programación de los microcontroladores PIC, mientras que las demás son la consecuencia de la limitación de la arquitectura del hardware de los PIC
Microcontroladores117
FASES DE COMPILACIÓN
El archivo fuente contiene el código en MIKROC. El preprocesador se utiliza automáticamente por el compilador al
iniciarse el proceso de la compilación. El compilador busca las directivas del preprocesador (que siempre empiezan por ‘#’) dentro del código y modifica el código fuente de acuerdo con las directivas. En esta fase se llevan a cabo inclusión de archivos, definición de constantes y macros etc, lo que facilita el proceso.
El analizador sintáctico (parser) elimina toda la información inútil del código (comentarios, espacios en blanco).
Compilador traduce el código a un archivo binario denominado archivo .mcl.
El enlazador (linker) recupera toda la información requerida para ejecutar el programa de los archivos externos y la agrupa en un solo archivo (.dbg). Además, un proyecto puede contener más de un archivo fuente y el programador puede utilizar funciones predefinidas y agrupadas dentro de los archivos denominados librerías. Por último, el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el microcontrolador.
Microcontroladores118
FASES DE COMPILACIÓN
Microcontroladores119
ESTRUCTURA DE PROGRAMA
Por ejemplo:1. Activar y configurar
el convertidor A/D incorporado;
2. Medir el valor analógico;
3. Calcular temperatura; y
4. Enviar los datos en el formato apropiado al LCD.
Microcontroladores120
ESTRUCTURA DE PROGRAMA
Microcontroladores121
Microcontroladores122
Datos en MIKROC
Cada dato utilizado en el programa debe tener su tipo especificado. Esto permite al compilador conocer el tamaño de dato (número de bytes
requerido en la memoria) y su representación. Hay varios tipos de datos que se pueden utilizar en el lenguaje de programación
mikroC dependiendo del tamaño de dato y del rango de valores.
Microcontroladores123
Datos en MIKROC Al añadir un prefijo (calificador) a cualquier tipo de dato entero o
carácter, el rango de sus posibles valores cambia así como el número de los bytes de memoria necesarios. Por defecto, los datos de tipo int son con signo, mientras que los de tipo char son sin signo. El calificador signed (con signo) indica que el dato puede ser positivo o negativo. El prefijo unsigned indica que el dato puede ser sólo positivo. Note que el prefijo es opcional.
Microcontroladores124
Tipo entero (int)
Hexadecimal: el número empieza con 0x (o 0X). Decimal (base 10): El primer dígito no puede ser 0.
En este formato, se puede introducir el signo de número (‘+’ o ‘-’). Por ejemplo: 569, -25, +1500.
Binario: cuando un entero empieza con 0b (o 0B) se representan como una serie de bits (‘0’ y ‘1’). Por ejemplo: 0B10011111
Microcontroladores125
Tipo punto flotante (float)
El tipo punto flotante (float) se utiliza para los números reales con el punto decimal. Los datos de tipo float se pueden representar de varias maneras. Un dato float es siempre consigno (signed).
Microcontroladores126
Tipo carácter (char)
El tipo char es considerado como un entero por el compilador. No obstante, se utiliza normalmente para los datos de tipo carácter. Un dato de tipo carácter está encerrado entre comillas y codificado en un carácter ASCII.
Microcontroladores127
VARIABLES Y CONSTANTES
Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado durante la ejecución de programa. En C, las variables tienen tipo, que significa que es necesario especificar el tipo de dato que se le asigna a una variable (int, float etc.). Las variables se almacenan en la memoria RAM y el espacio de memoria que ocupan (en bytes) depende de su tipo.
Microcontroladores128
VARIABLES Y CONSTANTES
Una constante tiene las mismas características que una variable excepto el hecho de que su valor asignado no puede ser cambiado durante la ejecución de programa. A diferencia de las variables, las constantes se almacenan en la memoria Flash del microcontrolador para guardar el mayor espacio posible de memoria RAM. El compilador las reconoce por el nombre y el prefijo const. En mikroC, el compilador reconoce automáticamente el tipo de dato de una constante, así que no es necesario especificar el tipo adicionalmente.
Microcontroladores129
Declaración de variables
Cada variable debe ser declarada antes de ser utilizada en el programa. Como las variables se almacenan en la memoria RAM, es necesario reservar el espacio para ellas (uno, dos o más bytes) <tipo> variable1, variable2, variable3; unsigned int peso ; // Declarar una
variable llamada peso peso = 20; // Asignar el valor 20 a la variable
;peso
Microcontroladores130
Declaración de constantes
las constantes deben ser declaradas antes de ser utilizadas en el programa. En mikroC, no es obligatorio especificar el tipo de constante al declararla. Por otra parte, las constantes deben ser inicializadas a la vez que se declaran. El compilador reconoce las constantes por su prefijo const utilizado en la declaración. Dos siguientes declaraciones son equivalentes:
const int MINIMUM = -100; // Declarar constante MINIMUM const MINIMUM = -100; // Declarar constante MINIMUM
Microcontroladores131
Ámbito de variables y constantes Una variable o una constante es reconocida por el
compilador en base de su identificador. Un identificador tiene significado si el compilador lo puede reconocer. El ámbito de una variable o una constante es el rango de programa en el que su identificador tiene significado.
Microcontroladores132
OPERADORES Un operador es un símbolo que denota una
operación aritmética, lógica u otra operación particular.
Operador aritmético: +, -, *, /, % Operador de asignación: asignan valores a
las variables
Microcontroladores133
OPERADORES
OPERADORES DE INCREMENTO Y DECREMENTO: Las operaciones de incremento y decremento por 1 se denotan con "++" y "--". Estos caracteres pueden preceder o seguir a una variable. En primer caso (++x), la variable x será incrementada por 1 antes de ser utilizada en la expresión. De lo contrario, la variable se utilizará en la expresión antes de ser aumentada por 1. Lo mismo se aplica a la operación de decremento.
Microcontroladores134
Operadores
OPERADORES RELACIONALES Los operadores relacionales se utilizan en
comparaciones con el propósito de comparar dos valores. En mikroC, si una expresión es evaluada como falsa (false), el operador devuelve 0, mientras que si una oración es evaluada como verdadera (true), devuelve 1.
Microcontroladores135
Operadores OPERADORES LÓGICOS Hay tres tipos de operaciones lógicas en el lenguaje C: Y
(AND) lógico, O (OR) lógico y negación - NO (NOT) lógico. Los operadores lógicos devuelven verdadero (1 lógico) si la expresión evaluada es distinta de cero. En caso contrario, devuelve falso (0 lógico) si la expresión evaluada equivale a cero.
Microcontroladores136
Operadores
OPERADORES DE MANEJO DE BITS A diferencia de las operaciones lógicas que se realizan
sobre los valores o expresiones, las operaciones de manejo de bits se realizan sobre los bits de un operando. Se enumeran en la siguiente tabla:
Microcontroladores137
ESTRUCTURAS DE CONTROL
ESTRUCTURAS CONDICIONALES Las condiciones son ingredientes comunes de un
programa. Las condiciones permiten ejecutar una o varias sentencias dependiendo de validez de una expresión. En otras palabras, ‘Si se cumple la condición (...), se debe hacer (...). De lo contrario, si la condición no se cumple, se debe hacer (...)’. Los operandos condicionales if-else y switch se utilizan en las operaciones condicionales. Una sentencia condicional puede ser seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.
Microcontroladores138
ESTRUCTURAS DE CONTROL
OPERADOR CONDICIONAL if-else El operador if se puede utilizar solo o asociado al
operador else (if-else). Ejemplo del operador if: if(expresión) operación;
if(expresión) operación1 else operación2; Si operación1 u operación2 está compuesta,
escriba una lista de sentencias encerradas entre llaves. Por ejemplo:
if(expresión) { ... // ... // operación1 ...} // else operación2
Microcontroladores139
Estructuras de control Operador Switch A diferencia de la sentencia if-else que selecciona entre dos opciones en el programa,
el operador switch permite elegir entre varias opciones. La sintaxis de la sentencia switch es:
Microcontroladores140
BUCLES A menudo es necesario repetir una cierta operación un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuántas veces se ejecutará, es decir cuánto tiempo el programa se quedará en el bucle, depende de las condiciones de salir del bucle. Bucle While El bucle while se parece a lo siguiente: while(expresión){ comandos ... }
while(1){ // En vez de "while(1)", se puede escribir "while(true)" ... // Expresiones encerradas entre llaves se ejecutarán ... // repetidamente (bucle infinito) } Microcontroladores141
BUCLES Bucle For El bucle for se parece a lo siguiente: for(expresión_inicial; expresión_de_condición;
cambiar_expresión) { operaciones ... }
La ejecución de esta secuencia de programa es similar al bucle while, salvo que en este caso el proceso de especificar el valor inicial (inicialización) se realice en la declaración. La expresión_ inicial especifica la variable inicial del bucle, que más tarde se compara con la expresión_ de_condición antes de entrar al bucle
Microcontroladores142
Bucles Bucle Do-while El bucle do-while se parece a lo
siguiente: do operación while (cambiar_condición);
La expresión cambiar_condición se ejecuta al final del bucle, que significa que operación se ejecuta como mínimo una vez sin reparar en que si la condición es verdadera o falsa. Si el resultado es distinto de 0 (verdadero), el procedimiento se repite.
Microcontroladores143
Ejemplos de bucles
Microcontroladores144
Ejemplos de bucles
Microcontroladores145
Ejemplos de bucles
Microcontroladores146
SENTENCIAS DE SALTO
SENTENCIA BREAK A veces es necesario detener y salir de un bucle
dentro de su cuerpo. La sentencia break se puede utilizar dentro de cualquier bucle (while, for, do while) y en las sentencias switch también. En éstas la sentencia break se utiliza para salir de las sentencias switch si la condición case es verdadera. En este ejemplo, “Esperar” está parpadeando en la pantalla LCD hasta que el programa detecte un uno lógico en el pin 0 del puerto PORTA.
Microcontroladores147
Sentencias de salto
Microcontroladores148
Sentencias de salto SENTENCIA CONTINUE La sentencia continue colocada dentro de un bucle se utiliza para
saltar una iteración. A diferencia de la sentencia break, el programa se queda dentro del bucle y las iteraciones continúan.
Microcontroladores149
Sentencias de salto
SENTENCIA GOTO La sentencia goto le permite hacer un salto
absoluto al otro punto en el programa. Esta característica se debe utilizar con precaución ya que su ejecución puede causar un salto incondicional sin hacer caso a todos los tipos de limitaciones de anidación. El punto destino es identificado por una etiqueta, utilizada como un argumento para la sentencia goto. Una etiqueta consiste en un identificador válido seguido por un colon (:).
Microcontroladores150
Sentencias de salto
Microcontroladores151
FUNCIONES
Una función es una subrutina que contiene una lista de sentencias a realizar.
La idea principal es dividir un programa en varias partes utilizando estas funciones para resolver el problema inicial con más facilidad.
Una función se ejecuta cada vez que se llame dentro de otra función. En C, un programa contiene como mínimo una función, la función main(), aunque el número de funciones es normalmente mayor.
Al utilizar funciones el código se hace más corto ya que es posible llamar una función tantas veces como se necesite. En C, el código normalmente consiste en muchas funciones.
Microcontroladores152
13/04/2023Arquitectura de Sistemas Microprocesados
153
Ejemplos de funciones
Definición de función de presentación de datos en DISPLAY de 7 segmentos char Binario_7seg(char digit); //función 7 segmentos
Proceso en la función: char Binario_7seg(char digit){ //Definición de la función. switch (digit) { case 0: return 0x3F; //0x3F es el código 7-segmentos del 0. case 1: return 0x06; //0x06 es el código 7-segmentos del 1. case 2: return 0x5B; case 3: return 0x4F; case 4: return 0x66; case 5: return 0x6D; case 6: return 0x7D; case 7: return 0x07; case 8: return 0x7F; case 9: return 0x67; }
13/04/2023Arquitectura de Sistemas Microprocesados
154
Ejemplos de funciones Función BUTTON: elimina el efecto de rebote
(BOUNCING) que se produce al presionar un pulsador.
Instrucción: (Button(&PORTA,4,1,0)) Parámetros: &PORTA: puerto de conexión del pulsador 4: Pin del puerto 1: Tiempo de retardo en milisegundos 0: nivel lógico cuando está presionado
13/04/2023Arquitectura de Sistemas Microprocesados
155
Ejemplos de funciones Función de habilitación de resistencias PULL-
UP internas del puerto B NOT_RBPU_bit=0
13/04/2023Arquitectura de Sistemas Microprocesados
156
Conexión DISPLAY LCD y PIC
13/04/2023Arquitectura de Sistemas Microprocesados
157
Funciones para conexión PIC - LCD
Función Descripción
Lcd_Init() Inicializa módulo LCD
Lcd_Out(fila, columna, texto) Presenta texto en posición indicada
Lcd_Out_CP(texto) Presenta texto en posición de cursor
Lcd_Chr(fila, columna, carácter) Presenta carácter en posición indicada
Lcd_Chr_CP(carácter) Presenta carácter en posición del cursor
Lcd_Cmd(comando) Envía comando al LCD
13/04/2023Arquitectura de Sistemas Microprocesados
158
Funciones para comandar PIC - LCDComando LCD Descripción
_LCD_FIRST_ROW Mueve el cursor a la 1ra fila
_LCD_SECOND_ROW Mueve el cursor a la 2da fila
_LCD_CLEAR Borra la pantalla
_LCD_RETURN_HOME Retorna el cursor a su origen.
_LCD_CURSOR_OFF Apaga el cursor
_LCD_UNDERLINE_ON Enciende el cursor de subrayado
_LCD_BLINK_CURSOR_ON Enciende el cursor con parpadeo
_LCD_MOVE_CURSOR_LEFT Mueve el cursor a la izquierda sin modificar la RAM del LCD
_LCD_MOVE_CURSOR_RIGHT Mueve el cursor a la derecha sin modificar la RAM del LCD
_LCD_TURN_ON Enciende el módulo LCD
_LCD_TURN_OFF Apaga el módulo LCD
_LCD_SHIFT_LEFT Desplaza la pantalla a la izquierda sin modificar la RAM del LCD
_LCD_SHIFT_RIGHT Desplaza la pantalla a la derecha sin modificar la RAM del LCD
13/04/2023Arquitectura de Sistemas Microprocesados
159
Definición de BITS para conexión LCD-PIC
sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit;
13/04/2023Arquitectura de Sistemas Microprocesados
160
Conexión LCD - PIC
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U2
PIC16F877A
X14MHz
C1
22p
C2
22p
13/04/2023Arquitectura de Sistemas Microprocesados
161
Ejemplo: presentación de caracteres void main(){ Lcd_Init(); //Inicializa el LCD. Lcd_Chr_Cp('S'); Lcd_Chr_Cp('E'); Lcd_Chr_Cp('M'); Lcd_Chr_Cp('I'); Lcd_Chr_Cp('N'); Lcd_Chr_Cp('A'); Lcd_Chr_Cp('R'); Lcd_Chr_Cp('I'); Lcd_Chr_Cp('O'); Lcd_Chr(2,1,'1'); //fija posición para valores Lcd_Chr(2,8,'2'); Lcd_Chr(2,15, '3'); // Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga cursor while(1) { } }
13/04/2023Arquitectura de Sistemas Microprocesados
162
Presentación de cadenas de texto
Char Texto1[20]= “Sistemas” void main(){ Lcd_Init();
//Inicializa el LCD. Lcd_Out_Cp(“Seminario UTSAM”); Lcd_Out(2,1,Texto1); // Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga
cursor while(1) { } }
13/04/2023Arquitectura de Sistemas Microprocesados
163
Presentación de valores numéricos Funciones de
conversión de valores numéricos: Librería CONVERSIONS:
conversión de valor numérico a línea de caracteres.
IntToStr(Entrada entera, Salida caracteres)
FloatToStr(entrada flotante, Salida carácteres)
13/04/2023Arquitectura de Sistemas Microprocesados
164
Ejemplo de presentación de valores numéricos char Texto1[20]="Sistemas"; int Entero=123; float Decimal=3.14; void main(){ Lcd_Init(); //Inicializa el LCD. Lcd_Out(1,1,"Entero:"); IntToStr(Entero,Texto1); Lcd_Out(1,8,Texto1); FloatToStr(Decimal,Texto1); Lcd_Out(2,1,"Decimal:"); Lcd_Out(2,10,Texto1); Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { } }
13/04/2023Arquitectura de Sistemas Microprocesados
165
Ejemplo: contador con LCD Se presiona un pulsador conectado a RA4, lo
que provoca el incremento de un contador que se visualiza en el centro de la segunda línea, si supera el conteo de 100, se reinicia el registro contador en 0.
Uso de funciones: Declaración de variables Button Comandos para LCD
13/04/2023Arquitectura de Sistemas Microprocesados
166
Contador en LCD
13/04/2023Arquitectura de Sistemas Microprocesados
167
Comunicaciones con PIC Permiten establecer transporte de datos con otros
dispositivos tales como: memorias, sensores, ordenadores, e incluso otros microcontroladores. Con el fin de realizar las comunicaciones seriales, algunos microcontroladores cuentan con módulos seriales como: I²C, SPI, USART, y USB.
13/04/2023Arquitectura de Sistemas Microprocesados
168
Comunicaciones Seriales I²C es ideal para la comunicación con memorias
seriales como la 24LC64, 24LC128, 24LC512, entre otras.
SPI permite establecer comunicaciones con unidades de almacenamiento masivo como las memorias SD.
USART permite hacer comunicaciones con dispositivos como sensores, módulos de transmisión y recepción XBee, ordenadores personales, módulos GPS, y otros micros.
USB que está incorporado en unos pocos micros, como el 18F2550, y el 18F4550, permite hacer la comunicación con un ordenador personal por medio de un puerto USB, definido como HID o dispositivo de interfaz humana.
13/04/2023Arquitectura de Sistemas Microprocesados
169
Modulo serial I²C MikroC contiene una librería para este
protocolo denominada I2C El protocolo I²C, se caracteriza por tener una
línea de datos bidireccional y una línea de reloj con drenador abierto. Por este motivo en estos dos pines se debe usar una resistencia de pull-up, generalmente de 10KΩ. Este usa una condición de inicio, un bloque de dirección para los dispositivos en la red, un bloque de datos y una condición de fin. De igual manera usa las condiciones de repetición de inicio y un bit de reconocimiento o acknowledge denotado como ACK.
13/04/2023Arquitectura de Sistemas Microprocesados
170
Funciones para I2C I2C1_Init(const unsigned long clock): inicializa los
pines de comunicación en el PIC, y ajusta la velocidad de comunicación a la velocidad que denote el parámetro clock.
unsigned short I2C1_Start(void): genera la condición de inicio y retorna 0 si no hay ningún error en la transmisión, de otro forma retorna un valor diferente de 0.
void I2C1_Repeated_Start(void): genera la repetición de inicio.
unsigned short I2C1_Is_Idle(void): se usa para identificar si el bus de datos está ocupado, y retorna 1, si el bus está disponible o retorna 0, si está ocupado.
13/04/2023Arquitectura de Sistemas Microprocesados
171
Funciones para I2C unsigned short I2C1_Rd(unsigned short
ack): lee un dato del bus de datos y envía la confirmación ack por el bus. Si ack vale 1 la confirmación es positiva y si es 0 la confirmación es negativa o NO ACK.
unsigned short I2C1_Wr(unsigned short data ): está función envía el dato data por el bus y retorna 0 si la transmisión fue exitosa, o algo diferente de 0 si suceden errores.
void I2C1_Stop(void): Genera la condición de final en el bus de comunicación.
13/04/2023Arquitectura de Sistemas Microprocesados
172
W/R en memoria serial 24LC00 en IC2 Escritur
a
Lectura
13/04/2023Arquitectura de Sistemas Microprocesados
173
Ejemplo de protocolo IC2
13/04/2023Arquitectura de Sistemas Microprocesados
174
Módulo USART Comunicación serial asíncrona Requiere un solo medio de transmisión para enviar
información, y no requiere un medio para el reloj o sincronismo; lo deben asumir independientemente cada uno de los elementos, el transmisor y el receptor.
Comunicación full-duplex, para este propósito se usan dos medios de transmisión dedicados, uno solo para transmitir y uno solo para recibir.
Velocidad de transmisión debe estar definida con el mismo valor en los dos dispositivos que se comunican, está por defecto en casi toda comunicación es de 9600 bps.
13/04/2023Arquitectura de Sistemas Microprocesados
175
Trama de datos USART La comunicación síncrona cuenta con las
siguientes características: un bit de inicio o de start, que siempre es un 0 lógico, 8 o 9 bits de datos para el caso puntual de los PIC, y 1, 1.5 o 2 bits de fin o stop.
13/04/2023Arquitectura de Sistemas Microprocesados
176
Protocolo RS-232 Este protocolo se conoce como RS232 Los niveles de tensión eléctrica son diferentes
al microcontrolador. El protocolo RS232, representa el valor de un 0 lógico con una tensión de +12 voltios, y el valor de un 1 lógico con -12 voltios.
Se usa un conector DB9, que tiene 9 pines.
13/04/2023Arquitectura de Sistemas Microprocesados
177
PINOUT de conector DB9
13/04/2023Arquitectura de Sistemas Microprocesados
178
CI MAX-232
13/04/2023Arquitectura de Sistemas Microprocesados
179
Librería UART en MIKROC UART1_Init(const unsigned long baud_rate): Está
función inicializa el módulo USART, y establece la velocidad de comunicación definida en el parámetro: baud_rate.
char UART1_Data_Ready(): determina si hay un dato listo para ser leído, en el búfer de llegada del módulo, si la función retorna 1 el dato puede ser leído, de lo contrario no hay datos nuevos en el búfer.
char UART1_Tx_Idle(): establece si el búfer de transmisión se encuentra ocupado enviando un dato, para esto retorna 1 si el búfer está ocupado, o 0 si el módulo está disponible para enviar un nuevo dato.
char UART1_Read(): retorna el valor del búfer de entrada, es decir que sirve para leer un dato de entrada.
13/04/2023Arquitectura de Sistemas Microprocesados
180
Librería UART en MIKROC
UART1_Read_Text(char *Output, char *Delimiter, char Attempts): lee una cadena de caracteres y la guarda en el apuntador Output, el apuntador Delimiter, es un apuntador a una cadena de caracteres que contiene el texto definido como fin de la cadena de texto de entrada, el parámetro Attempts, define la longitud de la cadena de caracteres del delimitador de fin de cadena Delimiter.
13/04/2023Arquitectura de Sistemas Microprocesados
181
Librería UART en MIKROC UART1_Write(char _data): transmite el dato
_data ingresado en el parámetro de entrada, por la USART.
UART1_Write_Text(char * UART_text): Transmite una cadena de texto finalizada con el carácter nulo o 0. Está cadena de texto es entregada por medio del parámetro UART_text.
13/04/2023Arquitectura de Sistemas Microprocesados
182
Ejemplo comunicación módulo UART
13/04/2023Arquitectura de Sistemas Microprocesados
183
Actividad 9: aplicaciones USART Objetivo: Definir los modos de funcionamiento
de módulo UART de microcontroladores PIC, mediante configuración de parámetros de comunicación con PC para diseño de aplicaciones básicas.
Actividad: Testeo de BITS en puerto B y presentación de estado en monitor de PC.
13/04/2023Arquitectura de Sistemas Microprocesados
184
Lectura de BITS y presentación en PC
T1IN11
R1OUT12
T2IN10
R2OUT9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U2
MAX232
C1
1u
C2
1u
C3
1u
C41u
C51u
+
+5V
162738495
J1
CONN-D9M
RXD
RTS
TXD
CTS
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
OFF ON 1234
8765
DSW1
DIPSW_4
X1
C6
22p
C7
22p
13/04/2023Arquitectura de Sistemas Microprocesados
185
Actividad grupal Los estudiantes diseñaran la siguiente
aplicación basada en MIKROC que responda a las siguientes necesidades de datos enviados desde la PC
Al enviar 1: activa LED1 Al enviar 2: activa LED2 Al enviar 3: activa LED1 y LED2 Al enviar 4: activa LED1 y después de 3
segundos LED2 Al enviar 0: desactiva cualquiera de los LEDS
activos
13/04/2023Arquitectura de Sistemas Microprocesados
186
Módulo USB
13/04/2023Arquitectura de Sistemas Microprocesados
187
Módulo USB Disponible en PIC como 18F2550 y 18F4550,
destinan pines exclusivos para esta comunicación.
La conexión USB puede entregar una alimentación de 5 voltios con una corriente máxima de 500mA, esto significa que si el desarrollo no supera este consumo, no es necesario implementar una fuente de poder externa.
Para la simulación es necesario activar puerto virtual de PROTEUS – ISIS, en la siguiente dirección: C:/labcenter Electronics/Proteus 7 Professional/USB
Drivers/installer.exe
DRIVERS válidos para sistemas operativos de 32 BITS.
13/04/2023Arquitectura de Sistemas Microprocesados
188
Esquema de simulación
13/04/2023Arquitectura de Sistemas Microprocesados
189
Funciones de librería USB en MIKROC
Hid_Enable(unsigned *readbuff, unsigned *writebuff); Configura el módulo USB, y establece la comunicación con la
computadora. Incluye los parámetros de entrada readbuff y writebuff, que son apuntadores a los arreglos de memoria que guardan y transmiten la información por el puerto USB.
unsigned char Hid_Read(void); Retorna la cantidad de datos listos para ser leídos del puerto
USB. unsigned short Hid_Write(unsigned *writebuff,
unsigned short len); Escribe en el puerto USB, la cantidad de bytes definidos en el
parámetro len, que están consignados en el apuntador writebuff.
void Hid_Disable(void); Deshabilita el uso del puerto USB.
13/04/2023Arquitectura de Sistemas Microprocesados
190
Actividad en clase: Simulación PIC - USB Realizar actividad por estudiante establecida
en documento PDF respecto a comunicación USB entre PIC y puerto virtual.
13/04/2023Arquitectura de Sistemas Microprocesados
191
Modulación por ancho de pulso (PWM)
La Modulación por Ancho de Pulso (PWM = Pulse Width Modulation) es una técnica para simular una salida analógica con una salida digital.
El control digital se usa para crear una onda cuadrada, una señal que conmuta constantemente entre encendido y apagado. Este patrón de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporción de tiempo entre encendido y apagado.
A la duración del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analógico cambiamos, o modulamos, ese ancho de pulso.
13/04/2023Arquitectura de Sistemas Microprocesados
192
PWM
13/04/2023Arquitectura de Sistemas Microprocesados
193
PWM en PIC En este modo, el pin CCP1 produce una salida PWM de
hasta 10 bits de resolución, se tienen hasta 1024 opciones de configuración del ciclo de trabajo. Este pin tiene que configurarse como salida por medio del registro TRISB.
Se caracteriza por una base de tiempo (período) y un tiempo durante el cual la salida tiene un nivel alto (ciclo de trabajo). La frecuencia es el inverso del período.
13/04/2023Arquitectura de Sistemas Microprocesados
194
PWM en PIC El período se especifica escribiendo en el registro PR2
y se puede calcular con la siguiente fórmula:
Cuando TMR2 es igual a PR2, se producen los tres siguientes eventos en el próximo ciclo de incremento: El registro TMR2 es borrado. El pin CCP1 se pone en 1 (excepto si el ciclo de trabajo es
0%). El ciclo de trabajo PWM es movido desde el registro
CCPR1L al registro CCPR1H.
13/04/2023Arquitectura de Sistemas Microprocesados
195
Ciclo de trabajo PWM El ciclo de trabajo se especifica escribiendo en el registro
CCPR1L (los 8 MSbs) y en los bits CCP1CON<5:4> (los 2 LSbs). Este valor de 10 bits se representa como:
CPR1L: CCP1CON<5:4>. La siguiente fórmula permite el cálculo del ciclo de
trabajo:
En los bits CCPR1L: CCP1CON<5:4>se puede escribir en cualquier momento, pero el ciclo de trabajo no es movido hacia CCPR1H hasta que se produce una coincidencia entre TMR2 y PR2 (es decir, se completa el período). En el modo PWM, el registro CCPR1H es de solo lectura.
13/04/2023Arquitectura de Sistemas Microprocesados
196
Ciclo de trabajo PWM La máxima resolución PWM (bits) para una
determinada frecuencia PWM está dada por la siguiente fórmula:
13/04/2023Arquitectura de Sistemas Microprocesados
197
Funciones de mikroC para PWM PWM1_Init(frecuencia): Inicializa el módulo
PWM con un ciclo de trabajo igual a 0. La frecuencia PWM se expresa en Hz (tomar en cuenta las frecuencias permitidas de acuerdo a la frecuencia del oscilador FOSC).
PWM1_Set_Duty(ciclo de trabajo): Establece el ciclo de trabajo desde 0 hasta 255 (resolución de 8 bits). Donde 0 es 0%, 127 es 50% y 255 es 100%. Se pueden calcular otros valores del ciclo de trabajo con la fórmula (Porcentaje*255)/100.
PWM1_Start( ): Inicia la generación de la señal PWM.
PWM1_Stop( ): Detiene la generación de la señal PWM.
13/04/2023Arquitectura de Sistemas Microprocesados
198
Ejemplo PWM Con una frecuencia de oscilador (FOSC) de 4MHz se tiene un
período (TOSC) de 0,25 us; si el prescaler del Timer2 tiene un valor de 1, entonces se pueden calcular los períodos mínimo y máximo
PWM y las frecuencias máxima y mínima permitidas, respectivamente. El período mínimo se obtiene cuando el registro PR2 tiene un valor de 0, por lo tanto:
TPWMmín=(0+1)x4x0,25x1=1 us Y la frecuencia máxima será: fPWMmáx=1MHz El período máximo se obtiene cuando el registro PR2 tiene
un valor de 255: TPWMmáx=(255+1)x4x0,25x1=256 us Y la frecuencia mínima será:fPWMmín=3.906Hz En el siguiente ejemplo se trabaja con una frecuencia PWM
de 5kHz.
13/04/2023Arquitectura de Sistemas Microprocesados
199
Esquema PWM
RB
[4..
1]
RB
3
RB
1R
B2
RB
0
RB0RB1RB2RB3
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
R1
10k
6
5
4
1
2
U2
4N25
Q1IRFZ44N
D11N4007
R2
620
R3
10
12V
R491k
VELOCIDAD
12V10Amax
+5V
MOTOR
(+)
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U3
PIC16F877A
13/04/2023Arquitectura de Sistemas Microprocesados
200
Aplicaciones PWM: movimiento rotacional en robot móvil
Movimiento de ruedas: velocidad mediante PWM
Dirección: control diferencial
Sentido: DRIVERS, puentes H
Lógica de programación define operación de recorrido.
13/04/2023Arquitectura de Sistemas Microprocesados
201
Actividad 12: Módulo ADC Objetivos
Definir las etapas de conversión analógica a digital mediante la determinación del proceso de adquisición de datos en relación a registros afectados lo que permitirá la interpretación de instrucciones en Lenguaje C para este procedimiento.
Reflexión: ¿Cómo percibe las condiciones de su entorno un
sistema microcontrolado? ¿Cómo codifica parámetros no eléctricos un
microcontrolador? Todo lo que se puede medir se puede
controlar.
13/04/2023Arquitectura de Sistemas Microprocesados
202
Módulo Convertidor Analógico Digital (ADC)
13/04/2023Arquitectura de Sistemas Microprocesados
203
Módulo ADC en PICs La familia de microcontroladores PIC16F87X,
disponen de un módulo de conversión Analógico/Digital que tiene cinco entradas para los dispositivos de 28 pines y ocho para los otros dispositivos de la familia.
A través de la entrada analógica se aplica la señal analógica a un condensador de captura y retención (sample and hold) que después se introduce en el convertidor. El convertidor A/D que es de aproximaciones sucesiva da como resultado una palabra de 10 bits.
Permite al microcontrolador sensar al entorno.
13/04/2023Arquitectura de Sistemas Microprocesados
204
Muestreo y retención (SAMPLE & HOLD)
Tomar una muestra de la señal: Es como un interruptor electrónico cuya única función es dejar pasar la señal análoga a convertir, este paso será por un pequeño instante de tiempo, solo lo necesario para que el retenedor quede cargado al mismo nivel de voltaje de la señal de entrada.
Cuantificar y Codificar: Una vez que la señal esta lista en el retenedor, el modulo de control SAR (Successive-approximation-register), inicia el proceso de cuantificación y codificación directa.
13/04/2023Arquitectura de Sistemas Microprocesados
205
Muestreo y retención (SAMPLE & HOLD)
13/04/2023Arquitectura de Sistemas Microprocesados
206
Módulo ADC en PICs Tomar una muestra de una señal análoga en
un instante de tiempo, cuantificarla y darle un código digital que representa la cantidad de niveles a los cuales pertenece la muestra.
13/04/2023Arquitectura de Sistemas Microprocesados
207
Valores máximos y mínimos de ADC
El módulo del convertidor A/D puede seleccionar como tensión de referencia la interna, es decir entre VDD y masa o bien una externa que se introduzca entre RA3/AN3/ VREF+ y RA2/AN2/VREF-.
La máxima tensión aplicada a la patilla VREF+ (RA3/AN3) podrá ser de VDD+0,3V y la mínima de VDD- 2,5V. En cuanto a la tensión VREF- (RA2/AN2) la mínima tensión será VSS-0,3V y la máxima VREF+ - 2V, así por ejemplo, si la tensión de alimentación es de 5V, la tensión en RA3/AN3 no podrá exceder de 5V.
Por lo que la máxima tensión en la VREF- será de 3V. Siempre se ha de cumplir que VREF+ - VREF - ≤2V.
13/04/2023Arquitectura de Sistemas Microprocesados
208
Registros en ADC El módulo conversor A/D tiene asociados cuatro
registros: ADRESH : Parte alta del resultado de la conversión ADRESL : Parte baja del resultado de la conversión ADCON0: Registro de Control 0 ADCON1, Registro de Control 1
Los pines del PORTA pueden configurarse como entradas analógicas (RA, también puede ser entrada de tensión de referencia) o como E/S digital.
Los registros ADRESH: ADRESL contienen los 10 bits resultado de la conversión A/D. Cuando se completa la conversión A/D, el resultado se guarda en los registros ADRESH:ADRESL y se pone a cero el bit GO/DONE y el flag de fin de conversión ADIF (PIR1<6>) se pone a 1.
13/04/2023Arquitectura de Sistemas Microprocesados
209
Proceso módulo ADC
1. Configurar el módulo conversor A/D:1. Configurar los pines que actúan como entradas
analógicas, las señales que harán de tensión de referencia la que trabajarán como E/S digitales (ADDCON1)
2. Seleccionar el canal de entrada A/D (ADCON0).3. Seleccionar la fuente de la señal de reloj para la
conversión A/D (ADCON0).4. Activar el módulo de conversión A/D (ADCON0)
2. Activar si, se desea, la interrupción del módulo conversor A/D
1. Poner a cero el bit ADIF2. Poner a uno el bit ADIE3. Poner a uno los bits habilitadores GIE y PEIE
3. Esperar el tiempo requerido para la adquisición
13/04/2023Arquitectura de Sistemas Microprocesados
210
Proceso módulo ADC1. Inicio de la conversión
1. Poner a 1 el bit GO/#DONE (ADCON0)
2. Tiempo de espera para terminar la conversión A/D que puede detectarse por:
1. Exploración de bit GO/#DONE , que al finalizar la conversión toma el valor "0"
2. Esperar que se produzca una interrupción si se ha programado al finalizar la conversión.
13/04/2023Arquitectura de Sistemas Microprocesados
211
Librería ADC en MIKROC unsigned int ADC_Read(unsigned short
channel); Inicializa el módulo A/D para operar con el
oscilador interno RC. Retorna un número de 10 bits como resultado
de la conversión.
13/04/2023Arquitectura de Sistemas Microprocesados
212
Ejemplo: Lectura de voltaje. Se mide el
voltaje de una fuente de DC y se presenta su valor en LCD
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD 40RB6/PGC 39
RB5 38RB4 37
RB3/PGM 36RB2 35RB1 34
RB0/INT 33
RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21
RC7/RX/DT 26RC6/TX/CK 25
RC5/SDO 24RC4/SDI/SDA 23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV1
U2
PIC16F877A
R1
10k
R220kBAT1
3.5V
VT(15V max)
13/04/2023Arquitectura de Sistemas Microprocesados
213
Actividad 13: Interconexión con sensores
Objetivo: analizar el funcionamiento de sensores mediante la comunicación con PIC en lenguaje lo que permitirá el desarrollo de aplicaciones de control básicas
Reflexión: ¿Qué variables físicas se pueden medir? ¿Cómo se pueden medir estas variables? ¿Cómo se comunican con microcontrolador?
13/04/2023Arquitectura de Sistemas Microprocesados
214
Entorno de desarrollo con sensores
13/04/2023Arquitectura de Sistemas Microprocesados
215
Sensor de temperatura LM35 Es un dispositivo activo de
3 terminales que permite adquirir la temperatura ambiente en rangos de -55° a 150°
Es de fácil implementación dado que solo cuenta con dos terminales de polarización, y una salida de voltaje directamente proporcional a la temperatura.
Este sensor puede ser polarizado de 4 a 30 voltios y tiene una salida de 10m voltios por cada grado Celsius.
13/04/2023Arquitectura de Sistemas Microprocesados
216
Sensor de temperatura Para realizar la lectura del voltaje de salida del
sensor se implementa en el microcontrolador el módulo ADC. La máxima salida del sensor es 1,5 voltios, cuando la temperatura es 150 grados Celsius. Por esto es importante cambiar el valor de referencia positiva del convertidor análogo digital, con el fin de mejorar la resolución de la medida de voltaje. Para el ejemplo de este capítulo se configurará el voltaje de referencia positivo del ADC, en 2,5 voltios.
13/04/2023Arquitectura de Sistemas Microprocesados
217
Sensor de temperatura Cambiando la referencia
positiva a 2,5 voltios el convertidor entregará un resultado binario de 1023 cuando el voltaje a convertir es de 2,5 voltios. Para el caso de este sensor, se verá definido por las siguientes relaciones:
Donde Radc es el resultado binario de la conversión AD. De está ecuación se puede deducir que el voltaje Vadc, leído por el convertidor AD, es:
13/04/2023Arquitectura de Sistemas Microprocesados
218
Sensor de temperatura Trabajando con la relación
del sensor que es: 10m voltios por cada grado Celsius, se puede plantear la siguiente ecuación:
Donde n es la temperatura en grados Celsius, que está registrando el sensor, de está ecuación se puede deducir que la temperatura n es:
Obtenemos la ecuación:
13/04/2023Arquitectura de Sistemas Microprocesados
219
Simulación de sensor de temperatura
13/04/2023Arquitectura de Sistemas Microprocesados
220
Actividad 14: Sensores de distancia Objetivo: Caracterizar el funcionamiento de
sensores de distancia mediante el tratamiento de algoritmos para detección de mediciones provenientes de estos sensores para su futura aplicación en medición de distancias
13/04/2023Arquitectura de Sistemas Microprocesados
221
Sensores de distancia: Infrarrojos Permiten medir una longitud desde el punto
de ubicación del sensor hasta un obstáculo puesto en un punto dentro del rango de trabajo del sensor.
Con un rango de 3 centímetros a 3.3 metros, es una atracción para cualquier elemento robótico y proyectos de automatización.
Sensor GP2D12, este dispositivo usa un rayo de luz infrarroja y su reflejo para determinar la longitud.
13/04/2023Arquitectura de Sistemas Microprocesados
222
Sensor Infrarrojo GP2D12 Descripción física y PINOUT
13/04/2023Arquitectura de Sistemas Microprocesados
223
Sensor Infrarrojo GP2D12 Este tipo de sensores
cuentan con un comportamiento no lineal, esto quiere decir que la salida no obedece a una función de transferencia lineal.
Se realiza una interpolación con una cantidad finita de puntos conocidos de la función.
13/04/2023Arquitectura de Sistemas Microprocesados
224
Sensor Infrarrojo GP2D12 Ejemplo de medición: Tenemos y es distancia,
x voltaje del sensor.
Escogemos dos puntos donde la función se aproxime a la escogida.
Resolvemos el sistema con los valores de las constantes: A = 34,76546392 B = -4,793814433
13/04/2023Arquitectura de Sistemas Microprocesados
225
Sensor Infrarrojo GP2D12
Parametrizar la función:
x representa el voltaje de salida del sensor que no supera 2,5 voltios, la referencia del convertidor AD, se puede ajustar
Remplazando x por Vad:
13/04/2023Arquitectura de Sistemas Microprocesados
226
Sensor Infrarrojo GP2D12
13/04/2023Arquitectura de Sistemas Microprocesados
227
El Sensor Ultrasónico de Distancia
13/04/2023Arquitectura de Sistemas Microprocesados
228
Sensor Ultrasónico de Distancia PING El sensor envía un breve silbido con su altavoz
ultrasónico y mide el tiempo de regreso del eco a su micrófono ultrasónico.
El PIC empieza enviándole un pulso para iniciar la medición. Luego, el sensor espera lo suficiente para que el programa del PIC inicie un comando de lectura de Pulso. Entonces, al mismo tiempo que silba un tono de 40 kHz, le envía una señal alta al PIC. Cuando detecta el eco con su micrófono ultrasónico, cambia la señal alta de regreso a señal baja.
13/04/2023Arquitectura de Sistemas Microprocesados
229
Sensor Ultrasónico de Distancia PING
13/04/2023Arquitectura de Sistemas Microprocesados
230
Actividad 16: Actuadores y potencia
Objetivos: Describir funcionamiento de dispositivos
de potencia, mediante conexión de componentes eléctricos de carga a microcontrolador.
Los actuadores son dispositivos eléctricos o electrónicos que permiten crear un cambio físico sobre una variable. Está pueden ser temperatura, velocidad, presión, luminosidad, humedad, posición angular o lineal, entre otras.
Los actuadores DC, son aquellos como motores, servomotores, lámparas incandescentes, solenoides, relevadores, entre otros.
13/04/2023Arquitectura de Sistemas Microprocesados
231
Relevadores Son dispositivos
electromecánicos, que tienen un electroimán con el cual se cierra o se abre un circuito eléctrico por medio de uno o varios contactos.
Los relevadores son ideales para aislar los circuitos de potencia con la etapa de control electrónico.
Bajo rendimiento, dado que no pueden hacer cambios de estado veloces, y con el uso constante los contactos eléctricos se deterioran con el tiempo.
13/04/2023Arquitectura de Sistemas Microprocesados
232
Uso de relevadores con uC PIC
13/04/2023Arquitectura de Sistemas Microprocesados
233
Uso de relevadores con uC PIC Opto acopladores:
13/04/2023Arquitectura de Sistemas Microprocesados
234
Motores DC Permiten movimiento a través de cargas
inductivas. Podemos controlar velocidad.
Velocidad mediante PWM
13/04/2023Arquitectura de Sistemas Microprocesados
235
Conexión PIC a motor DC
13/04/2023Arquitectura de Sistemas Microprocesados
236
Motores DC Sentido de giro:
Mediante puente H
13/04/2023Arquitectura de Sistemas Microprocesados
237
Motores paso a paso Se componen de varias bobinas lo que
permite un control en el giro correspondiente al número de paso de activación
Se requiere activar un secuencia en las entradas de las bobinas.
Control desde 1,8° o menos.
13/04/2023Arquitectura de Sistemas Microprocesados
238
Tipos de motores PAP
13/04/2023Arquitectura de Sistemas Microprocesados
239
Secuencias en motores PAP (STEPPER)
13/04/2023Arquitectura de Sistemas Microprocesados
240
Conexión PIC a motor PAP
13/04/2023Arquitectura de Sistemas Microprocesados
241
Conexión PIC a motor PAP
13/04/2023Arquitectura de Sistemas Microprocesados
242
Motores Servo Son sistemas integrados que tienen un control
de posición angular, y un sistema mecánico de piñones para ofrecer mayor fuerza pero menor velocidad.
Un servomotor tiene incorporado un control de posición angular, que puede ser gobernado por medio de una señal PWM, cuentan con un terminal de tres pines para la alimentación, la referencia y la señal de control PWM.
13/04/2023Arquitectura de Sistemas Microprocesados
243
Conexión PIC a servomotor
13/04/2023Arquitectura de Sistemas Microprocesados
244
PROGRAMACIÓN GRÁFICA DE MICROCONTROLADORES
Microcontroladores: Ing. Víctor Medina G
245
Para qué sirven los diagramas de flujo
El diagrama de flujo es la representación gráfica del algoritmo o proceso.
Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva.
Microcontroladores: Ing. Víctor Medina G
246
Definición Es una representación gráfica
que desglosa un proceso en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de servicios y en sus departamentos, secciones u áreas de su estructura organizativa.
Se trata de una muy útil herramienta para poder entender correctamente las diferentes fases de cualquier proceso y su funcionamiento, por tanto, permite comprenderlo y estudiarlo para tratar de mejorar sus procedimientos.
Microcontroladores: Ing. Víctor Medina G
247
Ventajas Ventajas de los Diagramas de Flujo
Favorecen la comprensión del proceso a través de mostrarlo como un dibujo.
Un buen diagrama de flujo remplaza varias páginas de texto.
Permiten identificar los problemas y las oportunidades de mejora del proceso.
Se identifican los pasos redundantes, los flujos de los re procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
ESTRUCTURA DE PROGRAMA EN MODO GRÁFICO
Permite programar microcontroladores mediante diagramas de flujo, que se traducen en código C o ASSEMBLER
Microcontroladores: Ing. Víctor Medina G
248
13/04/2023Arquitectura de Sistemas Microprocesados
249
Plan de trabajo modo gráfico
13/04/2023Arquitectura de Sistemas Microprocesados
250
Plan de trabajo modo gráfico Diseño del programa fuente. Escogiendo y arrastrando los
diferentes iconos de comandos disponibles, vamos dibujando el organigrama o diagrama de flujo de nuestra aplicación. Podemos ajustar los diferentes parámetros y propiedades asociados a ellos.
Diseño del sistema. Dispone de una gran variedad de periféricos típicos como leds, interruptores, pantallas LCD, etc.
Simulación del programa. Podemos ejecutar el programa paso a paso, icono a icono, analizar los resultados obtenidos sobre los componentes del sistema, editar y/o visualizar las variables del programa o ejecutar la simulación en tiempo real.
Descargar y grabar el microcontrolador. Con un único botón podemos compilar, ensamblar y grabar el programa ejecutable obtenido sobre la memoria física del microcontrolador.
Actividad 19: ENTORNO DE TRABAJO FLOWCODE
Microcontroladores: Ing. Víctor Medina G
251
13/04/2023Arquitectura de Sistemas Microprocesados
252
Herramientas en FLOWCODE Herramientas de ingreso Permite ejecutar tareas relacionadas
con la adquisición de datos procedentes de los Puertos del controlador.
En el campo “Variable” indicamos en qué variable se va a guardar el valor leído desde el Puerto de entrada.
Podremos crear, editar y borrar variables de 8 bits, de 16, de cadenas ASCII o strings y variables para almacenar números en coma flotante.
La lectura de un Puerto de entrada puede hacerse a nivel de un bit único o a nivel del puerto completo.
Lectura enmascarada, es decir qué bits de ese puerto son los que nos interesa leer. En el ejemplo se leen los bits 0,2 y 3 del Puerto A.
13/04/2023Arquitectura de Sistemas Microprocesados
253
Herramienta de salida Permite ejecutar operaciones
relacionadas con los Puertos de salida del controlador.
En “Mostrar Nombre” podemos añadir el comentario deseado. En el campo “Variable o Valor” introducimos directamente el valor de salida o bien el nombre de la variable que contiene el valor que deseamos sacar.
Mediante el campo “Puerto” se selecciona el puerto de salida, la escritura se puede realizar a nivel de bit único o a nivel de Puerto completo.
13/04/2023Arquitectura de Sistemas Microprocesados
254
Herramienta de temporización Permite realizar todo tipo de
temporizaciones basadas en la frecuencia de trabajo del sistema que hemos seleccionado mediante las opciones del proyecto.
En el campo “Mostrar Nombre”, podemos incluir un comentario. En el campo “Tiempo de Demora o Variable” introducimos el valor a temporizar.
Este valor se puede indicar directamente, o bien indicando el nombre de la variable que lo contiene.
13/04/2023Arquitectura de Sistemas Microprocesados
255
Herramienta de decisión Se trata de la clásica toma de
decisiones. Se realiza una determinada evaluación y, en función del resultado, el flujo del programa va por un camino o por otro. En el campo “En Caso de Que” se establece la condición.
Esto es equivalente a evaluar si la línea RA0 de la puerta A está a nivel lógico “1” o no. En caso afirmativo, el curso de la ejecución se desvía por la derecha. En caso contrario la ejecución continúa su curso.
Podemos activar (o no) el campo “Intercambiar Si y No”. En este caso el desvío del curso de la ejecución se produce si NO se da la condición establecida.
13/04/2023Arquitectura de Sistemas Microprocesados
256
Herramienta de decisión Las condiciones pueden estar formadas por
números y/o variables y uno de los siguientes operadores: ( ) Paréntesis =, <> Igual a, diferente a. +, -, *, /, MOD Adición, sustracción, multiplicación,
división y módulo. <, <=, >, >= Menor que, menor que o igual a,
mayor que, mayor que o igual a. >>, << Desplazamiento a la derecha,
desplazamiento a la izquierda. NOT, AND, OR, XOR Funciones lógicas: NOT, AND,
OR u OR exclusiva
13/04/2023Arquitectura de Sistemas Microprocesados
257
Herramientas de decisión múltiple En este caso se pueden evaluar hasta once posibles
condiciones. Resultan especialmente útiles a la hora de personalizar el programa para que reaccione de formas diferentes basándose en una variable de entrada.
En el campo “Expresión” se indica el nombre de la variable cuyo contenido se desea evaluar, “Entradas” en el ejemplo. Los campos “Caso”, cuando se activan, permiten determinar con qué valores hay que comparar el contenido de la variable “Entradas”: 1, 4, 2 o 7. Cuando coincide uno de ellos, el flujo de ejecución del programa toma un camino u otro. Si no coincide con ninguno, la ejecución sigue su curso.
13/04/2023Arquitectura de Sistemas Microprocesados
258
Herramientas de decisión múltiple
13/04/2023Arquitectura de Sistemas Microprocesados
259
Herramienta punto de conexión Permite establecer el punto de conexión de
destino al que debe dirigirse el flujo del programa.
En el campo “Ir a Punto de Conexión” asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta “Bucle”.
13/04/2023Arquitectura de Sistemas Microprocesados
260
Herramienta ir a punto de conexión
Esta herramienta se emplea junto con la anterior. Permite establecer el punto de conexión de destino al que debe dirigirse el flujo del programa.
En el campo “Ir a Punto de Conexión” asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta “Bucle”
13/04/2023Arquitectura de Sistemas Microprocesados
261
Herramienta punto de conexión
13/04/2023Arquitectura de Sistemas Microprocesados
262
Herramienta Bucle Esta herramienta de Bucle se emplea para repetir
una tarea, bien de forma incondicional o indefinida, o bien hasta que se cumplan las condiciones indicadas. Esta herramienta siempre se muestra como dos iconos, uno de inicio y otro de final, donde se alojan los comandos de programa que forman el bucle.
13/04/2023Arquitectura de Sistemas Microprocesados
263
Herramienta Bucle Los comandos encerrados dentro de un
bucle se pueden ejecutar mientras se produzca una condición (“Bucle Mientras”) o hasta que se produzca esa condición (“Bucle Hasta”).
En el momento en que se cumpla esta condición, el bucle finaliza y el flujo del programa reanuda su curso.
Las condiciones se pueden evaluar y comprobar si se cumplen, al “Principio” del bucle o al “Final” del mismo. Los comandos o instrucciones que componen un bucle también se pueden ejecutar un número determinado de veces. Para ello, activamos e indicamos en el campo “Recuento de bucle”, el número de veces deseado (entre 1 y 255).
13/04/2023Arquitectura de Sistemas Microprocesados
264
Herramienta MACRO Una macro es una función o una
subrutina, que está compuesta de cualquiera de los comandos o iconos disponibles y/o también de otras macros.
En el campo “Mostrar Nombre” podemos escribir un comentario. En el campo “Macro” podemos ver una lista con todas las macros disponibles. Seleccionamos la que necesitemos en un momento dado.
Mediante el botón “Crear Nuevo Macro” accedemos a una ventana que nos permite definir una nueva Macro. Con el botón “OK&Editar Macro” podemos editar una Macro. Es decir, describir los componentes que debe ejecutar para realizar una determinada tarea.
13/04/2023Arquitectura de Sistemas Microprocesados
265
Herramienta MACRO de componentes
FlowCode incluye una serie de componentes o periféricos con los que podemos construir, para su simulación, el circuito eléctrico de nuestra aplicación. Estos componentes se colocan en el “Panel de Montaje”, en donde se establecen sus propiedades y conexiones con el controlador. Cada componente tiene asociadas, según sus características, un número determinado de funciones o Macros para su control.
Cuando empleamos la herramienta “Macro de Componentes” y hacemos doble clic sobre ella, aparece una ventana de propiedades. En ella disponemos de un listado con todos los componentes que hubiera en ese momento en el panel de montaje y accedemos a todas las funciones asociadas a los mismos. En la figura, vemos que hay dos componentes: un interruptor SWITCH(0) y un led LED(0). Al seleccionar por ejemplo, el
SWITCH(0), a la derecha, en la ventana “Macro”, aparecen las funciones a él asociadas. Hay tres:
LeerEstado. Lee el estado de la línea de entrada a la que está conectado el SWITCH(0) y los deposita en la variable de retorno que se indica en el campo “Valor de Retorno(BYTE)”.
2. EsperarHastaAlto. Espera a que la línea de entrada a la que está conectado el SWITCH(0) se ponga a nivel “1”. En este momento finaliza la Macro o función, que no retorna ningún valor.
3. EsperarHastaBajo. Espera a que la línea de entrada a la que está conectado el SWITCH(0) se ponga a nivel “0”. En este momento finaliza la Macro o función, que no retorna ningún valor.
13/04/2023Arquitectura de Sistemas Microprocesados
266
Herramienta MACRO de componentes
13/04/2023Arquitectura de Sistemas Microprocesados
267
Herramienta de cálculo Permite insertar operaciones
lógico/aritméticas en nuestros programas. En el campo “Mostrar Nombre” podemos escribir el comentario que deseemos. En el campo “Cálculos” describimos los cálculos a realizar.
El botón “Variables” nos abre una ventana donde podemos crear, editar, borrar y seleccionar distintas variables. Con el botón “Funciones” accedemos a todas las funciones lógico/ aritméticas disponibles.
13/04/2023Arquitectura de Sistemas Microprocesados
268
Herramienta secuencia La herramienta de
Manipulación de Secuencia permite manipular y operar con cadenas
de caracteres ASCII. En el campo “Funciones de”
editamos las operaciones a realizar con una o varias cadenas de caracteres.
El botón “Variables” nos permite crear, borrar, editar o usar variables de secuencia o cadenas. El botón “Funciones” nos presenta una lista con todas las funciones disponibles para el manejo de secuencias o cadenas de caracteres.
13/04/2023Arquitectura de Sistemas Microprocesados
269
Herramienta interrupción FlowCode 4 también soporta la activación/desactivación de
algunas de las interrupciones más relevantes del microcontrolador seleccionado. Aunque no están disponibles todas las que tiene el controlador, si están las más representativas.
Con el botón “Propiedades” se selecciona el evento deseado para esa interrupción. Por ejemplo, en el caso de la interrupción externa INT, podemos seleccionar el flanco ascendente o descendente.
En el campo “Llamará al Macro” se indica qué Macro o función se debe ejecutar cada vez que se produzca la interrupción. Con el botón “Crear Nuevo Macro” creamos una nueva función.
Con el botón “OK & Editar Macro” editamos el contenido de la Macro. Es decir, dibujamos el organigrama de tareas que esa Macro debe ejecutar. El funcionamiento es muy similar al empleado en la herramienta de componente “Macro”.
13/04/2023Arquitectura de Sistemas Microprocesados
270
Herramienta interrupción
13/04/2023Arquitectura de Sistemas Microprocesados
271
Herramienta código C Puede haber casos en que el lenguaje como tal no pueda
realizar ciertas tareas. Por ello, este tipo de lenguajes siempre tienen una puerta abierta que nos permita insertar nuestro propio código fuente en C o en ensamblador, para resolver aquellas tareas que FlowCode no pueda realizar directamente. Disponemos así de la herramienta Código C.
13/04/2023Arquitectura de Sistemas Microprocesados
272
Macros de Periféricos Comunes:
Led. Coloca un led en el panel de montaje.
LEDarray. Coloca una barra de hasta ocho diodos leds.
SWITCHbank. Coloca un banco de hasta ocho interruptores.
SWITCH. Interruptor sencillo.
ADC. Coloca un potenciómetro para emular una entrada analógica.
LCDDisplay. Inserta una pantalla LCD alfanumérica.
13/04/2023Arquitectura de Sistemas Microprocesados
273
Macros de Periféricos Entradas:
KeyPad. Teclado matricial de hasta 4 x 4.
SWITCHbank. Coloca un banco de hasta ocho interruptores.
SWITCH. Interruptor sencillo
ADC. Coloca un potenciómetro para emular una entrada analógica.
13/04/2023Arquitectura de Sistemas Microprocesados
274
Macros de Periféricos Salidas: Led7seg. Coloca el
clásico display de 7 segmentos con punto decimal.
Led. Coloca un led en el panel de montaje.
LEDarray. Coloca una barra de hasta ocho diodos leds.
GLCD. Pantalla gráfica. LCD Display. Inserta una
pantalla LCD alfanumérica.
Led7seg4. Inserta un conjunto de 4 displays de 7 segmentos conectados en paralelo.
13/04/2023Arquitectura de Sistemas Microprocesados
275
Macros de Periféricos Comunicaciones: LinMaster: Uso de Macros y
funciones que implementan el protocolo Lin en modo Master para la transferencia de datos.
SPI_Legacy: Protocolo SPI para la transferencia de datos.
One_Wire: Protocolo One_Wire para la transferencia de datos.
I2C_Master. Protocolo I2C en el modo Master para la transferencia de datos.
CAN2: Protocolo CAN2. RS232: Estándar RS232 para la
transferencia de datos. Lin_Slave. Protocolo Lin en modo
Slave para la transferencia de datos. CAN: Protocolo CAN.
13/04/2023Arquitectura de Sistemas Microprocesados
276
Macros de Periféricos WIRELESS
IrDA Comunicación mediante infrarrojos.
RFID. Identificación por radiofrecuencia.
Zigbee. Comunicación por radiofrecuencia según el protocolo Zigbee
Bluetooth. Comunicación por radiofrecuencia según el protocolo Bluetooth.
13/04/2023Arquitectura de Sistemas Microprocesados
277
Macros de Periféricos Periféricos USBSerial: Dispositivo USB para la
comunicación serie. TCP_IP: Transferencia de datos según el
estándar TCP_IP. USBHID: Dispositivo USB como
dispositivo de interface humano (HID). MIDI: Comunicación en tiempo real
entre diferentes dispositivos como controladores musicales o instrumentos.
FAT16: Diseñado para usarse junto con tarjetas de memoria MMC/SD para configurar el sistema de localización de archivos (FAT) y empleo de los mismos.
WebServer: Podemos diseñar aplicaciones basadas en servicios de páginas web.
USBSlave: Dispositivo USB esclavo.
13/04/2023Arquitectura de Sistemas Microprocesados
278
Macros de Periféricos MECHATRONICS
Stepper. Para la simulación de aplicaciones que controlan un motor paso a paso
PWM. Componente cuyas Macros o funciones podemos emplear para generar y visualizar señales
PWM moduladas en anchura. Speech. Permite el diseño
de aplicaciones con síntesis de voz.
Servo. Para la simulación de aplicaciones que controlan un servo motor
13/04/2023Arquitectura de Sistemas Microprocesados
279
Consideraciones previas al diseño con microcontroladores
13/04/2023Arquitectura de Sistemas Microprocesados
280
Solucionar problemas con uso de TIC´s
Diseño de aplicaciones con microcontroladores
Interpretar y formular el problema Diseñar una solución Identificar los recursos para obtener la
solución. Organizarnos como equipo de trabajo Programar las tareas para llevar a
cabo la solución Ejecutar la solución Evaluar la solución Presentar la Solución
Microcontroladores281
13/04/2023Arquitectura de Sistemas Microprocesados
282
Análisis Funcional - Estructural Analizar:
Descomposición mental del objeto de estudio en sus partes integrantes, con el objetivo de relevar su composición y estructura así como su descomposición en elementos más simples.
13/04/2023Arquitectura de Sistemas Microprocesados
283
Análisis Funcional - Estructural Dado que los productos de la tecnología
pueden ser bienes (objetos), procesos o servicios, el análisis de productos revestirá distintas formas según sea el tipo de producto a analizar.
Un producto puede ser sujeto a diferentes tipos de análisis, como el análisis morfológico, funcional, estructural, de funcionamiento, económico, tecnológico, comparativo, relacional, del surgimiento y evolución histórica del producto.
13/04/2023Arquitectura de Sistemas Microprocesados
284
Análisis Funcional - Estructural Las diversas etapas del método de análisis
surgen como respuesta a interrogantes que normalmente un observador crítico se plantearía frente a los objetos en general y a un objeto en particular. La secuenciación de las etapas no será estrictamente lineal, sino que habrá idas y vueltas. En muchos casos el proceso será recursivo y se planteará la necesidad de reconsiderar etapas ya tratadas.
13/04/2023Arquitectura de Sistemas Microprocesados
285
Fases del método Fase de reconocimiento y análisis del
problema, necesidad o situación El análisis del problema se centra en plantear los
interrogantes cuyas respuestas se buscarán a lo largo del proceso de análisis. Algunos de lo interrogantes que se pueden plantear, teniendo en cuenta las características del producto (que puede ser tangible o intangible), los objetivos buscados y lo que se intenta priorizar.
Fase de síntesis Análisis del producto donde se hace una descripción más
precisa de los elementos que lo componen Fase de conclusión
Análisis de las relaciones del producto con su entorno, con la estructura sociocultural.
13/04/2023Arquitectura de Sistemas Microprocesados
286
Análisis Funcional - Estructural Análisis funcional Está centrado en la función que cumple el objeto. Se llama
función a la manera en que el objeto cumple el propósito para el cual fue concebido y construido.
Debemos analizar el repertorio de funciones elementales que el objeto debe cumplir para satisfacer los requerimientos que motivaron su creación (especificaciones).
Análisis estructural Se busca reconocer la estructura del objeto (modo en que están
dispuestas las partes), confeccionar el listado de componentes, determinar la misión de cada uno y las relaciones entre ellos.
La estructura formal (relaciones descripciones vinculadas a la forma del objeto) no se obtiene de la simple captación sensorial, sino que es una construcción intelectual del observador, resultado de un análisis y de una búsqueda de las relaciones entre las partes de ese todo que es el objeto.
Consideraciones previas PIC
Análisis de entradas y salidas.
Condiciones de trabajo del sistema Lugar de
emplazamiento: Interno, externo
Modos de operación: Manual, automático,
semiautomático Maniobras de operación:
Sensores, controladores y actuadores
Microcontroladores287
13/04/2023Arquitectura de Sistemas Microprocesados
288
Ejemplo de evaluación a discapacitado
Selección de componentes:
Inversión del sistema Arquitectura del sistema
propuesto Cableado, inalámbrico
Tecnología de componente TTL, CMOS
Selección de controlador: PIC, ATMEL, INTEL
Sensores e interfaces en entradas
Actuadores y controladores en salidas
Microcontroladores289
13/04/2023Arquitectura de Sistemas Microprocesados
290
Ejemplo de selección de componentes
Se propone diseñar el modelo de estación remota de control de indicadores en una estación minera, con las siguientes condiciones:• Se medirán gases en el aire, minerales en fuentes de agua y
temperatura en los trayectos de mina• Los datos serán almacenados en una micro SD• Todos los días a la misma hora en medianoche, los datos son
enviados vía red GSM a un servidor central en Guayaquil con BACKUP en QUITO.
• Estos datos se almacenan en documento de texto para ser revisados por el supervisor regional al día siguiente.
• La plataforma de servicio debe ser OPEN SOURCE
Se armarán grupos de 3 estudiantes para proponer el modelo de la estación remota.Tendrán el siguiente puntaje• 3 puntos, al definir los sensores que se van a utilizar• 3 puntos si definen el sistema de subida de datos y
especificaciones del servidor central y BACKUP• 4 puntos si definen la plataforma de servicio y SOFTWARE
de tratamiento de datos
13/04/2023Arquitectura de Sistemas Microprocesados
291
Aplicaciones GSM - PIC