Está en la página 1de 28

Puertos I/O

Puertos I/O
La máxima capacidad de corriente de cada
uno de los pines de los puertos en modo
sumidero (sink) o en modo fuente (source)
es de 25 mA.
Puertos I/O
Puertos I/O
• Ingresar al banco de memoria 1
• Configurar los puertos como entrada o
salida (TRISA…TRISE)
• Ingresar al banco de memoria 0
• Escribir o leer los puertos I/O
(PORTA..PORTE)
Puertos I/O

TRISX: Escribiendo en cada bit (“1” lógico = Entrada y “0” lógico = Salida).
PORTX: Este registro es de Lectura y Escritura (5v =”1” lógico | 0v =“0” lógico)
Puertos I/O

Configuración de los pines IO de un PUERTO


TRISA = 0b11111111; Configura todos los pines del Puerto A como Entrada.
TRISA = 0b00000000; Configura todos los pines del Puerto A como Salida.
TRISA = 0b00001111; Los pines Altos como Salida y el resto como Entrada.

Escritura de pines en un PUERTO


PORTA = 0b11111111; Todos los pines del Puerto A con una salida de 5v.
PORTA = 0b00000000; Todos los pines del Puerto A con una salida de 0v.
PORTA = 0b00001111; Los pines Altos a 0v y los pines Bajos a 5v.

Lectura de un PUERTO
Valor = PORTA [ RA0 ] : El estado lógico del pin A0 se escribe en la variable valor
Valor = PORTA : El estado lógico del todo el Puerto A se escribe en valor.
Blink

Diseñar un sistema que encienda un led durante 500


milisegundos y lo apague durante 500 milisegundos.

1. Configurar el hardware
2. Escribir el código fuente
3. Diseñar el ambiente de simulación
4. Realizar pruebas
Blink
Blink
Retardo
A menudo es necesario que nuestros programas usen retardos (delay), por ejemplo, si deseamos
hacer parpadear un led cada segundo evidentemente necesitaremos usar un retardo de 1s.
Blink optimizado

?
Código blink optimizado
Código blink optimizado

1. Blink a 2000 ms OFF y 1000 ms ON


2. 5 Blink de 500 ms durante 20 segundos y 2 blink de 1000 ms
3. Diseñar un sistema de alarmas para definir el nivel de batería.
Batería baja (<25%)
Batería media ( >25% y < 75%)
Batería alta (> 75 %)
Secuencia
Secuencia de led
Pulsadores
Inicio

Pulsadores Configurar Boton

Leer Boton
NO

Boton == 1

Retardo_100ms

Leer Boton

Boton == 1

Led == ON

Retardo_1
segundo
Proyectos GPIO

Todos los pines de salida digital estarán conectado al PORTD, mientras que, los pines de control
de efecto y velocidad estarán conectados a los pines RB7 y RB6 del PORTB respectivamente.
Estos pines de control se conectarán hacia pulsadores que tendrán una resistencia PULL-UP
interna (habilitado a través del mismo PIC)
Proyectos GPIO

• PORTB configurado como entradas digitales hacia 4 pulsadores, teniendo en cuenta que
deben estar en estado de pull-up a través de resistencia de 10kΩ.
• PORTD configurado como salida digital hacia 4 led para visualizar el estado actual de los
pulsadores
Ejercicio 1
Tenemos una lámpara que debe ser prendida o apagada desde tres puntos. Diseñe un
programa que la encienda si y solo si hay dos interruptores activados.
Ejercicio 2
Se tiene tres válvulas (A, B y C) que alimentan un tanque, el tanque a su vez tiene una salida.
Existen 3 sensores de nivel (X, Y y Z). Cuando el tanque está vacío los 3 sensores están a 0-
lógico y es necesario activar el trabajo de las tres bombas. Cuando se llena 1/3 del tanque el
sensor X pasa a 1-lógico y la bomba C deja de funcionar. Cuando se llenan 2/3 del tanque el
sensor Y esta activado y la bomba B deja de funcionar. Cuando esta lleno el tanque el sensor
Z se activa y la bomba A deja de funcionar. Una vez que el tanque esta lleno este empieza a
expulsar el líquido acumulado. Cuando los 3 sensores pasan a 0-lógico la secuencia antes
descrita se repite ANTES NO.
Display 7 Segmentos
Display 7 Segmentos
Display 7 Segmentos
Display 7 Segmentos
Display 7 Segmentos

También podría gustarte