Puerto SerialPuerto Serial
Transcript of Puerto SerialPuerto Serial
Puerto SerialPuerto SerialPuerto Serial
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
CARACTERÍSTICAS DEL PUERTO SERIE DEL 80C51CARACTERCARACTERÍÍSTICAS DEL PUERTO SERIE DEL 80C51STICAS DEL PUERTO SERIE DEL 80C51
• HABILIDAD DE COMUNICACIÓN FULL- DUPLEX
• HABILIDAD DE COMUNICACIÓN SÍNCRONA Y ASÍNCRONA
• COMPATIBLE CON TTL
• PROTOCOLO DE COMUNICACIÓN ASÍNCRONA DE BIT DE ARRANQUE-BIT DE PARADA
• CUATRO MODOS DE OPERACIÓN
• VELOCIDAD MÁXIMA DE TRANSMISIÓN DE 1 Mbps
• VELOCIDADES DE TRANSMISIÓN /RECEPCIÓN ESTÁNDARS RS-232
•• HABILIDAD DE COMUNICACIHABILIDAD DE COMUNICACIÓÓN FULLN FULL-- DUPLEXDUPLEX
•• HABILIDAD DE COMUNICACIHABILIDAD DE COMUNICACIÓÓN SN SÍÍNCRONA Y ASNCRONA Y ASÍÍNCRONANCRONA
•• COMPATIBLE CON TTLCOMPATIBLE CON TTL
•• PROTOCOLO DE COMUNICACIPROTOCOLO DE COMUNICACIÓÓN ASN ASÍÍNCRONA DE BIT DE ARRANQUENCRONA DE BIT DE ARRANQUE--BIT DE PARADABIT DE PARADA
•• CUATRO MODOS DE OPERACICUATRO MODOS DE OPERACIÓÓNN
•• VELOCIDAD MVELOCIDAD MÁÁXIMA DE TRANSMISIXIMA DE TRANSMISIÓÓN DE 1 N DE 1 MbpsMbps
•• VELOCIDADES DE TRANSMISIVELOCIDADES DE TRANSMISIÓÓN /RECEPCIN /RECEPCIÓÓN ESTN ESTÁÁNDARS RSNDARS RS--232 232
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
•• RIRI BANDERA DE INTERRUPCION DE RECEPCIBANDERA DE INTERRUPCION DE RECEPCIÓÓNN. Se hace uno por hardware al finalizar la recepción del 8avo. bit en modo 0 o hacia la mitad del intervalo de tiempo del STOP bit en los otros modos. Debe hacerse cero por programa.
•• TI TI BANDERA DE INTERRUPCIBANDERA DE INTERRUPCIÓÓN DE TRANSMISIN DE TRANSMISIÓÓNN. Se activa por hardware al final de la transmisión del 8avo. bit en modo 0 o al inicio del STOP bit en los otros modos . Debe desactivarse por programa.
•• RB8 RB8 ES EL 9ES EL 9°°. BIT RECIBIDO EN MODO 2 Y EN MODO 3.. BIT RECIBIDO EN MODO 2 Y EN MODO 3. En modo 1, si SM2 =0, RB8 es el sop bit, en modo 0 no se utiliza.
•• TB8 TB8 ES EL 9ES EL 9°°. BIT A TRANSMITIR EN MODO 2Y EN MODO3. BIT A TRANSMITIR EN MODO 2Y EN MODO3. . Es programable por el usuario, habitualmente es el bit de paridad .
•• REN REN HABILITACIHABILITACIÓÓN DE LA RECEPCIN DE LA RECEPCIÓÓNN. SI REN =1 permite la recepción , si REN=0 se deshabilita la recepción.
•• SM2 SM2 HABILITACIHABILITACIÓÓN DEL MODO MULTIPROCESADORN DEL MODO MULTIPROCESADOR. . En modos 2 y 3, si SM2=1 entonces RI no se activará si el 9° bit de dato (RB8) es igual a cero. En modso 1, si SM2=1 entonces RI no se activará si el stop bit no se ha recibido. En modo 0, SM2 debe ser cero .
•• SM0, SM1SM0, SM1 ESPECIFICAN EL MODO DE OPERCIESPECIFICAN EL MODO DE OPERCIÓÓN DEL PUERTO SERIEN DEL PUERTO SERIE
SCON (Serial SCON (Serial portport Control Control RegisterRegister): Registro de Control del ): Registro de Control del puerto serie,puerto serie,
SM0SM0 SM1SM1 SM2SM2 RENREN TB8TB8 RB8RB8 TITI RIRI
b0b01b2b3b4b5b6b7
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
•• SMOD SMOD BIT PARA DOBLAR EL BAUDAJE BIT PARA DOBLAR EL BAUDAJE . Cuando se pone a 1 y el timer 1 es usado para generar el baudaje y el puerto serial es usado en modo 1,2 ó 3
•• ---- RESERVADORESERVADO
•• ---- RESERVADORESERVADO
•• ---- RESERVADORESERVADO,
•• GF1 GF1 BIT BANDERA DE PROPBIT BANDERA DE PROPÓÓSITO GENERALSITO GENERAL..
•• GF0 GF0 BIT BANDERA DE PROPBIT BANDERA DE PROPÓÓSITO GENERALSITO GENERAL
•• PD PD BIT DE BAJO DE POTENCIA BIT DE BAJO DE POTENCIA .. Poniendo en 1 este bit se activa la operación de bajo consumo de potencia.
•• IDLIDL BIT DE ACTIVACIBIT DE ACTIVACIÓÓN DE MODO OCIOSO (IDLE MODE). N DE MODO OCIOSO (IDLE MODE). Poniendo en 1 este bit se activa el modo de operación ocioso
•• Si se escriben 1Si se escriben 1´ss en PD e IDL, al mismo tiempo, PD tiene en PD e IDL, al mismo tiempo, PD tiene preferencia. El valor de reset de PCON es (0XXX0000).preferencia. El valor de reset de PCON es (0XXX0000).
PCON (PCON (PowerPower Control Control RegisterRegister): Registro de Control de la ): Registro de Control de la Potencia Potencia
SMODSMOD ---- ---- ---- GF1GF1 GF0GF0 PDPD IDLIDL
LSBb01b2b3b4b5b6MSB
MODOS DE OPRECIÓN DEL PUERTO SERIE DEL80C51MODO 0:
características
MODOS DE OPRECIMODOS DE OPRECIÓÓN DEL PUERTO SERIE DEL80C51N DEL PUERTO SERIE DEL80C51MODO 0:MODO 0:
caractercaracteríísticas sticas
• Registro de corrimiento de 8 bits
• Sincrónico
• Baudaje fijo=fosc/12
• Half duplex
•• Registro de corrimiento de 8 bitsRegistro de corrimiento de 8 bits
•• SincrSincróóniconico
•• BaudajeBaudaje fijo=fijo=foscfosc/12/12
•• HalfHalf duplexduplex
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
MODOS DE OPRECIÓN DEL PUERTO SERIE DEL80C51MODO 0:
MODOS DE OPRECIMODOS DE OPRECIÓÓN DEL PUERTO SERIE DEL80C51N DEL PUERTO SERIE DEL80C51MODO 0:MODO 0:
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
LSB MSB
clk
Reloj de sincronía con el Transmior
80C51
RxRx
TxTx
LSBMSB
clk
Reloj de sincronía con el Receptor
80C51
RXRX
TxTx
A) Configurado como TransmisorA) Configurado como Transmisor B) Configurado como ReceptorB) Configurado como Receptor
Registro de corrimiento receptor Registro de corrimiento transmisor
fclk =fosc/12 (fija)
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
DIAGRAMA DEL TRANSMISOR EN MODO 0 (SÍNCRONO)DIAGRAMA DEL TRANSMISOR EN MODO 0 (SDIAGRAMA DEL TRANSMISOR EN MODO 0 (SÍÍNCRONO)NCRONO)
DATO TRANSMITIDO
RELOJ DE SINCRONÍA CON RECEPTOR
LSB
Control RXControl RX
Bus interno de datosBus interno de datos
Buffer serialSBUF
Buffer serialSBUF
Detector de ceroDetector de cero
D Q
Control TXControl TXreloj
start shift
enviar
TI
clk
RXDRXD
TXDTXD
recibir
“1”
escritura al SBUF
Señal de interrupción del puerto serial
Señal de interrupción del puerto serial
RI
estados S6 de los ciclos de máquina
MSB
Shift clk
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
DIAGRAMA DEL RECEPTOR EN MODO 0 (SÍNCRONO)DIAGRAMA DEL RECEPTOR EN MODO 0 (SDIAGRAMA DEL RECEPTOR EN MODO 0 (SÍÍNCRONO)NCRONO)
Transmisor TX
DATO RECIBIDO
RELOJ DE SINCRONÍA CON EL TRANSMISOR
LSB
Control RXControl RX
Buffer serialSBUF
Buffer serialSBUF
Registro de corrimiento de entradaRegistro de corrimiento de entrada
D
RXDRXD
TXDTXD
0
Carga al SBUF
Señal de interrupción del puerto serial
Señal de interrupción del puerto serial
RIestados S6 de los ciclos de máquina
MSB
STARTREN
RI
CLK RECIBE
SHIFT
LSB
MSB
Leer el SBUF
TI ENVIAR
Shift clkShift clk
1111111
Microcontroladores Microcontroladores Puertos de Entrada y Salida ParalelosPuertos de Entrada y Salida Paralelos
Carlos E. Canto QuintalCarlos E. Canto QuintalFACULTAD DE CIENCIAS/ UASLPFACULTAD DE CIENCIAS/ UASLP
EJEMPLO DE APLICACIÓN DEL PUERTO SERIE EN MODO 0EJEMPLO DE APLICACIEJEMPLO DE APLICACIÓÓN DEL PUERTO SERIE EN MODO 0N DEL PUERTO SERIE EN MODO 0
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Expansión de líneas de entrada/ salida usando registros de corrimiento estándards ya sea TTL o CMOSExpansiExpansióón de ln de lííneas de entrada/ salida usando registros de neas de entrada/ salida usando registros de corrimiento corrimiento estestáándardsndards ya sea TTL o CMOSya sea TTL o CMOS
REGISTRO DE CORRIMIENTO74LS165
REGISTRO DE CORRIMIENTO74LS165
SH/LDCLK
QH
DATO SERIE
RXD
TXD
Entrada Paralelo (8 bits)
Pulsos de reloj
Pulso de carga de datos paralelos
80C51
P1.x
Expandiendo el nExpandiendo el núúmero de Entradas con un Registro de Corrimientomero de Entradas con un Registro de Corrimiento
EJEMPLO DE APLICACIÓN DEL PUERTO SERIE EN MODO 0EJEMPLO DE APLICACIEJEMPLO DE APLICACIÓÓN DEL PUERTO SERIE EN MODO 0N DEL PUERTO SERIE EN MODO 0
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Expandiendo el nExpandiendo el núúmero de salidas con un Registro de Corrimientomero de salidas con un Registro de Corrimiento
REGISTRO DE CORRIMIENTO74LS164
REGISTRO DE CORRIMIENTO74LS164
SH/LDCLK
QH
DATO SERIE
RXD
TXD
Salida en Paralelo (8 bits)
Pulsos de reloj
Pulso de descarga de datos en paralelo
80C51
P1.x
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
EJEMPLO DE APLICACIÓN DEL PUERTO SERIE EN MODO 0EJEMPLO DE APLICACIEJEMPLO DE APLICACIÓÓN DEL PUERTO SERIE EN MODO 0N DEL PUERTO SERIE EN MODO 0
4.7 kΩ x 8
80C5180C51
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
220Ω x 7
a
b
c
d
e
f g
74LS24474LS244
E
0
1
2
3
4
5
6
7
74LS16574LS165
TXDTXD
RXDRXD
LD/SH
Teclado lineal convertido en un teclado serie, para optimizar líneas del puerto paralelo
LCALL RSlLCALL RSl
Diagrama de flujo para el teclado serialDiagrama de flujo para el teclado serialPUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Habilita Int.serial
Habilita Int.serial
load 0load 0
RI 0RI 0
Llegó dato RI=1 ?
Llegó dato RI=1 ?
load 1load 1
RETI RETI
selección demodo del serial
selección demodo del serial
Ren 1Ren 1
NOSI
Rutina de servicio de la Interrupción:
Ren 0Ren 0
A SBUFA SBUFload 1load 1
RI 0RI 0
Ren 1Ren 1Decodifica
teclado
Decodificateclado
procesatecla
procesatecla
load 0load 0
0023h
Esta parte es realizada automáticamente por el µC
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Aplicación:Usar un control de nintendo como Teclado serie
AplicaciAplicacióón:n:Usar un control de Usar un control de nintendonintendo como Teclado serie como Teclado serie
Conecte un control de nintendo al µControlador 80C51, como se muestra en la figura, e implemente un programa para que éste se pueda usar como un teclado serie y además que se despliegue en el display de 7 segmentos el valor de la tecla oprimida.
Conector nintendoConector Conector nintendonintendo
Sout
Clk
Load
GND +5V
NC
80C5180C51
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
220Ω x 7a
b
c
d
e
f g
E
+5v
74LS24474LS244
B A
SELECT START
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Proyecto 5:Usar un control de nintendo como Teclado serie
Proyecto 5:Proyecto 5:Usar un control de Usar un control de nintendonintendo como Teclado serie como Teclado serie
Conecte un control de nintendo al µControlador 80C51, como se muestra en la figura, e implemente un programa para que éste se pueda usar como un teclado serial para controlar un motor de pasos con la ayuda del doble puente “H” L293B
Conector nintendoConector Conector nintendonintendo
Sout
Clk
Load
GND +5V
NC
1
2
3
4
4.7 kΩ
L293B
a
b
c
d
E2
E1
80C5180C51
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
+5v
B A
SELECT START
1001
0011
0110
1100
L2L1acbd
Secuencia de activación un motor bipolar con un L293D
Giro en sentido horario
Giro en sentido anti-horario
µC 8051µC 8051
P1.0
P1.1
P1.2
P1.3
1
2
3
4
P3.0
P3.1
P3.7
P3.3
P3.4
P3.5
P3.6
P3.2 ( INT0 )
4.7 kΩ
L293B
a
b
c
d
E2
E1
Conexión del motor de pasos bipolar con un L293D y con el µc 8051
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
PUERTO SERIAL EN MODO1PUERTO SERIAL EN MODO1PUERTO SERIAL EN MODO1
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
CARACTERÍSTICAS DEL PUERTO SERIE EN MODO1CARACTERCARACTERÍÍSTICAS DEL PUERTO SERIE EN MODO1STICAS DEL PUERTO SERIE EN MODO1
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
FULL DUPLEXASÍNCRONOBAUDAJE PROGRAMABLE GENERADO POR EL TIMER1COMPATIBLE CON RS-232FORMATO DE DATO:
8 BITS DE DATO+ 1 START BIT + 1 STOP BIT
FULL DUPLEXFULL DUPLEXASASÍÍNCRONONCRONOBAUDAJE PROGRAMABLE GENERADO POR EL BAUDAJE PROGRAMABLE GENERADO POR EL TIMER1TIMER1COMPATIBLE CON COMPATIBLE CON RSRS--232232FORMATO DE DATO:FORMATO DE DATO:
8 BITS DE DATO+ 1 START BIT + 1 STOP BIT
0
Protocolo de comunicaciProtocolo de comunicacióón asn asííncrona en modo1ncrona en modo1bit de arranque/bit de paradabit de arranque/bit de parada
b0 b1 b2 b3 b4 b5 b6 b7
8 bits de datos
Bit de arranque
Línea ociosa
Bit de parada
1
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
La recepciLa recepcióón en un puerto asn en un puerto asííncrononcrono
¿¿CCóómo identifica el receptor cada bit recibido si mo identifica el receptor cada bit recibido si no hay la transmisino hay la transmisióón de un reloj de n de un reloj de sincronsincroníía ? a ?
La respuesta es: La respuesta es: Muestreando la lMuestreando la líínea de recepcinea de recepcióón n permanentemente y checar su estado lpermanentemente y checar su estado lóógicogico
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Muestreo de cada bit recibido por el puerto serieMuestreo de cada bit recibido por el puerto seriePUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Estado ocioso de la línea=“1”
Muestrea un “1”
Muestrea un “0”
1 2 3 84 5 6 7 9 10 11 12 13 14 1615
Se toman las 3 muestras centrales y se valida el nivel lógico con 2 de tres
La lLa líínea es muestreada permanentemente a una rapidez de 16 veces la nea es muestreada permanentemente a una rapidez de 16 veces la velocidad de transmisivelocidad de transmisióón, con esto cada bit es muestreado 16 veces antes de ser n, con esto cada bit es muestreado 16 veces antes de ser validado su nivel. Con esto se protege al dato si hubiera un desvalidado su nivel. Con esto se protege al dato si hubiera un deslizamiento del lizamiento del dato al siempre tomar las muestras del centro. Ademdato al siempre tomar las muestras del centro. Ademáás se s se protejeproteje contra ruido.contra ruido.
Muestreo de cada bit recibido por el puerto serieMuestreo de cada bit recibido por el puerto seriePUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
1 2 3 84 5 6 7 9 10 11 12 13 14 1615
Se toman las 3 muestras Se toman las 3 muestras centrales y se valida el nivel centrales y se valida el nivel llóógico con 2 de tresgico con 2 de tres
Al ser las 3 muestras centrales las que validan el bit, si el daAl ser las 3 muestras centrales las que validan el bit, si el dato to se desplazara un poco en la recepcise desplazara un poco en la recepcióón todavn todavíía el bit mantendra el bit mantendríía a su nivel lsu nivel lóógico en el receptor.gico en el receptor.
Muestreo de cada bit recibido por el puerto serieMuestreo de cada bit recibido por el puerto seriePUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Muestrea un “1”
Muestrea un “0”
1 2 3 84 5 6 7 9 10 11 12 13 14 1615
Se toman las 3 muestras Se toman las 3 muestras centrales y se valida el nivel centrales y se valida el nivel llóógico con 2 de tresgico con 2 de tres
EliminaciEliminacióón de un falso START bitn de un falso START bit
Muestreo de cada bit recibido por el puerto serieMuestreo de cada bit recibido por el puerto seriePUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
1 2 3 84 5 6 7 9 10 11 12 13 14 1615
Se toman las 3 muestras centrales y se valida el nivel lógico con 2 de tres
Se protege al bit de una seSe protege al bit de una seññal de ruido al descartar este al de ruido al descartar este patrpatróón en la muestras vn en la muestras váálidas que son las 3 del centro del bit lidas que son las 3 del centro del bit
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
CCáálculo del valor de carga para TH1 en modo 2 para un lculo del valor de carga para TH1 en modo 2 para un baudajebaudaje deseado deseado para el puerto seriepara el puerto serie
OSCOSC : 12: 12 : N: N TFTF
: 2: 2: 16: 16
UARTUART
TIMER 1
SMODSMOD
1
0
fosc
12
1
N
fosc12
( 1 )N
( 1 )16
fB=
smod( 2 )
2fosc
Para calcular el valor de N =TH1 en modo 2 tendríamos:
384.fBN=256-TH1=
smod( 2 ) fosc
smod
TH1=256-384.fB
( 2 ) fosc
384. NfB=
smod( 2 ) fosc
384.fBN=
( 2 ) foscsmod
fosc/12fosc/12
La interrupción del timer1 debe estar deshabilitada
La interrupción del timer1 debe estar deshabilitada
Baudajes comúnmente usados generados con el Timer1BaudajesBaudajes comcomúúnmente usados generados con el Timer1nmente usados generados con el Timer1
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Ejemplo1 : Transmitir un carácter por el puerto serie
Ejemplo1 : Ejemplo1 : Transmitir un carTransmitir un caráácter por el puerto serie cter por el puerto serie
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Transfiere continuamente el ASCII de Transfiere continuamente el ASCII de ““AA”” en serie, a 9600 baudsen serie, a 9600 baudsSin usar la interrupciSin usar la interrupcióón del puerto serien del puerto serie
NÓTESE QUE NI LAS INTERRUPCIONES DEL PUERTO SERIE NI LAS DEL TIMER 1 SE HAN HABILITADO
NÓTESE QUE NI LAS INTERRUPCIONES DEL PUERTO SERIE NI LAS DEL TIMER 1 SE HAN HABILITADO
TI 0TI 0
Selección del baudaje.
Selección del baudaje.
Selección delmodo serial
Selección delmodo serial
Transmite DatoTransmite Dato
TransmitióTodo el dato
TI=1 ?
TransmitióTodo el dato
TI=1 ?
Arranca Timer1Arranca Timer1
selección demodo del timer1
selección demodo del timer1
NO
SI
Ejemplo1 : Transmitir un carácter por el puerto serie
Ejemplo1 : Ejemplo1 : Transmitir un carTransmitir un caráácter por el puerto serie cter por el puerto serie
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
INICIA: mov TMOD, #20H ;T1 está en modo 2mov TH1, #-3 ;9600 baudmov SCON, #50H ;8b, 1stop, 1start, REN habilitadosetb TR1 ;arranca T1
OTRO: mov SBUF, #’A’ ;la letra A es transmitidaAQUI: jnb TI, AQUI ;Checa TI hasta que todos los bits sean transmitidos
clr TI ;limpia TI para el siguiente caractersjmp OTRO ;repite
Transfiere continuamente el ASCII de Transfiere continuamente el ASCII de ““AA”” en serie, a 9600 baudsen serie, a 9600 baudsSin usar la interrupciSin usar la interrupcióón del puerto serien del puerto serie
Ejemplo2: Recepción de Datos
Ejemplo2: Ejemplo2: RecepciRecepcióón de Datosn de Datos
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Recibir datos en serie y desplegarlos continuamente en el PuertRecibir datos en serie y desplegarlos continuamente en el Puerto P1, o P1, sin usar sin usar interrupciones.interrupciones.
Lee datoLee dato
Selección del baudaje.
Selección del baudaje.
Selección delmodo serial
Selección delmodo serial
Se recibió un byte RI=1?
Se recibió un byte RI=1?
Arranca Timer1Arranca Timer1
selección demodo del timer1
selección demodo del timer1
NO SIDespliega DatoDespliega Dato RI 0RI 0
Habilita recepción Habilita recepción
Ejemplo2: Recepción de Datos
Ejemplo2: Ejemplo2: RecepciRecepcióón de Datosn de Datos
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
START: MOV TMOD, #20H ;T1 en modo 2MOV TH1, #-3 ;9600 baudMOV SCON, #40H ;8b, 1start, 1stop, REN deshabilitadoSETB TR1 ;arranca T1SET REN ;habilita recepción
HERE: JNB RI, HERE ;espera hasta que un byte sea recibidoMOV A, SBUF ;lee el byte recibido del SBUFMOV P1, A ;despliega en P1CLR RI ;listo para recibir el siguiente byteSJMP HERE ;de nuevo
Recibir datos en serie y desplegarlos continuamente en el PuertRecibir datos en serie y desplegarlos continuamente en el Puerto P1, o P1, sin usar sin usar interrupciones.interrupciones.
Ejemplo3 : Caso Simple de recepciEjemplo3 : Caso Simple de recepcióón usando interrupcionesn usando interrupcionesPUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
El 8051 toma un dato de P1 y lo envía a P2 continuamente mientras recibe datos del puerto serie. El dato del puerto serie se desplegará en P0El 8051 toma un dato de P1 y lo envía a P2 continuamente mientras recibe datos del puerto serie. El dato del puerto serie se desplegará en P0
LCALL RSlLCALL RSlLlegó dato
RI=1 ?
Llegó dato RI=1 ?
Selección del baudaje.
Selección del baudaje.
Selección delmodo serial
Selección delmodo serial
Arranca Timer1Arranca Timer1
selección demodo del timer1
selección demodo del timer1
SI
Lee dato de P1Lee dato de P1
Escribe dato en P2Escribe dato en P2
No
Arranca receptorArranca receptor
Lee datoLee dato
Despliega DatoDespliega Dato
RI 0RI 0
RETI
Rutina de Servicio de la Rutina de Servicio de la InterrupciInterrupcióón del puerto Serialn del puerto Serial
Habilita InterrupciónHabilita Interrupción
Ejemplo3 : Caso Simple de recepciEjemplo3 : Caso Simple de recepcióón usando interrupcionesn usando interrupcionesPUERTO SERIALPUERTO SERIALPUERTO SERIAL
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
El 8051 toma un dato de P1 y lo envía a P2 continuamente mientras recibe datos del puerto serie. El dato del puerto serie se desplegará en P0
ORG 0LJMP MAIN ; evitando los vector de interrupciones
ORG 23H ; RSI del puerto serieLJMP SERIAL
ORG 30HMAIN: MOV P1, #0FFH ; P1 como puerto de entrada
MOV TMOD, #20 ;T1 en modo 2MOV TH1, #-3 ; 9600 baudMOV SCON, #40H ; 8b, 1start, 1stopMOV IE, #10010000B ; habilita interrupcion del serialSETB TR1 ; habilita T1SET REN ; habilita la recepción
BACK: MOV A, P1MOV P2, ASJMP BACK
ORG 100HSERIAL: JB TI, TRANS
MOV A, SBUF ; copia el dato recibidoMOV P0, A ; despliega entrada en P0CLR RI ; limpia RIRETI
TRANS: CLR TI ; no hacer nadaRETI ; RSI no manipula TXEND
El 8051 toma un dato de P1 y lo envía a P2 continuamente mientras recibe datos del puerto serie. El dato del puerto serie se desplegará en P0
ORG 0LJMP MAIN ; evitando los vector de interrupciones
ORG 23H ; RSI del puerto serieLJMP SERIAL
ORG 30HMAIN: MOV P1, #0FFH ; P1 como puerto de entrada
MOV TMOD, #20 ;T1 en modo 2MOV TH1, #-3 ; 9600 baudMOV SCON, #40H ; 8b, 1start, 1stopMOV IE, #10010000B ; habilita interrupcion del serialSETB TR1 ; habilita T1SET REN ; habilita la recepción
BACK: MOV A, P1MOV P2, ASJMP BACK
ORG 100HSERIAL: JB TI, TRANS
MOV A, SBUF ; copia el dato recibidoMOV P0, A ; despliega entrada en P0CLR RI ; limpia RIRETI
TRANS: CLR TI ; no hacer nadaRETI ; RSI no manipula TXEND
Proyecto 6: Proyecto 6: AplicaciAplicacióón de comunicacin de comunicacióón serial en modo 1n serial en modo 1
PUERTO SERIALPUERTO SERIALPUERTO SERIALMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
P0
P1
7805
P2
P3
MAX232
Plug
89C5289C52
Reset
Con
ecto
r DB-
9
11.0592 Mhz
Implemente un programa para el 80C52, para que se transmita a la PC, por su puerto RS232, mensajes que están grabados en la memoria de programa del sistema .Y usar algún programa existente (o implementarlo) para que estos mensajes sean desplegados en lapantalla de la PC.