Está en la página 1de 39

Dispositivos

de Entrada/Salida (I/O)

•  Los Dispositivos del Microcontrolador que


interconectan el Microprocesador con el
mundo externo (Aplicación).

μCU

I/O Aplicación
Dispositivos de Entrada/Salida
Tipos
•  Puerto Paralelo.
•  Puerto Serie.
  Asíncrono Síncrono
•  Modulo de Contadores (TIMER).
  Medición de Periodo
  Generación de Frecuencia
  Contador de Pulsos
•  Convertidor Analógico-Digital (CAD).
•  PWM
•  Comparador de Voltaje

Dispositivos de Entrada/Salida
Puerto Paralelo

•  También se les llama Líneas de Propósito


General.

•  Prácticamente en todas las aplicaciones se


requiere Líneas de Propósito General.

Dispositivos de Entrada/Salida
Puerto Paralelo
•  Se utiliza para:
 Controlar dispositivos de comportamiento binario.
 Ejemplos:
 Led, Interruptor, Transistor, Motor, Válvula.

Dispositivos de Entrada/Salida
Puerto Paralelo

•  Manipular Dispositivos que para su control se


requiere de varias líneas.
Ejemplo:
Teclado Matricial
Display de 7 segmentos
Display LCD
Motor de Pasos
•  Comunicación de Datos en Paralelo.

Puerto Paralelo
Puerto de Salida:

Puerto
M
Puerto Paralelo
Puerto de Entrada:

1 2 3
Puerto
4 5 6
7 8 9
# 0 *
El Microcontrolador ATMEGA328 cuenta con 3
puertos tipo paralelo.

•  Puerto B y D de 8 bits c/u.

•  Puerto C de 7 bits.

23 líneas de entrada/salida en total


ATMEGA328

Puerto C
Puerto B
Puerto D
Puerto de Entrada / salida
Su funcionamiento se basa en un Flip Flip D, con habilitador
sensible a nivel.

E D Qn+1

1 D Q
1 0 0 0

0 1 1

E 1 0 Qn

1 1 Qn

0
Puerto de Salida
Su funcionamiento se basa en un Flip Flip D con habilitador
sensible a nivel.

Del bus de datos del D Q Al pin del


Microcontrolador circuito
integrado

E
Del bus
de Dirección del 2Circuito de Compuerta salida
Microcontrolador Codificación three state
Puerto Paralelo
•  Ejemplo:
•  El Puerto B (PORTB) del Microcontrolador se localiza
en el Registro 0x25.

D Q Al pin del
Del bus de datos del circuito
Microcontrolador
Del bus integrado
de Dirección del 1
Microcontrolador 1
1 E
1
1
2DDecodificacador 1
0x025 De línea 0
1
1
1
1
Puerto de Entrada
Su funcionamiento se basa en un Flip Flip D con habilitador
sensible a nivel.

0
Q D 0 Del pin
Al bus de datos del
del
Microcontrolador
circuito
integrado

E 0
Del bus
de Dirección del 2Circuito de
06
Microcontrolador Codificación
Puerto de Entrada/Salida
Se interconectan tanto el circuito de entrada como el de
salida al mismo pin y al mismo bit del bus de datos.
Del bus Del bus de datos del D Q Al pin del
de Dirección del Microcontrolador circuito
Microcontrolador 0x25 integrado
2Circuito de
Codificación
0 E
Registro DDRB 0
D Q 1
0

Q D
2Circuito de E
Codificación

0 E

Del bus 1
1
de Dirección del
Microcontrolador
Puerto de Entrada/Salida
Se interconectan tanto el circuito de entrada como el de
salida al mismo pin y al mismo bit del bus de datos.
Del bus Del bus de datos del D Q
de Dirección del Microcontrolador
Microcontrolador 0x25 Al pin del
2Circuito de circuito
Codificación
0 E integrado
Registro DDRB 1
D Q 0
1

Q D
2Circuito de E
Codificación

0 E

Del bus 0
0
de Dirección del
Microcontrolador
Registros del Puerto B
Registros del Puerto C
Registros del Puerto D
Registro de Datos Periféricos.
Registro en el cual se escribe el dato
que se enviara por el puerto, Ldi r16, 0x13
cuando este opera como salida. out PORTB,r16

PB0
1
PB1
1
PB2
PORTB
PB3
0

0 Terminales del

0 0 0 1 0 0 1 1 PB4 Circuito Integrado
1
PB5
0
PB6
μPU 0

PB7
0

Registro de Datos Periféricos.
Registro en el cual se Lee el dato
conformado por los niveles lógicos in r0,PINB
aplicados al puerto, cuando este
opera como entrada. Antes de la instrucción

PB0 r0= xx
1
PB1
0 Después de la instrucción

PB2
0 r0= 00110001
PINB
PB3
0 En Hexadecimal
PB4
0 0 1 1 0 0 0 1 1
r0= 0x31
PB5
1
Terminales del
PB6
0 Circuito Integrado
μPU
PB7
0

Registro de Direccionamiento de Datos
(DDRX – Data Direction Register).
Registro en el cual se indica el modo de operación
de cada Línea (Bit) de un Puerto.
Ldi r16, 0xFF
DDRBx= 1 Línea de Salida
out DDRB,r16
PB0
1
PB1
1
PORTB PB2
0
0 0 0 1 0 0 1 1 PB3
0 Terminales del
DDRB PB4


1
Circuito Integrado
PB5
1 1 1 1 1 1 1 1 0
PB6
0
PB7
0

Registro de Direccionamiento de Datos
(DDRX – Data Direction Register).
Registro en el cual se indica el modo de operación
de cada Línea (Bit) de un Puerto.
Ldi r16, 0x00
DDRBx= 0 Línea de Entrada
out DDRB,r16

PB0
1
PB1

PINB
PB2
0

0

1 0 0 1 1 0 0 1 PB3
1 Terminales del
PB4 Circuito Integrado
DDRB
PB5
1

0
0 0 0 0 0 0 0 0 PB6
1
PB7
0

Se pueden combinar entradas y salidas en un
mismo puerto.
Ejemplo: PB0 al PB3 com salidas y Ldi r16, 0x0F
PB4 al PB7 como entradas out DDRB,r16
PB0
1
PORTB PB1


0
x x x x 1 0 0 1 PB2
0
PB3

PINB
1

1 0 0 1 x x x x
PB4 1

PB5 0

PB6 0
DDRB
PB7

0
0 0 0 0 1 1 1 1
Ejemplo 1:
Programa que escribe en el Puerto B, el dato
aplicado en el Puerto D.
Inicio

Programa Puerto B como Salida

Programa Puerto D como Entrada

Lee Puerto D

Escribe en Puerto B
Ejemplo 1:
Listado del programa
Diagrama de Conexiones
PB0
330
5V
4.7 k PD0
PB1
5V 330
4.7 k PD1
PB2
330
5V En este diagrama no se indican
4.7 k PD2
PB3
las conexiones de Vcc y GND
5V
330
del Microcontrolador
4.7 k PD3
PB4

ATMEGA328
5V 330
4.7 k PD4
PB5
5V 330
4.7 k PD5

5V PB6
330
4.7 k
PD6

5V PB7
330
4.7 k
PD7
RESISTENCIA DE PULL UP
•  Las resistencias de 4.7 k conectadas a las entradas del puerto D se les
conoce como RESISTENCIA DE PULL UP.

•  Son necesarias ya que evitan que la entrada quede al aire cuando el


interruptor esta abierto.

•  Esto provocaría que se induzca ruido electromagnético, generando
cambios aleatorias de 1 a 0 y viceversa. Lo que se reflejaría en un mal
funcionamiento del circuito.

•  Digamos un ejemplo en el que se tiene un contador de eventos en un


display.

•  Si no se coloca la resistencia, se observarían incrementos aleatorios en el


display
Entrada Digital sin resistencia de Pull Up
V

0 1

Interruptor cerrado, 0 lógico en la


entrada, por lo tanto un 1 lógico en la Interruptor abierto, posible inducción de
salida. ruido electromagnético en la entrada,
aparece un señal aleatoria en la salida.
Entrada Digital con resistencia de Pull Up
5V 5V

4.7 k 4.7 k

0 1 0
1

Interruptor cerrado, 0 lógico en la Interruptor abierto, 1 lógico en la


entrada, por lo tanto un 1 lógico en la entrada, por lo tanto un 0 lógico en la
salida. salida.

Se recomienda un valor de resistencia entre 4.7k y 16k.


RESISTENCIA DE PULL UP

•  Todos los Microcontroladores cuenta en algunos de sus puertos, resistencias de


Pull Up internas programables, que permite ahorrar en espacio en la tarjeta de
circuito impreso y ahorro en el costo.

•  El Microcontrolador ATMEGA328 cuenta con resistencias de Pull Up en todas sus


líneas de puertos.

•  El termino programable, se refiere a que cuando una línea de un puerto se utiliza


como entrada, podemos habilitarla o no
RESISTENCIA DE PULL UP

Interruptor
electrónico

Resistencia
de Pull Up
interna

Pin del
circuito
integrado
RESISTENCIA DE PULL UP
Un bit del Registro de
Direccionamiento de Datos
Interruptor DDRX
electrónico

Resistencia
de Pull Up
interna

Pin del
circuito
integrado
RESISTENCIA DE PULL UP

Interruptor
electrónico

Un bit del Registro de Datos


Resistencia Periféricos de salida(PORTx)
de Pull Up
interna

Pin del
circuito
integrado
RESISTENCIA DE PULL UP

Interruptor
electrónico

Resistencia
de Pull Up
interna
Un bit del Registro de Datos
Periféricos de entrada (PINx)
Pin del
circuito
integrado
RESISTENCIA DE PULL UP
Para habilitar la resistencia se La compuerta NOT
requiere encender el transitor, requiere entonces
esto se logra con un 0 en la un 1 en su entrada.
terminal de compuerta del
transistor. Entonces se
requiere que el AND
entregue un 1.
Compuerta AND con entradas complementadas

0 PUD
1
0
1
0 1 DDRx 1
0
1
PORTx 1
Para que el AND entregue un 1
Escribir un 0 en el bit PUD, este se
encuentra en el MCUCR – MCU Control
Register, por default vale 0

Escribir un 0 en el correspondiente
bit del Registro de
Direccionamiento de Datos DDRx.

… de hecho, El bit se va utilizar


como entrada

Escribir un 1 en el correspondiente bit del Registro de Datos Periféricos


PORTX.
Podemos decir que al utilizar la línea del puerto como entrada, este bit
toma l función de:
habilitar la Resistencia de Pull UP
El ejemplo anterior, con las resistencias de pull up habilitadas
Y el diagrama esquemático seria el siguiente,
es decir sin las resistencias externas
PB0
330

PD0
PB1
330
PD1
PB2
330

PD2
PB3
330

PD3
PB4

ATMEGA328
330

PD4
PB5
330

PD5

PB6
330
PD6
PB7
330
PD7

También podría gustarte