2. entradas salidas digitales ingenieria - pic
DESCRIPTION
Manejo de Entradas Digitales en el Microcontrolador.TRANSCRIPT
E/S DIGITALES
MICROELECTRONICA
MODALIDAD
Encendido y Apagado. Rotación de bits. Traslado de bits. Interruptores y Switchs.
Rebotes
Contadores
Luis David Narváez
RETO: Semáforos en una intersección, incluido
Stop y Go para Peatones Enunciado: Realizar una emulación de dos
semáforos en una intersección mediante elEncendido y Apagado de Leds, con indicadores destop y go para peatones.
ENCENDIDO Y APAGADO
Luis David Narváez
Para rotar los bits a la izquierda empleamos lasfunciones: rotate_left( adress, bytes);
En donde address puede ser un identificador de unarray o la dirección a un byte o a una estructura,bytes es el número de bytes implicados en larotación.
Ejemplo: var = 0x40; rotate_left(&var,1); // var=0x80
ROTACIÓN DE BITS
Luis David Narváez
TRASLADO DE BITS La misma explicación es válida para: rotate_right( adress, bytes)
Otra forma de realizar el mismo efecto es empleando eloperador desplazamiento (>> derecha, << izquierda)
Ejemplos: var=0x40; var=var<<n // n es el número de bits a desplazar
Luis David Narváez
Enunciado: Se trata de hacer encender 8 LEDs demanera consecutiva, sin que permanezcanencendidos dos de ellos simultáneamente. Los LEDsestán conectados al PORTB<RB7:RB0>, y alPORTD <RD7:RD0>.
PRÁCTICA
Luis David Narváez
FLUJOGRAMA
Luis David Narváez
SIMULACIÓN
Luis David Narváez
Interruptores y Switchs
Entradas Digitales
Luis David Narváez
ENTRADAS DE DATOS Los dispositivos de entrada de datos encontramos con
frecuencia en sensores de alarmas (magnéticos, demovimiento, infrarrojos, etc.), sensores digitalesindustriales (sensores digitales de proximidad, finales decarrera, pulsadores de marcha y paro de motores, etc.).
Rebotes en un pulsador El problema en la utilización de estos dispositivos son los
rebotes que aparecen en el momento en que cambian deposición, cuya duración depende de la fuerza con que sepresione este dispositivo, y a su estructura interna.
Luis David Narváez
ENTRADAS DE DATOS
Luis David Narváez
ELIMINAR REBOTES Para eliminar este problema se suele realizar
por dos medios:
Hardware mediante el empleo de un flip-flop, uncondensador, etc.
Software utilizando los retardos de cerca de10ms que es lo que normalmente una personatarda en presionar y soltar una tecla.
Luis David Narváez
Enunciado: Se desea controlar una lámpara desde dos puntos
diferentes por medio de 2 interruptores. Lalámpara está conectada al RB0 y los interruptoresa RA0 y RA1
Luis David Narváez
PRÁCTICA
DESARROLLO Como podemos observar en el circuito, cuando los
interruptores están abiertos introducen un “0L”(conectados a través de resistencias pull-down). Deacuerdo a las condiciones del enunciado, la lámparadebe funcionar de acuerdo a la siguiente tabla deverdad:
S1 (RA1 S0 (RA0)SALIDA
(RB0)Observaciones
0011
0101
0110
ApagadoEncendidoEncendidoApagado
Luis David Narváez
DESARROLLO Como se mencionó anteriormente, en lenguaje C,
para realizar la lectura de un puerto se utiliza lafunción
var= input_port_y ()// Pone en var el valor de los pines del port_y
Según analizamos anteriormente, la sentencia case esla herramienta más indicada a utilizarse en este caso.
Luis David Narváez
CÓDIGO
Luis David Narváez
SIMULACIÓN
Luis David Narváez