Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Sesión 5: Gestión de Puertos
2
Agenda 1 2 3 4 5 6 Introducción PIC en el lenguaje C
Operadores Repaso de los operadores del lenguaje C Directivas del Preprocesador como Elementos necesarios del lenguaje C 3 4 Memoria Distribución de la memoria RAM del PIC16F887 5 Gestión de Puertos Conceptos generales sobre la gestión de puertos 6 Gestión a través de la RAM Definición de etiquetas para la manipulación de los registros
3
A continuación… Introducción Introducción Operadores (Repaso)
Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM
4
Introducción El estudiante adquiere las habilidades requeridas para trabajo en usando Sistemas Embebidos. MOTOR DC ADC CPU PWM IRQ UART IRQ P Frecuencia? TIM Memoria I2C MCUs
5
Introducción Los dispositivos electrónicos
Celulares. Reproductores MP3/MP4. Memorias USB. Unidades de DVD. XBOX, PS1/2/3. Periféricos de un PC. Son ejemplos de Sistemas Embebidos Involucran: Hardware, Software y/o Firmware.
6
Actuadores, periféricos
Introducción Sistema Embebido Sistema Electrónico. Unidad de Procesamiento. Desarrolla una o varias tareas específicas. No se concibe como un ordenador/computador Usos muy diferentes. Precio y Consumo. Aplicaciones de Tiempo Real. Entradas Sensores, periféricos Procesamiento Tiempo real Salidas Actuadores, periféricos
7
Sistemas Embebidos Sistema para el procesamiento de información que está incrustado dentro de otros sistemas. Carros. Equipos de Telecomunicación. Electrónica de consumo y más… Características Principales Limitantes de Tiempo Real. Requerimientos de fiabilidad y eficiencia.
8
Evolución de la computación
Importancia Los Sistemas Embebidos son considerados las aplicaciones más importantes del área de tecnología de información para los años venideros. Relación directa con el término la era Post-PC. Los computadores tradicionales no dominarán más. Procesadores y Software en sistemas muy pequeños. Sistemas invisibles Desaparece el Computador como lo conocemos. Al estar en todas partes, se vuelve algo tan común que ni siquiera nos preguntamos si existe!!!
9
Evolución de la computación
Los sistemas embebidos Proveer información en cualquiera lugar, en cualquier momento debido a que: Los computadores se vuelven parte del ambiente. Funcionan de manera autónoma y discreta. La idea principal, sistemas en todas partes, a todo momento, que el uso de los sistemas sea realmente transparente para el usuario!!!
10
Características generales
Características de los Sistemas Embebidos Sistemas Embebidos Sistema de Procesamiento de Información. Está embebido en un producto más grande. Normalmente no es visible por el usuario. Interactúan con el entorno. Conexión con el Entorno Sensores: Recolectan información del entorno. Actuadores: Controlando el entorno. Entradas Sensores, periféricos Procesamiento Tiempo real Salidas Actuadores, periféricos
11
Características generales
Características de los Sistemas Embebidos Fiabilidad: Alta probabilidad de que el sistema no tenga fallos. Mantenimiento: Alta probabilidad de que un fallo en el sistema pueda corregirse en un tiempo prudente. Disponibilidad: Alta probabilidad de que el sistema esté disponible. Depende de los anteriores. Sistema Seguro (safety): Propiedad de no producir daños en caso de un fallo. Seguridad con la info. (security): Confidencialidad con la información.
12
Características generales
Características de los Sistemas Embebidos Uso de periféricos particulares Normalmente: sin teclado, sin mouse, sin discos duros, sin grandes pantallas. Interfaces de Entrada/Salida: Botones o pulsadores, teclados matriciales, displays de 7 segmentos y LCDs, joysticks, pedales, entre otros. Sistemas Híbridos Sistemas Análogos y Sistemas Digitales. ENTORNO Actuadores (Análogo) Sensores (Análogo)
13
Características generales
Características de los Sistemas Embebidos Operación en ambientes hostiles. Energía y consumo de potencia. Tamaño del firmware. Eficiencia en tiempo de Ejecución. Peso y Costo.
14
Aplicaciones AUTOMOTRIZ TELECO MCUs CONSUMO S. MÉDICOS
Frenos. Motor. Aire acondicionado. Marchas. Control Tracción. TELECO Comunic. Industrtrial. Domotica. Redes Sistemas GPS MCUs CONSUMO Lavadoras. Neveras. Microondas. Relojes. Video Juegos. Cámaras de Video. S. MÉDICOS Marcapasos. ECG. Diálisis. Fiabilidad 100%.
15
Introducción Programación PICs mediante lenguaje de alto nivel:
Si queremos realizar la programación de los microcontroladores PIC en un lenguaje como el C, es preciso utilizar un compilador de C. 10101 11110 00011 Compilador
16
Introducción Entorno de desarrollo:
Compilador en un entorno de desarrollo integrado (IDE) Nos va a permitir desarrollar todas y cada una de las fases que se compone un proyecto Edición Compilación Depuración de errores.
17
A continuación… Introducción Operadores (Repaso) Operadores (Repaso)
Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM
18
Operadores Operadores de asignación
Una expresión de asignación tradicional es de la forma: expr1 = expr2 operador expr3; expr1 operador=expr2; Operador Descripción += Asignación de suma -= Asignación de resta *= Asignación de multiplicación /= Asignación de división %= Asignación de módulo <<= Desplazamiento izquierda >>= Desplazamiento Derecha
19
Operadores Operadores de aritméticos
Los operadores aritméticos se usan para realizar operaciones matemáticas Operador Descripción Ejemplo + Suma result = var + var - Resta result = var - var * Multiplicación result = var * var / División result = var / var % Módulo result = var % var
20
Operadores Operadores de lógicos
Al igual que los operadores relacionales, éstos devuelven 1 (verdadero), 0 (falso) tras la evaluación de sus operandos Operador Descripción ! NO lógico && Y lógico || O lógico
21
Operadores Operadores de incremento y decremento
Pueden formar parte del grupo de operadores de asignación En ambos casos existen el pre y el pos: Preincremento – Posincremento Predecremento – Posdecremento Operador Descripción ++ Incremento -- Decremento
22
Operadores Operadores Relaciones
Su misión es comparar dos operandos y dar un resultado entero: 1 (verdadero); 0 (falso). Operador Descripción < Menor que > Mayor que <= Menor igual que >= Mayor igual que == Igual a != Diferente de
23
Operadores Operadores de dirección e indirección
Los operadores & y * se utilizan para trabajar con punteros. Un puntero es una variable que contiene la dirección de una variable o de una función Operador Descripción & Dirección * Indirección
24
A continuación… Introducción Operadores (Repaso)
Directivas del preprocesador Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM
25
Directivas del Preprocesador
comienzan con el símbolo # y continúan con un comando específico. La sintaxis depende del comando Muchas de las directivas utilizadas por CCS son extensiones del C estándar Estandar Cualificadores Identificadores RTOS Especificación de dispositivos Librerías predefinidas Control de memoria Control de compilador.
26
Directivas del Preprocesador
Estándar C #define #if #else #ifndef #ifdef #endif #include #list #error Cualificadores #inline #int_global #separate #int_default #int_xxx Identificadores __DATE__ __LINE__ __PCH__ __FILE__ __PCB__ __TIME__ __DEVICE__ __PCM__ __FILENAME__ RTOS #task #use Especificación de dispositivos #device #ID #fuses #serialize Librerias Predefinidas #use delay (clock) #use fixed_io #use fast_io #use I2C #use RS232 #use SPI #use standard_io Control de Memoria #asm #endasm #byte #bit #type #build #fill_rom #zero_ram #locate #reserve Control de Compilador #case #opt #priority #org #ignore_warnings
27
Directivas del Preprocesador
Estándar Son las directivas propias del lenguaje C, aceptadas por todos los compiladores de este lenguaje. Estándar C #define #if #else #ifndef #ifdef #endif #include #list #error
28
Directivas del Preprocesador
Estándar #define identificador valor: Utilizada para crear etiquetas que facilitan la programación. Esta directiva permitirá remplazar el valor por el identificador seleccionado #define BITS 8 #define K 16 #define mensaje “Fin de Programa”
29
Directivas del Preprocesador
Estándar #include “archivo.h” o #include <archivo.h>: utilizada para que el compilador incluya en el fichero fuente el texto que contiene el archivo especificado en archivo.h #inlude “modulo1.h” #include <16F887.h>
30
Directivas del Preprocesador
Especificación de Dispositivos Con estas directivas podremos especificar nuestro microcontrolador. También, seleccionaremos la configuración necesaria para nuestra aplicación. Especificación de dispositivos #device #ID #fuses #serialize
31
Directivas del Preprocesador
Especificación de Dispositivos #device chip: Le indica al compilador que clase de arquitectura hardware que se va a utilizar. Esto determina la memoria RAM y ROM así como el juego de instrucciones. #device PIC16F887 #device PIC16C74
32
Directivas del Preprocesador
Especificación de Dispositivos #fuses opción: se configuran algunas características especiales del dispositivo. Se definen qué fusibles van a activarse en el dispositivo cuando se programe. Esta directiva no afecta a la compilación; sin embargo, esta información se pone en el archivo de salida. Algunas de las opciones más usadas son: Configuración del reloj Watchdog Protección Tiempo de estabilización Master clear
33
Especificación de Dispositivos
Configuración del reloj Todo microcontrolador requiere de un circuito que le indique a que velocidad debe trabajar. Este circuito es conocido por todos como un oscilador de frecuencia. Este oscilador es como el motor del microcontrolador. MCU Frecuencia?
34
Especificación de Dispositivos
Configuración del reloj El tipo de oscilador dependerá de: precisión Velocidad Potencia Costo
35
Especificación de Dispositivos
Configuración del reloj Configuración 1 Configuración 2 Frecuencia de Oscilación C1 C2 455 Khz pF 2 Mhz pF. 4 Mhz Valor de la resistencia debe estar entre los 5K y 100K. Valor del capacitor un capacitor de 20pF. f = R x C
36
Especificación de Dispositivos
Configuración del reloj XT: Oscilador tipo XTal para una frecuencia igual a 4 Mhz. LP: Oscilador tipo Low Power para frecuencias entre 32 y 200 Khz. HS: Oscilador tipo High Speed para frecuencias comprendidas entre 4 y 20 MHz. RC: Oscilador tipo Resistor/Capacitor para frecuencias no mayores de 5.5 Mhz. INTRC_IO: utilización del oscilador interno. Diferencia? Diferencia? Ventajas/Desventajas? cuándo posible utilizarlo?
37
Especificación de Dispositivos
Watchdog Temporizador que activa un sistema de reinicio (reset) u otra acción correctiva en el programa principal. Activación debido a alguna condición de falla. Objetivo: estado inicial. WDT: Hace uso del watchdog NOWDT: Desactiva el watchdog
38
Especificación de Dispositivos
Protección contra lectura: Política que impide la lectura del programa que se encuentre dentro del microcontrolador mediante el programador. PROTECT: activa la protección contra lectura NOPROTECT: Sin protección de lectura
39
Especificación de Dispositivos
Estabilización En ocasiones es necesario tener un tiempo de espera para estabilización de alimentación del microcontrolador. PUT: habilita el Power Up Timer. NOPUT: deshabilita el tiempo de estabilización inicial. tiempo de espera
40
Especificación de Dispositivos
Reset Externo Usa un pin de múltiples aplicaciones, es la entrada conocido como Master Clear. Se activa con un nivel bajo de voltaje (gnd), y cuando no se hace uso de éstese debe conectar directamente a un nivel alto (vdd). MCLR: Activar reset externo. NOMCLR: Desactivar el master clear
41
Directivas del Preprocesador
Librerías Predefinidas Estas directivas incluyen algunas pautas para la programación del dispositivo. Nos indican la forma de acceder a los puertos Librerías Predefinidas #use delay (clock) #use fixed_io #use fast_io #use I2C #use RS232 #use SPI #use standard_io
42
Directivas del Preprocesador
Librerías Predefinidas #use delay (clock = frec): Esta directiva indica al compilador la frecuencia del procesador, en ciclos por segundo. Habilita delay_ms(), delay_us(), restart_WDT(). #use delay (clock= ) #use delay (clock= )
43
Directivas del Preprocesador
Librerías Predefinidas #use fast_io(puerto): Genera las instrucciones de entrada y salida. Este método rápido de hacer I/O ocasiona que el compilador realice I/O sin programar el registro de dirección. #use fast_io(A) #use fixed_io(puerto_outputs=pin_x#, pin_x#...): Genera las instrucciones de entrada y salida. El método fijo I/O causará que el compilador genere código para hacer que un pin sea de entrada o salida cada vez que se utiliza. #use fixed_io(a_outputs=PIN_A2, PIN_A3)
44
Directivas del Preprocesador
Librerías Predefinidas #use standard_io (puerto): Genera las instrucciones de entrada y salida. El método estándar I/O causará que el compilador genere código para hacer que un puerto sea de entrada o salida cada vez que se utiliza. #use standard_io(A)
45
Directivas del Preprocesador
Control de Memoria Con estas directivas podemos configurar el uso de la memoria del microcontrolador. Además, permite el uso de identificadores especiales para los puertos y posibilita el uso de código ensamblador. Control de Memoria #asm #endasm #byte #bit #type #build #fill_rom #zero_ram #locate #reserve
46
Directivas del Preprocesador
Control de Memoria #byte Identificador = X: Esta directiva creará un identificador que referenciará un objeto en la posición de memoria x. #byte TRISA = 0x85 #byte PORTA = 0x05 #byte PORTB = 0x06
47
Directivas del Preprocesador
Control de Memoria #bit identificador = x.y: Esta directiva creará un identificador que puede utilizarse como cualquier entero corto (un bit). El identificador referenciará un objeto en la posición de memoria x más el bit de desplazamiento y. #bit RA2 = 0x05.2 #bit RA2 = PORTA.2
48
A continuación… Introducción Operadores (Repaso)
Directivas del preprocesador Distribución Memoria RAM Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM
49
Memoria RAM Organización de la memoria de datos
La memoria de datos se divide en cuatro bancos que contienen: Registros de Propósito General (GPR) Registros de Funciones Especiales (SFR). Los registros de funciones especiales se encuentran en los primeros 32 lugares de cada banco. Los registros de propósito general se encuentran en los últimos 96 lugares de cada Banco.
50
Memoria RAM Organización de la memoria de datos RAM Banco 0 Banco 1
1 2 3 31 8-bits 8-bits 8-bits 8-bits SFR 32 33 34 35 127 36 37 8-bits 8-bits 8-bits 8-bits GPR
51
Memoria RAM Organización de la memoria de datos
Registros que almacenan el estado de los puertos Registros que almacenan la dirección de los puertos RAM Banco 0 Banco 1 Banco 2 Banco 3 0x001 0x002 0x004 0x005 0x007 0x008 0x00A 0x00B 0x000 0x003 0x006 0x009 8-bits 0x080 8-bits 0x081 0x082 0x0FF 0x084 0x085 0x087 0x088 0x08A 0x08B 0x083 0x086 0x089 Registros Para la Gestión de Puertos PORTA PORTB PORTC PORTD PORTE TRISA TRISB TRISC TRISD TRISE 0x07F
52
A continuación… Introducción Operadores (Repaso)
Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión de Puertos Gestión a través de la RAM
53
Gestión de Puertos Puertos
Los microcontroladores PIC tienen terminales de entrada/salida divididos en puertos, que se encuentran nombrados alfabéticamente A, B, C, etc. Cada puerto puede tener hasta 8 registros: Se comportan como una entrada/salida digital Multifuncionales: convertidor AD USART I2C ...
54
Gestión de Puertos
55
Gestión de Puertos Registros:
Considerar los puertos como entradas/salidas digitales. Los puertos se caracterizan por ser independientes Se programa cada terminal del puerto para que se comporte como entrada o una salida digital. Habilitación: - entrada/salida - Registros TRISx Datos: - asignar/leer - Registros PORTx TRISx PORTx TRISx0 TRISx1 TRISx2 TRISx3 TRISx4 TRISx5 TRISx6 TRISx7 Rx0 Rx1 Rx2 Rx3 Rx4 Rx5 Rx6 Rx7
56
Gestión de Puertos Configuración: Registros TRISx: 0 puerto de salida
1 puerto de entrada. Habilitación: - entrada/salida - Registros TRISA Datos: - asignar/leer - Registros PORTA TRISA PORTA 1 Salida Entrada
57
Gestión de Puertos Caminos para su manipulación:
En lenguaje C se pueden gestionar los puertos de dos formas: Se declaran los registros TRlSX y PORTX definiendo su posición en la memoria RAM como variables de C. Utilizando las directivas específicas del compilador (#use fast_io, #use fixeo_io, #use standard_io).
58
A continuación… Introducción Operadores (Repaso)
Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM Gestión a través de la RAM
59
Puertos a través de la RAM
Registros para la Gestión de Puertos: Se definen los registros de gestión de puertos como variables Byte: PORTx TRISx Se debe asignar la posición de los registros correspondientes: Registros: TRISA: 85h, TRISB: 86h, TRISC: 87h, TRISO: 88h, TRISE: 89h Registros: PORTA: 05h, PORTB: 06h, PORTC: 07h, PORTD: 08h, PORTE: 09h
60
Puertos a través de la RAM
Declaración de un Puerto: La directiva utilizada de es #BYTE: #BYTE variable=constante; Ejemplos: #BYTE TRISA = 0x85 //Variable TRISA en 85h #BYTE PORTA = 0x05 //Variable PORTA en 05h. #BYTE TRISB = 0x86 //Variable TRISB en 86h. #BYTE PORTB = 0x06 //Variable PORTB en 06h. #BYTE TRISC = 0x87 //Variable TRISC en 87h. #BYTE PORTC = 0x07 //Variable PORTC en 07h.
61
Puertos a través de la RAM
Configurando Puertos: Una vez definidas estas variables se pueden configurar y controlar los puertos a través de los comandos de asignación. Ejemplos: TRISA = 0xFF; TRISB = 0x00; TRISC = 0x0F; // 8 registros de entrada // 8 registros de salida // 4 registros mayor peso de salida, 4 registros de menor peso de entrada
62
Puertos a través de la RAM
Configurando Puertos: Escritura en los puertos: Lectura de puertos: PORTC = 0x0A; // salida del datos por el puerto C Valor = PORTA; // Asigna el dato del puerto A a la variable Valor.
63
Puertos a través de la RAM
Declaración de un Pin (registro): Se puede declarar un bit de un registro con una variable La directiva #BIT, lo que permite trabajar directamente con el pin: #BIT nombre = posición.bit Ejemplos: Declaración: #BIT RA4 = 0x // PORTA = 0X05 Asignación: RA4 = 0; Declaración: #BIT RB2 = 0x // PORTB = 0X06 Lectura: Valor = RB2;
64
Puertos a través de la RAM
Funciones Funciones para trabajar bit a bit con los registros o variables definidas previamente. Estas funciones son las siguientes: bit_clear (var, bit); // Pone a 0 el bit específico (0 a 7) de la variable. bit_set (var, bit); // Pone a 1 el bit específico (0 a 7) de la variable. bit_test (var, bit); // Comprueba el bit específico (0 a 7) de la variable. swap (var); // Intercambia los 4 bits de mayor peso por los 4 de menor peso
65
Fin sesión
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.