click para descargar

Anuncio
E/S digital: Hardware asociado
El pic 16F877A puede disponer de hasta 33 lineas digitales de E/S
PortA: 6, PortB: 8, PortC: 8, PortD: 8, PortE: 3
Precauciones a tener en cuenta:
• El PORTA dispone de 6 pines. Epin RA4 está implementado como
colector abierto, por lo tanto es obligatorio conectar una resistencia
de pull-up cuando se configura como salida.
• El PORTB es de ocho pines y dispone, internamente, de unas
resistencias de pull-up que se pueden habilitar poniendo a ‘0’ el bit
RBPU del registro (OPTION_REG<7>)
• El PORTC se compone de ocho pines multiplexados con varios
periféricos (USART, I2C) y dispone de buffers Trigger Schmitt.
• El PORTD dispone de ocho pines que funcionan como entradas
Trigger Schmitt cuando se configuran como entradas o como TTL
cuando se configuran como salidas.
• El PORTE dispone de tres pines de propósito general.
(c) Domingo Llorente 2010
1
E/S digital: Función de configuración
El compilador CCS dispone de la funcion set_tris_x() para configurar
cualquier pin como estrada o salida digital.
Ej1: Configurar entradas digitales:
set_tris_x(0xFF); // Configura el puerto x como entrada digital
// Donde x puede ser a,b,c,d ó e.
Ej2: Configurar salidas digitales:
set_tris_x(0x00); // Configura el puerto x como salida digital
// Donde x puede ser a,b,c,d ó e.
Ej3: Configurar entradas y salidas en el mismo puerto:
set_tris_b(0xF0); // Configura RB0..RB3 como salidas digitales
// y RB4..RB7 como entradas.
Nota: También se puede utilizar la notación binaria: set_tris_b(0b11110000);
(c) Domingo Llorente 2010
2
E/S digital: Funciones de lectura
El compilador CCS dispone de dos funciones para realizar la lectura del
estado de una línea o puerto, previamente configurado como entrada
digital.
Lectura de un puerto:
valor=input_x(); // Donde x puede ser a,b,c,d o e y valor debe
// ser una variable de 8 bits.
Lectura del estado de un pin:
estado=input(pin); // Donde pin puede ser (pin_A0, pin_B7,etc )
// y la variable “estado” debe ser del tipo bit
(c) Domingo Llorente 2010
3
E/S digital: Lectura del valor de un puerto
(c) Domingo Llorente 2010
4
E/S digital: Lectura del estado de un pin
(c) Domingo Llorente 2010
5
E/S digital: Escritura de un dato en un puerto
(c) Domingo Llorente 2010
6
E/S digital: Poner a nivel alto un pin de salida
(c) Domingo Llorente 2010
7
E/S digital: Poner a nivel bajo un pin de salida
(c) Domingo Llorente 2010
8
E/S digital: Cambiar el estado de un pin de salida
(c) Domingo Llorente 2010
9
E/S digital: Directiva #USE_FAST_IO(PORT)
(c) Domingo Llorente 2010
10
E/S digital: Tipos básicos de datos
(c) Domingo Llorente 2010
11
Descargar