04.Entradas y salidas digitales
-
Upload
jonathan-ruiz-de-garibay -
Category
Documents
-
view
2.784 -
download
0
description
Transcript of 04.Entradas y salidas digitales
Sistemas Basados en
Microprocesadores
Entradas y Salidas Digitales
http://paginaspersonales.deusto.es/jonathan.garibay/
Pines de Entrada/Salida
Está organizados en puertas de hasta 8 líneas.
Los PIC18 dispone de hasta 8 puertas dependiendo del
encapsulado.
Todas las líneas están multiplexadas (realizan
diversas funciones según estén programadas), pero
todas tienen la capacidad de trabajar como líneas de
E/S digitales.
Para su manejo como E/S digitales, todas ellas se
manejan por medio de 3 registros:
TRISx configuración de la puerta.
PORTx valor del estado de la puerta.
LATx inhibe la salida de los niveles lógicos.
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S digitales
Para indicar que una línea es una entrada, se pone ‘1’ en el bit correspondiente del registro TRISx; para indicar que es salida, se pone un ‘0’.
Para conocer el estado de una línea de entrada, se lee el bit correspondiente del registro PORTx.
Para establecer el estado de una línea de salida, se escribe un ‘0’ o un ‘1’ en el bit correspondiente del registro PORTx o LATx. Es preferible utilizar el registro LATx para la escritura.
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S digitales: Puerta A
Esta puerta dispone de 7 líneas.
Todas ellas pueden ser E/S digitales configurando el
registro ADCON1.
5 de ellas pueden trabajan como entradas para el
conversor A/D.
RA4 es la entrada de pulsos para el TMR0.
Debido a ello, si se usa esta línea como salida necesita de una
resistencia Pull-Up para su correcto funcionamiento.
Si no se pone la resistencia
Pull-Up la línea sólo sacará 0V
aunque haya un ‘1’ en el bit
RA4 del registro PORTA
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S digitales: Puerta A (Continuación…)
Explicación detallada de los pines de la puerta A:
Para cada
puerta, hay una
tabla como esta
en el datasheet
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S digitales: Puerta B
Tiene 8 líneas <RB7:RB0>
Todas ellas pueden ser E/S digitales y disponen de
resistencias Pull-Up internas que se pueden habilitar con
el bit RBPU# del registro INTCON.
<RB2:RB0> implementan cada una de ellas una
interrupción externa por flanco.
<RB7:RB4> implementa una interrupción por cambio de
nivel en cualquiera de las 4 líneas.
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S digitales: Puerta C
Dispone de 8 líneas <RC7:RC0>
Además de actuar como E/S digitales, guardan relación
con los módulos CCP, las comunicaciones USART y el
módulo MSSP, y como oscilador externo y entrada de
pulsos para el TMR1/TMR3.
El funcionamiento con estos periféricos puede variar el valor
asignado a las líneas de TRISC.
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S digitales: Puerta D y Puerta E
La puerta D dispone de 8 líneas que pueden trabajar
como líneas de E/S digital, y si se usa el puerto
paralelo se utiliza como puerto de datos.
La puerta E dispone de 3 líneas que pueden trabajar
como E/S digital (en PIC de más de 40 pines, la
puerta E dispone de 8 bits).
Si se usa el puerto paralelo, trabajan como señales de
control para la comunicación.
También pueden ser utilizadas como entradas del
conversor A/D.
http://paginaspersonales.deusto.es/jonathan.garibay/
Uso de Máscaras
Una máscara de bits se puede entender como un
dato binario (normalmente constante) que permite
actuar selectivamente sobre ciertos bits de otro dato
a través de una operación lógica (AND, OR, EOR).
Las máscaras de bits se emplean para actuar sobre
subconjuntos de bits de un operando.
Poner bits a 0 máscara AND dato.
Poner bits a 1 máscara OR dato.
Invertir bits máscara EOR dato.
http://paginaspersonales.deusto.es/jonathan.garibay/
Uso de Máscaras (Continuación…)
Ejemplos
Poner a 1 los bits 1, 2 y 4 del registro D1, dejando
intactos los demás.Solución: 0b00010110 or D1
Invertir los bits 4, 5, 6 y 7 del registro D2, dejando
intactos los demás.Solución: 0b11110000 eor D2
Borrar los bits 2, 3 , 5 y 7 del registro D3, dejando
intactos los demásSolución: 0b01010011 and D3
http://paginaspersonales.deusto.es/jonathan.garibay/
E/S Digitales y Máscaras
Para comprobar el estado de una línea de entrada
se pueden utilizar las instrucciones btfss y btfsc.
Cuando se quieren comprobar más de una línea a la vez
se utilizan máscaras.
…
movf PORTB, W
andlw 0b00111100
sublw 0b00110000
btfss STATUS, Z
goto datoNoBuscado
goto datoBuscado
…
¿Qué dato debe contener PORTB
para llegar a datoBuscado?
http://paginaspersonales.deusto.es/jonathan.garibay/
El efecto rebote
En el momento de presionar un pulsador o cualquier
conmutador electromecánico es inevitable que se
produzca un pequeño arco eléctrico durante un
breve instante.
El periodo transitorio de un rebote depende de
diversos factores como son la calidad de los
switches y la rapidez de su accionamiento.
Lo máximo que puede durar son 20mS.
Puede darse el caso de que el
µControlador detecte varias pulsaciones
en lugar de una única pulsación
http://paginaspersonales.deusto.es/jonathan.garibay/
El efecto rebote (Continuación…)
Trabajo personal
Buscar las posibles soluciones a este problema (mínimo
de 2 ideas)