Puerto SerialPuerto Serial

17
Puerto Serial Puerto Serial Puerto Serial PUERTO SERIAL PUERTO SERIAL MICROCONTROLADORES MICROCONTROLADORES Carlos E. Canto Quintal CARACTER CARACTERÍ STICAS DEL PUERTO SERIE DEL 80C51 STICAS DEL PUERTO SERIE DEL 80C51 HABILIDAD DE COMUNICACI HABILIDAD DE COMUNICACIÓN FULL N FULL- DUPLEX DUPLEX HABILIDAD DE COMUNICACI HABILIDAD DE COMUNICACIÓN S N SÍ NCRONA Y AS NCRONA Y ASÍ NCRONA NCRONA COMPATIBLE CON TTL COMPATIBLE CON TTL PROTOCOLO DE COMUNICACI PROTOCOLO DE COMUNICACIÓN AS N ASÍ NCRONA DE BIT DE ARRANQUE NCRONA DE BIT DE ARRANQUE- BIT DE PARADA BIT DE PARADA CUATRO MODOS DE OPERACI CUATRO MODOS DE OPERACIÓN VELOCIDAD M VELOCIDAD MÁXIMA DE TRANSMISI XIMA DE TRANSMISIÓN DE 1 N DE 1 Mbps Mbps VELOCIDADES DE TRANSMISI VELOCIDADES DE TRANSMISIÓN /RECEPCI N /RECEPCIÓN EST N ESTÁNDARS RS NDARS RS- 232 232 PUERTO SERIAL PUERTO SERIAL MICROCONTROLADORES MICROCONTROLADORES Carlos E. Canto Quintal

Transcript of Puerto SerialPuerto Serial

Page 1: 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

Page 2: Puerto SerialPuerto Serial

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

Page 3: Puerto SerialPuerto Serial

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)

Page 4: Puerto SerialPuerto Serial

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

Page 5: Puerto SerialPuerto Serial

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

Page 6: Puerto SerialPuerto Serial

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

Page 7: Puerto SerialPuerto Serial

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

Page 8: Puerto SerialPuerto Serial

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

Page 9: Puerto SerialPuerto Serial

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

Page 10: Puerto SerialPuerto Serial

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

Page 11: Puerto SerialPuerto Serial

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.

Page 12: Puerto SerialPuerto Serial

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

Page 13: Puerto SerialPuerto Serial

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

Page 14: Puerto SerialPuerto Serial

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

Page 15: Puerto SerialPuerto Serial

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

Page 16: Puerto SerialPuerto Serial

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

Page 17: Puerto SerialPuerto Serial

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.