sesión 5: gestión de puertos. 2009/1 circuitos digitales iii universidad santo tomás sistemas...

65
Sistemas Digitales Sesión 5: Gestión de Puertos

Upload: maria-rosa-fidalgo-correa

Post on 24-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

Sistemas Digitales IISesión 5: Gestión de Puertos

Page 2: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

11 Introducción PIC en el lenguaje C

AgendaAgenda

66Gestión a través de la RAM Definición de etiquetas para la manipulación de los registros

22Operadores Repaso de los operadores del lenguaje C

44Memoria Distribución de la memoria RAM del PIC16F887

55 Gestión de Puertos Conceptos generales sobre la gestión de puertos

Directivas del Preprocesador como Elementos necesarios del lenguaje C

33

Page 3: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

A continuación…A continuación…

Directivas del preprocesador

Operadores (Repaso)

IntroducciónIntroducción

Gestión de Puertos

Distribución Memoria RAM

Gestión a través de la RAM

Page 4: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

IntroducciónIntroducción

El estudiante adquiere las habilidades requeridas para trabajo en usando Sistemas Embebidos.

0 1 0 0 1 1

ADCADC

IRQIRQ

TIMTIM

CPUCPU

MemoriaMemoria

PWMPWM

UARTUART

I2CI2CMCUsMCUs

IRQPP

Frecuencia?

MOTOR DC

Page 5: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

IntroducciónIntroducció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.

Page 6: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

IntroducciónIntroducció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.

EntradasSensores, periféricos

EntradasSensores, periféricos

ProcesamientoTiempo real

ProcesamientoTiempo real

SalidasActuadores, periféricos

SalidasActuadores, periféricos

Page 7: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Sistemas EmbebidosSistemas 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.

Page 8: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Evolución de la computaciónEvolució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!!!

Page 9: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Evolución de la computaciónEvolució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!!!

Page 10: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Características generalesCaracterí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.

EntradasSensores, periféricos

ProcesamientoTiempo real

SalidasActuadores, periféricos

Page 11: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Características generalesCaracterí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.

Page 12: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Características generalesCaracterí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.

ENTORNOENTORNOSensores(Análogo)

Sensores(Análogo)

Actuadores(Análogo)

Actuadores(Análogo)

Page 13: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Características generalesCaracterí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.

Page 14: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

AplicacionesAplicaciones

MCUs

AUTOMOTRIZFrenos.Motor.Aire acondicionado.Marchas.Control Tracción.

AUTOMOTRIZFrenos.Motor.Aire acondicionado.Marchas.Control Tracción.

TELECOComunic. Industrtrial.Domotica.RedesSistemas GPS

TELECOComunic. Industrtrial.Domotica.RedesSistemas GPS

S. MÉDICOSMarcapasos.ECG.Diálisis.Fiabilidad 100%.

S. MÉDICOSMarcapasos.ECG.Diálisis.Fiabilidad 100%.

CONSUMOLavadoras.Neveras.Microondas.Relojes.Video Juegos.Cámaras de Video.

CONSUMOLavadoras.Neveras.Microondas.Relojes.Video Juegos.Cámaras de Video.

Page 15: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

IntroducciónIntroducció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.

101011111000011

101011111000011

CompiladorCompilador

Page 16: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

IntroducciónIntroducció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.

Page 17: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

A continuación…A continuación…

Directivas del preprocesador

Operadores (Repaso)

Introducción

Gestión de Puertos

Distribución Memoria RAM

Gestión a través de la RAM

Operadores (Repaso)

Page 18: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

OperadoresOperadores

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

Page 19: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

OperadoresOperadores

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

Page 20: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

OperadoresOperadores

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

Page 21: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

OperadoresOperadores

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

Page 22: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

OperadoresOperadores

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

Page 23: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

OperadoresOperadores

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

Page 24: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

A continuación…A continuación…

Directivas del preprocesador

Operadores (Repaso)

Introducción

Gestión de Puertos

Distribución Memoria RAM

Gestión a través de la RAM

Directivas del preprocesador

Page 25: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas del Preprocesador

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

Page 26: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas del Preprocesador

Directivas

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  

Page 27: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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

Page 28: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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”

Page 29: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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>

Page 30: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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    

Page 31: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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

Page 32: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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

Page 33: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificació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 MCU Frecuencia?

Page 34: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificación de Dispositivos

Configuración del reloj El tipo de oscilador dependerá de:

• precisión• Velocidad• Potencia• Costo

Page 35: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificación de Dispositivos

Configuración del reloj Configuración 1

Configuración 2

Frecuencia de Oscilación

C1 C2

455 Khz 47 - 100 pF 47 - 100 pF2 Mhz 15 - 33 pF. 15 - 33 pF.4 Mhz 15 - 33 pF. 15 - 33 pF.

Valor de la resistencia debe estar entre los 5K y 100K.Valor del capacitor un capacitor de 20pF.

f = R x C

Page 36: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificació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?

Page 37: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificació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

Page 38: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificació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

Page 39: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificació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

Page 40: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Especificación de DispositivosEspecificació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

Page 41: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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    

Page 42: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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=4000000)• #use delay (clock=20000000)

Page 43: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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)

Page 44: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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)

Page 45: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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    

Page 46: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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

Page 47: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Directivas del PreprocesadorDirectivas 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

Page 48: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

A continuación…A continuación…

Directivas del preprocesador

Operadores (Repaso)

Introducción

Gestión de Puertos

Distribución Memoria RAM

Gestión a través de la RAM

Distribución Memoria RAM

Page 49: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Memoria RAMMemoria 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.

Page 50: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Memoria RAMMemoria RAM

Organización de la memoria de datosRAM

Banco 0Banco 0 Banco 1Banco 1 Banco 2Banco 2 Banco 3Banco 3

8-bits8-bits8-bits8-bits

8-bits

0123

31

8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits8-bits8-bits

8-bits

SFR

GPR

8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits

8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits

8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits

8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits

32333435

127

3637

Page 51: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Memoria RAMMemoria RAM

Organización de la memoria de datosRAM

Banco 0Banco 0 Banco 1Banco 1 Banco 2Banco 2 Banco 3Banco 3

0x07F

8-bits8-bits8-bits8-bits8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits8-bits8-bits8-bits

0x0010x002

0x0040x005

0x0070x008

0x00A0x00B

0x000

0x003

0x006

0x009

0x0800x0810x082

0x0FF

0x0840x085

0x0870x088

0x08A0x08B

0x083

0x086

0x089

8-bits8-bits8-bits8-bits8-bits8-bits8-bits8-bits

8-bits

8-bits8-bits8-bits8-bits8-bits

PORTAPORTBPORTCPORTDPORTE

TRISATRISBTRISCTRISDTRISE

Registros que almacenan el estado de los

puertos

Registros que almacenan el estado de los

puertos

Registros que almacenan la

dirección de los puertos

Registros que almacenan la

dirección de los puertos

Registros Para la

Gestión de Puertos

Page 52: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

A continuación…A continuación…

Directivas del preprocesador

Operadores (Repaso)

Introducción

Gestión de Puertos

Distribución Memoria RAM

Gestión a través de la RAM

Gestión de Puertos

Page 53: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Gestión de PuertosGestió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• ...

Page 54: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Gestión de PuertosGestión de Puertos

Page 55: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

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.

PORTx

Gestión de PuertosGestión de Puertos

Rx0Rx1Rx2Rx3Rx4Rx5Rx6Rx7

TRISx

TRISx0TRISx1TRISx2TRISx3TRISx4TRISx5TRISx6TRISx7

Habilitación:- entrada/salida- Registros TRISx

Datos:- asignar/leer- Registros PORTx

Page 56: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Configuración: Registros TRISx:

• 0 puerto de salida• 1 puerto de entrada.

PORTA

Gestión de PuertosGestión de Puertos

SalidaSalidaSalidaSalida

EntradaEntradaEntradaEntrada

TRISA

00001111

Habilitación:- entrada/salida- Registros TRISA

Datos:- asignar/leer- Registros PORTA

Page 57: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

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

Gestión de PuertosGestión de Puertos

Page 58: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

A continuación…A continuación…

Directivas del preprocesador

Operadores (Repaso)

Introducción

Gestión de Puertos

Distribución Memoria RAM

Gestión a través de la RAMGestión a través de la RAM

Page 59: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

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:

Puertos a través de la RAMPuertos a través de la RAM

Registros:TRISA: 85h, TRISB: 86h, TRISC: 87h, TRISO: 88h, TRISE: 89h

Registros:PORTA: 05h, PORTB: 06h, PORTC: 07h, PORTD: 08h, PORTE: 09h

Page 60: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Declaración de un Puerto: La directiva utilizada de es #BYTE:

Puertos a través de la RAMPuertos a través de la RAM

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

#BYTE variable=constante;

Ejemplos:

Page 61: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Configurando Puertos: Una vez definidas estas variables se pueden configurar

y controlar los puertos a través de los comandos de asignación.

Puertos a través de la RAMPuertos a través de la RAM

TRISA = 0xFF;TRISB = 0x00;TRISC = 0x0F;

Ejemplos:// 8 registros de entrada// 8 registros de salida// 4 registros mayor peso de salida, 4 registros de menor peso de entrada

Page 62: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Configurando Puertos: Escritura en los puertos:

Lectura de puertos:

Puertos a través de la RAMPuertos a través de la RAM

PORTC = 0x0A; // salida del datos 00001010 por el puerto C

Valor = PORTA; // Asigna el dato del puerto A a la variable Valor.

Page 63: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

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:

Puertos a través de la RAMPuertos a través de la RAM

Declaración: #BIT RA4 = 0x05.4 // PORTA = 0X05Asignación: RA4 = 0;

Declaración: #BIT RB2 = 0x06.2 // PORTB = 0X06Lectura: Valor = RB2;

#BIT nombre = posición.bit

Ejemplos:

Page 64: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II

Funciones Funciones para trabajar bit a bit con los registros o

variables definidas previamente. Estas funciones son las siguientes:

Puertos a través de la RAMPuertos a través de la RAM

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

Page 65: Sesión 5: Gestión de Puertos. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II 11 Introducción PIC en el lenguaje C Agenda

Sistemas Digitales IIFin sesiónFin sesión