Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema Clase 1 Seriales PDF
Tema Clase 1 Seriales PDF
CAPITULO 9
Comunicaciones
9.1. INTRODUCCION
El puerto serie puede operar en cuatro modos seleccionados utilizando los bit 6 =
SM1 y bit 7 = SM0 del registro SCON (Apartado 9.3):
• Modo 0: Los datos en serie entran y salen a través de la línea RXD. TXD
presenta los impulsos de desplazamiento del reloj. La palabra de
información a transmitir o recibir es de 8 bits, siendo el primero en salir o en
llegar el bit menos significativo. La velocidad de transmisión expresada en
baudios (baudio = bits/seg) está dada por la relación 1/12 de la frecuencia
de reloj del microcontrolador .
El noveno bit, en la transmisión, puede ser «0» o «1» y es la imagen del bit
TB8 en el registro SCON. Así, el bit de paridad (P, en PSW) puede ser
cargado en TB8 y asignado a este noveno bit en la transmisión. En la
recepción este noveno bit se refleja en el bit RB8 del registro SCON,
mientras el bit de Stop es ignorado. La velocidad de transmisión es
programable bien a 1/32 o 1/64 de la frecuencia del oscilador.
_________________________________________________________________________
ITMAR, Mazatlán 118 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
SM2 no tiene ningún efecto en Modo 0, y en Modo 1 puede utilizarse para compro-
bar la validez del bit de Stop. En una recepción en Modo 1, si SM2=1, la
interrupción de la recepción no se verá activada a no ser que se reciba un bit de
Stop válido, es decir, a nivel alto.
CUADRO 9.1
_________________________________________________________________________
ITMAR, Mazatlán 119 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Los baudios en, Modo 2 dependen del valor del bit 7 (SMOD) del registro PCON
en el SFR. Si SMOD =0 (valor por defecto después del RESET) los baudios son
1/64 de la frecuencia del oscilador-reloj del microcontrolador. Si SMOD = 1 la
velocidad de comunicación es 1/32 de la frecuencia del oscilador-reloj del
microcontrolador, es decir:
2SMOD
BAUDIOS en modo 2 = (frecuencia del oscilador)
64
2SMOD
BAUDIOS en modos 1 y 3 = (relación de desbordamiento Timer 1)
32
_________________________________________________________________________
ITMAR, Mazatlán 120 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
TABLA 9.1
Así, por ejemplo, para obtener una velocidad de comunicación de 9.600 baudios
con el Timer 1 en modo «autorrecarga» como temporizador. Es decir, con el Timer
1 en Modo 2. Si SMOD = 0, y TH1 = FDH = 253, y aplicando la fórmula:
1 11059x103
BAUDIOS = = 9599.83 ≅ 9600
32 12(256 - 253)
_________________________________________________________________________
ITMAR, Mazatlán 121 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
CUADRO 9.2
Figura 9.1
_________________________________________________________________________
ITMAR, Mazatlán 122 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Un estudio más detallado de la Figura 9.1 indica que para que actúe como
«generador de baudios» debe ser RCLK = TCLK = 1 en T2CON, como indica la
figura. El ciclo de «desbordamiento» en TH2 no activa el indicador TF2 ni produce
interrupción, aspecto este que podría darse en los timers del Capítulo 7. Por
consiguiente, cuando se utilice el Timer 2 como «generador de baudios» no se
debe desactivar la interrupción del Timer 2. Obsérvese además que, si EXEN2 se
activa, una transición descendente en el pin T2EX activará la bandera EXF2, pero
no causará recarga del Timer 2. Así pues, cuando el Timer 2 se utilice como
generador de baudios, T2EX puede ser empleado, si se desea, como un
generador de interrupciones externas.
Se aconseja no leer ni escribir los registros TH2 y TL2 cuando el Timer 2 está
trabajando {TR2=1) como «generador de baudios». Bajo estas condiciones el
registro de conteo se incrementa cada periodo de «estado» y el resultado de una
lectura o escritura puede producir una pérdida de exactitud en la evaluación del
tiempo. Los registros RCAP pueden ser leídos, pero no deben ser escritos, puesto
que se podría producir solapamiento en la «recarga» y originar errores de escritura
y/o recarga. Si se desean hacer estas operaciones, desconéctese el Timer 2
(desactivar TR2) antes de acceder al Timer 2 o a los registros RCAP. A
continuación describiremos en detalle los cuatro modos de operación.
Este modo se establece desde los bits 6 y 7 {SM0-SM1) de SCON {Véase Cuadro
9.1 ).
_________________________________________________________________________
ITMAR, Mazatlán 123 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
La transmisión es iniciada por cualquier instrucción que utiliza SBUF como registro
de destino. La señal de «escritura en SBUF» en el estado S6P2, también carga un
«1» en la posición novena del registro de desplazamiento de transmisión e indica
al bloque control TX que comience la transmisión. El intervalo de tiempo que
transcurre desde «la escritura en SBUF» y la activación de la señal de control
SEND es igual aun ciclo máquina completo.
La señal TXD {SHIFT CLOCK) está a nivel bajo durante los estados S3, S4 y S5
de cada ciclo máquina, ya nivel alto durante los estados S6, S1 y S2. En la fase
S6P2 de cada ciclo máquina en el que SEND es activa, el contenido del registro
de desplazamiento transmisor se desplaza a la derecha una posición.
Por cada bit de dato que se desplaza al exterior por la derecha un bit «cero»
ingresa por la izquierda. Cuando el bit más significativo {MSB) del byte de datos
está en la posición de salida del registro de desplazamiento, entonces el «1» que
fue inicialmente cargado en la posición novena se encuentra a la izquierda del
MSB y todas las posiciones a la izquierda de éste contienen «ceros». Esta
condición previene al bloque de control TX para que haga un último
desplazamiento, desactive SEND y active la señal de interrupción TI. Estas
acciones ocurren en la fase S1P1 del décimo ciclo máquina después de «escribir
en SBUF».
ingresa desde el exterior por la derecha es el bit de dato que ha sido muestreado
en el pin 10 (RXD=P3.0) en la fase S5P2 del mismo ciclo máquina.
Figura 9.2
Como los bits de datos entran por la derecha, los «unos» cargados inicialmente
son desplazados «afuera» por la izquierda. Cuando el «0» cargado inicialmente se
encuentre en el extremo izquierdo del registro de desplazamiento, entonces el
bloque de control RX hace un último desplazamiento y carga SBUF, con el byte
ingresado. En el estado S1P1 del décimo ciclo máquina después de la escritura en
SCON, la señal de control RECEIVE es borrada y la bandera de interrupción RI es
puesta a «1».
_________________________________________________________________________
ITMAR, Mazatlán 125 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.3
_________________________________________________________________________
ITMAR, Mazatlán 126 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.4
• Objetivos
• Esquema
Como se ha indicado en los objetivos, por la línea RXD se obtiene el byte de datos
que previamente se captura en paralelo por el Puerto 0, como se indica en la
_________________________________________________________________________
ITMAR, Mazatlán 127 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.5
ETIQUETA CODIGO
_________________________________________________________________________
ITMAR, Mazatlán 128 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
• Objetivos
Figura 9.6
_________________________________________________________________________
ITMAR, Mazatlán 129 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
ETIQUETA CODIGO
ORG 0023H
LJMP 0400
;
;-------------------------------------------------------------------------
; Inicialización
ORG 200H
B0200: MOV IE, #90
MOV SCON, #10
LCALL RETARDO
SJMP B0200
;
;------------------------------------------------------------------------
; Rutina de RETARDO
ORG 300H
_________________________________________________________________________
ITMAR, Mazatlán 130 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
PUSH ACC
MOV A, R2
PUSH ACC
MOV A, SBUF
MOV P0, A
LCALL RETARDO
POP ACC
MOV R2, A
POP ACC
MOV R1, A
POP ACC
MOV R0, A
RETI
En esta opción 10 bits se transmiten a través del pin 11I (TXD=P3.1) o se reciben
a través del pin 10 (RXD=P3.0), de la siguiente manera:
En recepción el indicador RB8 del registro SCON es la imagen del bit de stop. En
el 8051 los baudios vienen dados por la razón de desbordamiento del Timer 1 .En
el 8052, vienen dados bien por la razón de desbordamiento del Timer 1 o del
Timer 2, o de ambos (uno para transmitir y el otro para recibir).
La transmisión se inicia con cualquier instrucción que utilice SBUF como registro
destino. La escritura en SBUF también carga un «1» en la posición del noveno bit
del registro de desplazamiento transmisor y alerta a la unidad de control TX que
una petición de transmisión ha sido solicitada. La transmisión comienza realmente
en la fase S1P1 del siguiente ciclo máquina que resulta después del ciclo de
desbordamiento del contador del timer dividido por 16 (así pues, «el tiempo de
bit» está sincronizado por el contador divisor por 16 y no por la señal de «escritura
en SBUF»).
_________________________________________________________________________
ITMAR, Mazatlán 131 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.7
Como los bits de datos son desplazados al exterior por la derecha, sus lugares
son reemplazados por ceros por la izquierda. Cuando el MSB del byte de datos
está en la posición de salida del registro de desplazamiento, entonces el «1», que
ha sido inicialmente cargado en la novena posición, está a la izquierda del bit MSB
y el resto de posiciones a su izquierda están cargadas con ceros. Estas
condiciones alertan a la unidad de control TX para que realice un último
_________________________________________________________________________
ITMAR, Mazatlán 132 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.8
Los 16 estados del contador dividen cada «tiempo de bit» en 16 intervalos. En los
estados 7, 8 y 9 de cada «tiempo de bit>, el «bit detector» muestrea el valor de
RXD. El valor aceptado es el que ha sido leído en al menos dos de las tres
muestras. Esto se hace para rechazar el ruido eléctrico. Si el valor aceptado
durante el primer «tiempo de bit> no es «cero», los circuitos receptor son
reseteados y la unidad vuelve a alertarse para detectar otra transición de flanco
descendente. Esto está previsto para rechazar falsos bits de start. Si el bit de start
resulta correcto, se desplaza dentro del registro de desplazamiento y lo mismo
haría con el resto de la cadena de bits.
_________________________________________________________________________
ITMAR, Mazatlán 133 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
-- 1) R1=0, y
-- 2) bien SM2=0, o el bit de Stop recibido es igual a «1».
-Velocidad de comunicación:
2SMOD
BAUDIOS = (desbordamiento)
32
_________________________________________________________________________
ITMAR, Mazatlán 134 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
_________________________________________________________________________
ITMAR, Mazatlán 135 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.9
_________________________________________________________________________
ITMAR, Mazatlán 136 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
Figura 9.10
Como en los otros modos, la transmisión se inicia por una instrucción que utilice el
registro SBUF como destino. La señal de escritura en SBUF, también carga TB8
en la posición del noveno bit del registro desplazamiento transmisor y alerta a la
unidad de control TX para que proceda a la transmisión una vez sea solicitada. La
transmisión comienza en la fase S1P1 del ciclo de máquina siguiente que resulta a
partir del desbordamiento del contador del timer dividido por 16 (así pues, el
«tiempo de bit» está sincronizado con el contador divisor por 16, no con la señal
de «escritura en SBUF») (Figura 9.10).
_________________________________________________________________________
ITMAR, Mazatlán 137 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
- 1) RI =-O y
- 2) bien SM2 =0; o el noveno bit recibido es igual a «1».
Obsérvese que el valor del bit de Stop recibido es irrelevante para SBUF, RB8 o
RI.
_________________________________________________________________________
ITMAR, Mazatlán 138 Ing. Rufino J. Domínguez Arellano
El Microprocesador 8051 CAP 9
- Velocidad de comunicación:
• Para el Modo 2:
2SMOD
BAUDIOS = (frecuencia del oscilador)
64
_________________________________________________________________________
ITMAR, Mazatlán 139 Ing. Rufino J. Domínguez Arellano