Upload
maria-rosa-fidalgo-correa
View
220
Download
0
Embed Size (px)
Citation preview
Sistemas Digitales IISesión 5: Gestión de Puertos
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
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
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
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.
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
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.
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!!!
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!!!
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
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.
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)
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.
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.
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
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.
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)
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
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
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
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
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
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
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
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.
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
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
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”
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>
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
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
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
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?
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
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
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?
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
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
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
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
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
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)
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)
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)
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
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
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
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
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.
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
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
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
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• ...
2009/1Circuitos Digitales III Universidad Santo TomásSistemas Digitales II
Gestión de PuertosGestión de Puertos
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
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
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
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
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
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:
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
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.
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:
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
Sistemas Digitales IIFin sesiónFin sesión