7.2. El puerto serie (la UART)
Los microcontroladores de la familia MCS-51 disponen del hardware necesario para realizar comunicaciones serie full duplex (transmiten y reciben de forma simultánea), mediante la incorporación de una UART o Transmisor y Receptor Asíncrono Universal (Universal Asynchronous Receiver-Transmitter).
El registro SCON (98H, 152)
Registro de configuración del puerto serie.
MSB |
|
|
|
|
|
|
LSB |
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
9FH |
9EH |
9DH |
9CH |
9BH |
9AH |
99H |
98H |
SM0 - SM1. Selección del modo de operación del puerto serie.
Modo |
SM0 |
SM1 |
Descripción |
Velocidad de operación |
0 |
0 |
0 |
Registro de desplazamiento |
fija (reloj / 12) |
1 |
0 |
1 |
UART de 8 bits |
variable |
2 |
1 |
0 |
UART de 9 bits |
fija (reloj / 64 o reloj / 32) |
3 |
1 |
1 |
UART de 9 bits |
variable |
SM2. Configuración especial de los modos de operación.
- En modo 0: SM2 ha de permanecer a 0.
- En modo 1: Si SM2 está a 1, RI no se activará si no se recibe el bit se Stop.
- En los modos 2 y3: Si SM2 está a 1, habilita el modo multiprocesador, y RI no se activa si el 9º bit (RB8) vale 0.
REN. Control de la recepción
0 -> Inhibir la recepción.
1 -> Permite la recepción de caracteres.
En modo 0: 0 -> Transmisión, 1-> Recepción.
TB8. Para comunicaciones con control de paridad, transmisión.
Corresponde a 9º bit (bit de paridad) a trasmitir en las comunicaciones de 9 bits con control de paridad, en los modos 2 y 3.
RB8. Para comunicaciones con control de paridad, recepción.
- En modo 0: No se utiliza.
- En modo 1: Recoge el bit se Stop.
- En los modos 2 y3: Recibe el 9º bit (bit de paridad).
TI. Indicador o flag de interrupción de transmisión.
Este flag indica el final de la transmisión de un carácter. Se activa al inicio del bit de Stop.
En modo 0, se activa al final del 8º bit.
Se ha de borrar por programa.
RI. Indicador o flag de interrupción de recepción.
Este flag indica la recepción de un nuevo carácter que se encuentra disponible en SBUF. Se activa al final del 8º bit en modo 0, y dentro del bit de Stop en el resto de los modos (con la excepción del modo multiprocesador).
Se ha de borrar por programa.