Manipulación de Bits y Configuración de Puertos en Microcontroladores
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,74 KB
Preguntas de SETR 2013
1. Instrucciones que manipulan bits en los microcontroladores
Modos de direccionar o manipular bits. Ejemplos:
Cada microcontrolador tiene distintos modos de manipular un bit únicamente.
Mapa de bits
El 8051 tiene un mapa de memoria para direcciones que indican únicamente un bit, por ejemplo, cuando nos referimos al carry, hacemos referencia sólo a ese bit.
- Mapa de bits (8051):
- CLR: poner a 0 un bit.
- CLR P0.1: pone a 0 el bit 1 del puerto 0.
- SETB: poner a 1 un bit.
- JB: salto si el bit es 1.
- JB P0.2 Etq: salta a Etq si el bit 2 del puerto 0 es 1.
- JNB: salto si el bit es 0.
- JNB P1.4 Etq: salta a Etq si el bit 4 del puerto 1 es 0.
- CLR: poner a 0 un bit.
Máscara
En el 68h utilizamos máscaras para trabajar con un bit únicamente, utilizamos la dirección del byte, pero usando máscaras operamos con un bit o más, este modo es muy práctico.
- Máscara (Motorola 68hc11):
- BRSET dir, máscara, etiqueta
- BSET dir, máscara. (0 - 255)
- Máscara: actúa sobre los datos en los que la máscara tenga un 1.
- BCLR dir, $num: actúa sobre los bits que estén a 1 del $num
- BCLR dir, $81
- 0xxxxxx0, 10000001
Direccionamiento de bit dentro del byte
En el PIC, el mecanismo para operar con bits es el más simple, ya que únicamente ponemos el bit del dato de 8 bits de la dirección que utilizamos:
- Direccionamiento de bit dentro del byte (PIC):
- BCF dirf, numbit
- BCF MEN-BYTE, DIRBIT(0-7)
- BCF dirf, numbit
2. Esquema y características de los puertos de I/O en los microcontroladores
¿Cómo se configuran los puertos?
Push Pull
Debe haber un registro que indique si es salida o entrada. Si ponemos un “1” en el RDD (registro dirección de datos), estaremos leyendo del registro, es decir, veremos lo que ponen externamente en el puerto.
- Ventaja: Rápido debido a que tiene dos transistores; la conmutación es muy rápida.
- Inconveniente: Si conectas las dos salidas, se quemarán los transistores.
- PUSH-PULL:
- Más rápido.
- Necesita registro dirección dato.
- Instrucciones de lectura pin salida todas iguales.
- Cuidado en unir dos salidas (avería).
Open Drain
Por su topología, para usarlo como salida, bastaría con escribir 1 o 0 en el registro, pero habrá dispositivos en los que el valor que se lee del puerto no coincida con el valor del registro, por eso hay instrucciones que leen del registro y otras del puerto.
Si queremos usar este puerto como entrada, al pasar un 1, siempre elige el dispositivo el valor que se le pase como entrada.
- Ventaja: Al unir dos salidas no hay problemas eléctricos.
- Inconveniente: Debido a la resistencia, las conmutaciones de 1 a 0 y de 0 a 1 son lentas.
- OPEN-DRAIN (Drenador abierto o colector):
- Lento pero simple.
- Para leer, escribir 1 en la salida.
- Instrucciones especiales para leer registro salida.
- Se puede unir dos salidas, and cableado.
Los micros actuales tienen de ambos tipos; para entrada se suele usar “open drain” y para salida “push pull”.
Los puertos de E/S pueden compartir pines con otros periféricos, que con mecanismos modernos como el “crossbar” puedes seleccionar qué puerto utiliza el periférico.