SlideShare una empresa de Scribd logo
UNIVERSAL
SYNCHRONOUS
ASYNCHRONOUS
RECEIVER TRANSMITTER
(USART)
El módulo transmisor (USART)
es otro de los dos puertos serie de los
que dispone esta familia de micro-
controladores. Los módulos de I/O.
(USART también se conocen como
Serial Communications o Interface o
SCI). El USART puede configurarse
como asíncrono full dúplex que pue-
de comunicar con los dispositivos pe-
riféricos como el terminales de CRT
y los ordenadores personales, o pue-
de configurarse como un sistema sín-
crono half duplex que puede comu-
nicar con otros microcontroladores,
con dispositivos periféricos como
A/D o D/A circuitos integrados, EE-
PROMs serie etc.
El USART puede configurarse en
los modos siguientes:
q Asíncrono( Full duplex )
q Síncrono-Master (half duplex)
q Síncrono-Slave (half duplex)
Poniendo a "1" el bit SPEN (RCS-
TA <7>), y los bitsTRISC <7:6> (RC7
se configura como entrada y RC6 co-
mosalida), seconfigura RC6/TX/CKy
RC7 /RX/DT como USART. En modo
síncrono se utilizan formatos estándar:
un bit de Start y ocho bits o nueve bits
de datos y un bit de Stop,siendo el más
común el de ocho bits de datos.
CURSO DE
MICROCONTROLADORES
PIC16F87X (...y XII)
CURSO DE
MICROCONTROLADORES
PIC16F87X (...y XII)
Fernando Remiro Domínguez
Profesor de Sistemas Electrónicos
IES. Juan de la Cierva
www.terra.es/personal/fremiro
MICROCONTROLADORES
60RESISTOR
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 60
GENERADOR DE BAUDIOS
DEL USART (BRG).
En el protocolo asíncrono RS-232
la frecuencia en baudios a la que se
realiza la transferencia se debe
efectuar a un valor normalizado: 330,
600,1.200, 2400, 4800, 9600, 19.200,
38.400, etc. Para generar esta
frecuencia, el USART dispone de un
generador de frecuencia en Baudios,
BRG, cuyo valor se controla por el
contenido del registro SPBRG.
Además del valor X cargado en el
registro SPBRG. La
frecuencia en baudios del
generador depende del bit
BRGH (TXSTA<1>). Si
BRGH=0 se trabaja a baja
velocidad y si BRGH=1 se
trabaja a alta velocidad.
Según este bit se obtendrá el valor de
una constante K necesaria para
determinar la frecuencia de
funcionamiento.
Este generador sirve tanto para el
modo síncrono como el asíncrono y
consiste de un contador/divisor de
frecuencia de 8 bits controlado por el
registro SPBRG (99H). De tal
manera que la frecuencia de
transmisión se calcula de acuerdo a la
siguiente tabla:
Registro de Estado
y Transmisión TXTA (dirección 98h)
R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0
CSRC TX9 TXEN SYNC ---- BRGH TRMT TX9D
Bit 7 Bit 0
bit 7: CSRC: Bit de selección de fuente del reloj
Modo Asíncrono
Sin importancia
Modo Síncrono
1 = Modo master (reloj generado internamente para BRG
(Generador de Baudios))
0 = Modo esclavo (fuente de reloj externa)
bit 6: TX9: Habilita transmisión de 9-8 bits
1 = Selecciona la transmisión de 9 bits
0 = Selecciona la transmisión de 8 bits
bit 5: TXEN: Bit de habilitación del transmisor
1 = Habilita transmisión
0 = Deshabilita transmisión
Nota: SREN/CREN anula TXEN en modo SYNC.
bit 4: SYNC: Bit de selección del modo USART
1 = Modo Síncrono
0 = Modo Asíncrono
bit 3: Sin implementar: En lectura es'0'
bit 2: BRGH: Bit de selección del rango de baudios alto
Modo Asíncrono
1 = Alta velocidad
0 = Baja velocidad
Modo Síncrono
No se usa este modo
bit 1: TRMT: Bit de estado del registro de desplazamiento del
transmisor (TSR)
1 = TSR vacío
0 = TSR lleno
bit 0: TX9D: Noveno bit de datos de transmisión. Se puede
emplear como bit de paridad.
Registro de Estado y Control de recepción
RCSTA (Dirección 18h)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
Bit 7 Bit 0
bit 7: SPEN: Bit de habilitación del puerto serie
1 = Habilita puerto serie (configura patillas RC7/RX/DT y
RC6/TX/CK para el puerto serie)
0 = Deshabilita puerto serie
bit 6: RX9: Habilita recepción de 9-8 bits
1 = Selecciona 9 bits de recepción
0 = Selecciona 8 bits de recepción
bit 5: SREN: Bit de habilitación de recepción única
Modo asíncrono
Este modo no se usa
Modo Síncrono master
1 = Habilita una recepción única
0 = Deshabilita una recepción única
Este bit se borra después de completar la recepción
Modo Síncrono esclavo
En este modo no se usa
bit 4: CREN: Bit de habilitación de recepción continua
Modo Asíncrono
1 = Habilita recepción continua
0 = Deshabilita recepción continua
Modo Síncrono
1 = Habilita recepción continua hasta que el bit CREN sea
borrado (CREN anula SREN)
0 = Deshabilita la recepción continua
bit 3:ADDEN: Bit de dirección
Modo Asíncrono con 9 bits (RX9=1)
1= Activa la detección de dirección, activa la interrupción y des-
carga el buffer de recepción al activarse RSR<8>
0= Desactiva la detección de dirección, todos los bits son recibidos
y el noveno bit puede utilizarse como bit de paridad.
bit 2: FERR: Bit de error de empaquetamiento
1 = Error de empaquetamiento (Puede actualizarse al leer el
registro RCREG y recibir el siguiente byte)
0 = No hay error
bit 1: OERR: Bit de error de desbordamiento
1 = Error de desbordamiento (puede ser borrado al borrar CREN)
0 = No hay desbordamiento
bit 0: RX9D: Noveno bit de datos de recepción. Se puede emplear
como bit de paridad
0 (Modo asíncrono) Baud rate = FOSC/(64(X+1)) Baud rate = FOSC/16(X+1))
1 (Modo Síncrono) Baud rate = FOSC/(4(X+1)) --
X = Valor en SPBRG (0 a 255)
SYNC BRGH=0(baja velocidad) BRGH=1 (Alta Velocidad)
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 61
MICROCONTROLADORES
62RESISTOR
Debido a que el divisor es de 8
bits, no se puede tener cualquier
velocidad de transmisión deseada, ya
que X se deberá redondear al entero
más cercano. En las dos tablas
anteriores se muestran algunos
valores de velocidad de transmisión
(baud) estándar, el divisor necesario
(X=SPBRG) bajo diferentes
frecuencias Fosc y el error producido
en porcentaje. Como puede
apreciarse, el error no tiene ninguna
importancia para la mayoría de
las aplicaciones, no obstante, se
puede realizar los cálculos
empleando el índice (BRGH=1)
y sustituyendo la constante 64
por 16 (ver la tabla) y comprobar
si el error se reduce.
Los datos que llegan a la
patilla RC7/RX/DT se muestrean
en tres instantes para detectar y
determinar mejor si el nivel
presente en la patilla RX está a
nivel alto o bajo. Si el bit BRGH
(TXSTA<2>) está a cero, el
muestreo se realiza en el séptimo,
octavo, y noveno flanco de
bajada de x16 de reloj.
Si por el contrario, el bit
BRGH está a uno, el muestreo tiene
lugar en el tercer flanco de reloj
precedido de la segunda subida de
reloj y de la primera bajada de x4 de
reloj.
BAUD FOSC = 20MHz FOSC = 16MHz FOSC = 10MHz
RATES KBAUD % SPBRG KBAUD % SPBRG KBAUD % SPBRG
(K) ERROR Valordecimal ERROR Valor decimal ERROR Valor
decimal
0.3 - - - - - - - - -
1.2 1.221 1.75 255 1.202 0.17 207 1.202 0.17 129
2.4 2.404 0.17 129 2.404 0.17 103 2.404 0.17 64
9.6 9.766 1.73 31 9.615 0.16 25 9.766 1.73 15
19.2 19.531 1.72 15 19.231 0.16 12 19.531 1.72 7
28.8 31.250 8.51 9 27.778 3.55 8 31.350 8.51 4
33.6 34.722 3.34 8 35.714 6.29 6 31.250 6.99 4
57.6 62.500 8.51 4 62.500 8.51 3 52.083 9.58 2
HIG 1.221 - 255 0.977 - 255 0.610 - 255
LOW 312.500 - 0 250.000 - 0 156.250 - 0
BAUD RATES en Modo Asíncrono (BRGH=0)
BAUD FOSC = 20MHz FOSC = 16MHz FOSC = 10MHz
RATES KBAUD % SPBRG KBAUD % SPBRG KBAUD % SPBRG
(K) ERROR Valordecimal ERROR Valor decimal ERROR Valor
decimal
0.3 - - - - - - - - -
1.2 - - - - - - - - -
2.4 - - - - - - 2441 1.71 255
9.6 9.615 0.16 129 9.615 0.16 103 9.615 0.16 64
19.2 19.231 0.16 64 19.231 0.16 51 19.531 1.72 31
28.8 29.070 0.94 42 29.412 2.13 33 28.409 1.36 21
33.6 33.784 0.55 36 33.333 0.79 29 32.895 2.10 18
57.6 59.524 3.34 20 58.825 2.13 16 56.818 1.36 10
HIG 4.883 - 255 3.906 - 255 2.441 - 255
LOW 1250.000 - 0 1000.000 - 0 625.000 - 0
BAUD RATES en Modo Asíncrono (BRGH=1)
BAUD FOSC = 4MHz FOSC = 3.6864MHz
RATES KBAUD % PBRG KBAUD % SPBRG
(K) ERROR Valor ERROR Valor decimal
decimal
0.3 0.300 0 207 0.3 0 191
1.2 1.202 0.17 51 1.2 0 47
2.4 2.404 0.17 25 2.4 0 23
9.6 8.929 6.99 5 9.6 0 5
19.2 20.833 8.51 2 19.3 0 2
28.8 31.250 8.51 1 28.8 0 1
33.6 - - - - 0 -
57.6 62.500 8.51 0 57.6 0 0
HIG 0.244 - 255 0.225 0 255
LOW 62.500 - 0 57.6 0 0
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 62
63RESISTOR
BAUD FOSC = 4MHz FOSC = 3.6864MHz
RATES KBAUD % PBRG KBAUD % SPBRG
(K) ERROR Valor ERROR Valor decimal
decimal
0.3 - - - - - -
1.2 1.202 0.17 207 1.2 0 191
2.4 2.404 0.17 103 2.4 0 95
9.6 9.615 0.16 25 9.6 0 23
19.2 19.231 0.16 12 19.2 0 11
28.8 27.798 3.55 8 28.8 0 7
33.6 35.714 6.29 6 32.9 2.04 6
57.6 62.500 8.51 3 57.6 0 3
HIG 0.977 - 255 0.9 0 255
LOW 250.000 - 0 230.4 0 0
EL USART EN MODO
ASÍNCRONO
Como ya se ha dicho, en este
modo de comunicaciones se emplea
una configuración estándar de un bit
de Start, ocho o nueve bits de datos, y
un bit de Stop. Este modo de trabajo
se detiene durante la función Sleep.
Aunque el USART tiene
funciones independientes para la
transmisión y recepción, los formatos
de datos y de velocidad de
transmisión es igual para los dos
casos. El generador de baudios
produce siempre las señales de reloj
x16 ó x64 dependiendo de BRGH
(TXSTA<2>) para el desplazamiento
de los bits. El bit de paridad no está
soportado por el hardware, pero se
puede implementar por software
empleando para ello el noveno bit de
datos.
La selección del modo asíncrono
se realiza poniendo a cero el bit
SYNC (TXSTA<4>).
El modulo asíncrono del USART
se consigue con la combinación de
importantes elementos:
q El generador de baudios
q El circuito de muestreo
q Transmisor asíncrono
q Receptor asíncrono
EL USART TRANSMISIÓN
ASINCRONA
Para realizar una transmisión de
datos, el registro de desplazamiento
TSR obtiene los datos del registro
(buffer) de lectura/escritura TXREG.
El registro de desplazamiento TSR no
carga el bit de Stop hasta que se hayan
transmitido los datos cargados. Una
vez que se haya enviado este bit, el
registro será cargado con los nuevos
datos (si están disponibles), en este
caso el bit TXIF (PIR1 <4>) se pone a
uno, y se genera una interrupción si
está habilitada (PIE1 <4>).
Los pasos necesarios para
realizar una transmisión asíncrona son
los siguientes:
qInicializar el registro SPBRG con el
valor apropiado según los cálculos
realizados. Si se desea el
margen alto se pondrá a uno el bit
BRGH.
qHabilitar el puerto asíncrono bo-
rrando el bit SYN y poniendo a uno
el SPEN.
qHabilitar la interrupción (si se de-
sea) poniendo a uno el bit TXIE.
qPoner a cero o a uno el bit TX9 (8 ó
9 bits).
qHabilitar la transmisión poniendo a
uno el bit TXEN, el cual pondrá a
uno el bit TXIF.
qSi se han seleccionado 9 bits se
deben poner el noveno en el bit
TX9D.
qCargar el dato en el registro TXREG
(comenzar la transmisión).
Ejemplo:
Cálculo de la proporción del error de velocidad de
transmisión para las siguientes condiciones:
FOSC = 16 MHZ
Velocidad de transmisión deseada = 9600 baudios
BRGH = 0
SYNC = 0
Velocidad de transmisión =
9600 =
X = (25,042) = 25
= 9615
= 0,16%
FOSC
(64* (X + 1))
error =
9615 - 9600
9600
Velocidad de transmisión =
16000000
(64* (X + 1))
16.000.000
(64* (X + 1))
bit
START
1º
bit
8º
bit
bit
Stop
Dato
Figura 1.- La palabra de transmisión va precedida de un bit de Start y
termina con un bit de Stop
Registros asociados al Generador de Baud Rate
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X
99h SPGBRG Registro generador de Baud Rate
Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0"
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 63
EL USART EN MODO
RECEPCIÓN ASÍNCRONA`
En el modo de recepción, los datos
son recibidos por la patilla RC7/RX/DT
y se introducen en serie en el registro
RSR; después de recibir el bit de Stop
los datos acumulados en este registro se
cargan en el de datos RCREG (si está
vacío). Cuando la transferencia se ha
completado, el bit RCIF (PIR1 <5>)
pone a uno. La interrupción puede
habilitarse o deshabilitarse colocando a
uno o a cero, respectivamente, el bit
RCIE (PIE1 <5>). El bit RCIF se borra
cuando el registro RCREG se ha leído
(se "vacía" el registro). Para configurar
el puerto como receptor hay que seguir
los siguientes pasos:
qInicializar el registro SPBRG con el
valor apropiado según los cálculos re-
alizados. Si se desea el margen alto se
pondrá a uno el bit BRGH.
qHabilitar el puerto asíncrono borran-
do el bit SYN y poniendo a uno el
SPEN.
qHabilitar la interrupción (si se desea)
poniendo a uno el bit RCIE.
qPoner a uno el bit RX9 para habilitar
9 bits de recepción.
qHabilitar la recepción poniendo a uno
el bit CREN.
qEl flag RCIF subirá a uno cuando
se complete la recepción.
qSe ocasionará una interrupción si es-
tá habilitado el bit RCIE.
qLeer el registro RCSTA, cargar el no-
veno bit (si está habilitado) y com-
probar si ha ocurrido un error duran-
te la recepción.
qLeer el octavo bit recibido y dar lec-
tura al registro RCREG para conocer
si el dispositivo se ha direccionado.
qSi ha ocurrido un error borrarlo po-
niendo a cero el bit CREN.
Si el dispositivo ha sido
direccionado, borrar el bit ADDEN
para permitir que los datos puedan
leerse del buffer receptor
MODO SÍNCRONO
Este modo de trabajo tiene dos
posibles formas de configuración, como
master y como esclavo. En el modo
master la transmisión y recepción no
MICROCONTROLADORES
64RESISTOR
TXIE
TXIF
Interrupción
TXEN
CLK
Rango de Baudios
Generador de Baudios
MSB LSB
Bus de Datos
Registro TXREG
Pin del Buffer
y Control
RC6/TX/CX pin
TRMT SPEN
SPBRG
Registro TSR
(8) (0)
TX9
TX9D
8
Figura 2.- Diagrama de bloques del
módulo USART configurado como
transmisor
Escritura en TXREG
Palabra 1
Salida BRG
(Reloj desplaz.)
Pin RC6/TX/CX
Bit TXIF
(Flag de Buffer vacio)
Bit TRMT
(Flag reg. desplazamiento
vacío)
Palabra 1
Transmite Reg. de desplazamiento
Bit de Start Bit 0 Bit 1 Bit 7/8 Bit Stop
PALABRA 1
Escritura en TXREG
Palabra1 Palabra2Salida BRG
(Reloj desplazamiento)
Pin RC6/TX/CK
Bit TXIF
(flag reg.Interrupción)
bit TRMT
(flag regi.desplazamiento)
PALABRA1
Transmite Reg. desplazamiento
Nota.- Este diagrama muestra dos transmisiones consecutivas
PALABRA1
Bit Start Bit 0 Bit 1 Bit 7/8 Bit Stop Bit Start Bit 0
PALABRA 2
PALABRA2
Transmite Reg. desplazamiento
TRANSMISIÓN ASÍNCRONA
Figura 3
Figura 4
TRANSMISIÓN ASINCRONA CONTINUA
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 64
65RESISTOR
REGISTROS ASOCIADOS A LA TRANSMISIÓN ASINCRONA
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Bh, 8Bh
10Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN -- FERR OERR RX9D 0000 -00X 0000 000X
19h TXREG Registro Transmisor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
tienen lugar al mismo tiempo, cuando se
transmite un dato, la recepción es
inhibida y viceversa. En la transmisión el
registro de desplazamiento, TSR
(Transmit Shift Register), obtiene los
datos del registro de lectura/escritura
TXREG, pero éste no se carga hasta que
el último bit de la anterior carga no haya
sido transmitido; cuando esto suceda el
TSR se vuelve a cargar con el nuevo dato
del registro TXREG (si está disponible)
éste se vacía y se genera una interrupción
(si está habilitada por el bit TXIE,
PIE1<4>. La transmisión se habilita por
el bit TXEN del registro TXSTA<5>, si
se borra durante una transmisión, ésta
será abortada y reseteado el transmisor.
Para iniciar una transmisión es
necesario seguir los siguientes pasos:
qInicializar el registro SPBRG con el
valor apropiado calculado.
qHabilitar el puerto master asíncrono
colocando a uno los bits SYN, SPEN
y CSRC.
qSi se desea emplear la interrupción,
habilitarla poniendo a uno el bitTXIE.
q Si se desea una transmisión de nueve
bits, el noveno se cargar en el bitTX9.
qHabilitar la transmisión poniendo a
uno el bit TXEN.
qSi se ha habilitado la transmisión de
9 bits, el noveno se cargar en el regis-
tro TX9D.
qLa transmisión se iniciar al
cargar los datos en el registro
TXREG.
EL USART EN MODO MASTER
SÍNCRONO
Para seleccionar el modo receptor
master hay que poner a uno el bit
SREN (RCSTA<5> o habilitar el
REGISTROS ASOCIADOS A LA RECEPCIÓN ASINCRONA
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Bh, 8Bh
10Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00X 0000 000X
1Ah RCREG Registro Receptor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
SPBRG
RC7/RX/DT
SPEN
Patilla del buffer
de control
Recuperación
de datos
Stop (8) 7 å åå 1 0 Start
Registro RSRMsb LSb
Rx9
8
CREN
OERR FERR
8
RX9D Registro RCREG
RX9
ADDEN
RX9
ADDEN
RSR<8>
Habilita
carga del
buffer
receptor
Interrupción
8
Bus de datos
FIFO
RCIF
RCIE
P64
P16
o
Figura 5.- Diagrama de Bloques del
Módulo USART configurado en modo
Receptor
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 65
66RESISTOR
CREN (RCSTA<4>). El dato es
tomado de la patilla RC7/WDT por
cada flanco de caída del reloj , si el bit
SREN está a uno, sólo se recibir una
palabra, pero si se borra el bit CREN la
recepción ser continua. Después del
último impulso de reloj, el dato
recibido en el registro de
desplazamiento RSR será transferido
al RCREG (si está vacío). Una vez
haya terminado la recepción se originar
una interrupción si ésta está habilitada,
RCIE (PIE1 <5>).
Los pasos a seguir para iniciar la
recepción en modo master son las
siguientes:
qInicializar el registro SPBRG con el
valor apropiado de baudios.
qHabilitar el puerto master asíncrono
colocando a uno los bits SYN, SPEN
y CSRC.
qAsegurarse de que los bits CREN y
SREN están borrados.
qSi se desea emplear la interrupción
habilitarla poniendo a uno el bit RCIE.
qSi se desean nueve bits poner a uno
el bit RX9.
qSi sólo se desea una recepción única,
poner a uno el bit SREN; para recep-
ción continua poner a uno el bit
CREN.
qEl flag de interrupción RCIF se pone
a uno cuando la recepción haya fina-
lizado si está habilitada por el bit
RCIE.
qLeer el registro RCSTA y cargar el
noveno bit (si está habilitado) y com-
probar si ha ocurrido un error duran-
te la recepción.
qLeer el octavo bit recibido y dar lec-
tura al registro RCREG.
qSi ha ocurrido un error borrarlo po-
niendo a cero el bit CREN.
MODO ESCLAVO SÍNCRONO
Este modo de trabajo difiere del
modo master, pues la señal de reloj de
desplazamientos es proporcionada
RC7/RX/DT (pin)
Carga RSR
Lectura
RCIF
bit
Start bit 0 bit 1 bit 8 bit 0 bit 8 bit
Stop
bit
Stop
bit
Start
Bit8=0, Byte de datos Bit8=1, Byte de dirección PALABRA1
RCREG
Nota.- Este diagrama de tiempos muestra un byte de datosseguido de un byte de dirección. El byte de datos no se lee en el RCREG (buffer de rección)
porque ADDEN = 1
RC7/RX/DT (pin)
Carga RSR
Lectura
RCIF
bit
Start bit 0 bit 1 bit 8 bit 0 bit 8 bit
Stop
bit
Stop
bit
Start
Bit 8 = 1. Byte de Dirección Bit8 = 0, Byte de Datos PALABRA1
RCREG
Figura 6.-Recepción Asíncrona con Dirección y Primer Byte
Figura 7
RECEPCIÓN ASÍNCRONA CON DETECCIÓN DE DIRECCIÓN
RECEPCIÓN ASÍNCRONA CON DIRECCIÓN Y PRIMER BYTE
Registros de Sincronización en modo master en transmisión
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Bh, 8Bh,
108Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF(1 ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X
1Ah TXREG Registro Receptor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0"
Nota.- Este diagrama muestra un byte dirección seguido por un byte de datos. El byte de datos no se lee eb RCREC (Buffer recptor)
porque ADEN no se ha actualizado y todabía = 0
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 66
67RESISTOR
Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1Q2Q2Q2 Q2Q2Q2Q2Q2Q2Q2Q2Q3 Q3 Q3 Q3 Q3 Q3 Q3Q3 Q3 Q3 Q3 Q3Q4Q4Q4 Q1Q4Q4Q4Q4Q4Q4Q4Q4Q4
Bit0 Bit 1 Bit 2 Bit0 Bit 1Bit 7 Bit 7
Palabra 1 Palabra 2
RC7/RX/DT pin
TC6/TX/CK pin
Escritura en
Reg. TXREG
bit TXIF
(Flag de Interrupción)
bit TRMT
bit TXEN
"1" "1"
Nota.- Modo master Sincrono; SPBRG="0". Transmisión Continua de 2 palagras de 8 bits
Figura 8
externamente por la patilla
RC6/TX/CK en lugar de ser generada
internamente, esto permite que se
puedan transferir o recibir datos cuando
el dispositivo está en el modo Sleep.
Las operaciones de transmisión son
idénticas al modo Master, excepto en el
caso del modo Sleep.
Si se escriben dos palabras en el
registro TXREG y después se ejecuta la
instrucción Sleep, ocurrirá lo siguiente:
qLa primera palabra será inmediata-
mente transferida al registro TSR y
transmitida.
qLa segunda palabra permanece en el
registro TXREG.
qEl bit TXIF no se pondrá a uno.
qCuando la primera palabra haya sali-
do del registro TSR, la segunda pala-
bra, que permanece en el registroTX-
REG, se envía al TSR y el flag TXIF
se pone a uno.
qSi está habilitado el bit TXIF la inte-
rrupción despierta al microcontrolador
de modo Sleep y el programa saltar a
la dirección del vector de interrupcio-
nes (0004 hex.).
EJEMPLOS DE CONTROL DEL
USAR CONECTADO AL
PUERTO SERIE DEL
ORDENADOR
Para poder conectar las líneas del
PIC16F87X que entrega niveles TTL
con el puerto serie RS-232 que son
compatibles, es necesario utilizar un
circuito interface que traduzca los datos
del microcontrolador al puerto serie del
ordenador y viceversa, nosotros
hemos utilizado un MAX232, te-
niendo mucho cuidado para no
equivocarnos con la polaridad de
los condensadores. El circuito uti-
lizado es el que se muestra en la
Figura 10. Los lectores que lo de-
seen pueden ponerse en contacto
con el autor de este curso en fre-
miro@teleline.es para solicitar las
placas del entrenador de micro-
controladores PIC de bajo costo
que se ha diseñado para el
aprendizaje de estos microcon-
troladores.
Además del circuito, necesi-
taremos para comprobar el funciona-
miento los estos ejemplos de comuni-
caciones, necesitamos un programa de
comunicaciones como el HiperTerminal
de Windows y un cable serie en cone-
xión de MODEM nulo, que deberá de
conectarse tal y como se muestra en la
Figura 11.
EL HyperTerminal es un programa
general de comunicaciones de Win-
dows, que resulta válido para conectar-
se con otros ordenadores o dispositi-
vos. Hay programas de comunicacio-
nes mucho más potentes que éste. Sin
embargo, HyperTerminal se caracteriza
por su facilidad de uso y su fácil ad-
quisición ya que viene integrado dentro
deWindows. Puede ocurrir que el pro-
grama HyperTerminal no esté cargado,
TRANSMISIÓN SINCRONA
pin RC7/RX/DT bit 0 bit 1 bit 2 bit 6 bit 7
Pin RC6/TX/CK
Escritura en
el reg. TXREG
bit TXIF
bit TRMT
bit TXEN
TRANSMISIÓN ASINCRONA ( a traves del TXEN)
Registros de Sincronización en modo master en recepción
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X
1Ah RCGEG Registro Receptor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0"
Figura 9
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 67
MICROCONTROLADORES
68RESISTOR
para ello hay que seguir el mismo pro-
cedimiento que para cualquier otro pro-
grama de Windows, ejecutando en el
siguiente orden: Panel de Control >
Agregar o Quitar programas > Insta-
lación deWindows > Comunicaciones
y activar la casilla correspondiente a
HyperTerminal.
Para ejecutar HyperTerminal hay
que seguir los siguientes pasos:
1.Activar Inicio > Programas >Acce-
sorios > Comunicaciones y selec-
VCC
C4
1µF
C5
1µF U1
TXPC
RC7
RC6
C3
10nF
MAX232
14
13
12
11
9
10
15
16
RXPC
TXPC
C6
1µF
C7
1µF
1
2
3
6
4
5
8
7
C1+
V+
C1-
V-
C2+
C2-
T1OUT
R1IN
R10UT
T1IN
9
10
8
7 GND
VCC
1
DB9
5
9
4
8
3
7
2
6
VCC
RXPC
Vcc= 5V
MCLR
RA0
RA1
RA2
RA3
RA4
RA5
Vss
OSC1
OSC2/CKOUT
RC0
RC1
RC2
RC3
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
VDD
VSS
RC7
RC6
RC5
RC4
Reset
R1
10KΩ
R2 100Ω
R9 300Ω
R8 300Ω
R7 300Ω
R6 300Ω
R5 300Ω
R4 300Ω
RB0
RB1
RB2
RB3
RB4
RB5
RB6
R3 300Ω
Vcc=5V
C1 27 pF
C2 27 pF
XT 4Mhz
R10 300Ω RB7
PIC16F876
Figura 10.- Circuito de aplicación para
comprobar el funcionamiento del USART
del PIC16F876 y el puerto serie del
ordenador.
Figura 11.- Conexión del cable serie como MODEM nulo
Figura 14 HyperTerminal.Figura 12.-Hipertermina
Figura 13.- Conectar con...
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 68
MICROCONTROLADORES
69RESISTOR
cionar HyperTerminal. Se advierte
que no se trata de un programa, si-
no de una carpeta cuyo contenido es
un único programa denominada Hy-
pertrm. Cada vez que se ejecuta el
programa Hypertrm se le pide al
usuario la información suficiente pa-
ra crear en la carpeta HyperTermi-
nal una nueva conexión, es decir, un
lugar de destino con el que conec-
tarse.
2. Ejecutar el programa Hypertrm para
crear una nueva conexión, se le pre-
gunta el nombre que asignará a la co-
nexión, teclear por ejemplo
"PIC16F876" y elegir un icono con
el que se quiera representar la cone-
xión, figura 12.
3.En la siguiente pantalla Conecta con
elegirlaopción Conectarusando: Di-
recto a Com2, figura 13. Se va a utili-
zar el puerto serie Com2 para comu-
nicar el ordenador y el microcontro-
lador. También se puede elegir el
COM1.
4.Aparece una pantalla con las
Propiedades de COM. Seleccionar las
apropiadasparaelsistemautilizado.Para
nuestros ejemplos utilizamos las
opcionesquesemuestranenlafigura14.
5.A continuación aparece la pantalla de
trabajo tal como la mostrada en la
figura 15.
Para conectar el ordenador y el
microcontrolador a través del puerto
serie COM 2, basta con activar la opción
"Llama" (o icono de teléfono colgado) y
para desconectar hay que activar opción
"Desconecta" (o icono de teléfono
descolgado. Una vez configurada una
conexión, para comenzar la
comunicación simplemente ha de
ejecutar el icono de la conexión
previamente configurada tal como se
muestra en la figura 16.
El programa monitor232.asm
configura el USART para trabajar a
9.600 baudios, con un bit de Stop y sin
bit de paridad, seguidamente se queda a
la espera de recibir un dato por el puerto
serie y cuando lo hace lo muestra en el
PORTB.
Por su parte el programa
Transmite232.asm configura el USART
para trabajar a 9.600 baudios, con un bit
de Stop y sin bit de paridad,
seguidamente transmite cada segundo la
cadena de caracteres "HOLA" cada
segundo que se reflejan en el
HiperTerminal.
Figura 15 .-Hyperterminal. Pantalla de trabajo
Figura 16.- Hyperterminal. Ejemplos de conexiones
configuradas
; ;*********************************************************************************
; PROGRAMA : monitor232.asm
; Este programa escucha el puerto serie rs232 sin usar las interrupciones y cuando recibe un byte lo muestra
;en PortB hasta que otro lo sobrescriba.Configuración del puerto serie: 9600 baudios,8 bits,paridad = none
;
; Revisión : 1.0 Programa para : PIC16F876
; CPU Clock : 4 MHz Reloj instrucción : 1 MHz = 1 _s
; WDT : Deshabilitado Tipo de reloj : XT
; Protección de Código : OFF
;**********************************************************************************
LIST P=16F876 ;Se indica el modo de procesador
INCLUDE <P16f876.inc> ;se incluye la definicion de los
CBLOCK 0x20
Buffer ;Buffer entrante
ENDC
;*****************************VECTOR DE RESET *************************************
; ORG 0x00 ;Inicio en elVector de Reset
; goto INICIO ;Va a la primera instrucción del
;programa
ORG 0x05 ;Inicio en elVector de Reset
;*****************************INICIO PROGRAMA PRINCIPAL *****************************
INICIO clrf PORTB ;Limpia salidas
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 69
clrf PORTC ;del PORTB y del PORTC
bsf STATUS,RP0 ;Selecciona el Banco1
clrf TRISB ;Puerta B como salida
movlw b'10011111' ;RC7/Rx entrada,
movwf TRISC ;RC6/Tx salida y RC5 Salida.
movlw b'00000100' ;Configuracion USART
movwf TXSTA ;y activacion de transmision
movlw .25 ;9600 baudios
movwf SPBRG
bcf STATUS,RP0 ;Selecciona el Banco 0
bsf RCSTA,SPEN ;se activa la USART
movlw b'10010000' ;Configuracion de la usart
movwf RCSTA ;para recepcion continua
;------Bucle de comprobacion si llega dato mayor de 0 por puerto serie------
BUCLE movf RCREG,W ;Lectura dato recibido
movwf Buffer ;Visualiza dato recibido
movlw .0 ;comprueba que se reciba algo que
subwf Buffer,W ;no sea cero...
btfsc STATUS,C
goto Mayordecero ;dato valido.
goto BUCLE ;dato no valido.. es cero..vuelve.
Mayordecero movf Buffer,W ;muestra el dato en portb
movwf PORTB ;y lo deja ayi hasta que llegue otro
goto BUCLE ;retorna a esperar otro dato valido
;*****************************************************************************
ORG 0x1F00
bcf PCLATH,4
bcf PCLATH,3 ;Selecciona la página 0
goto INICIO ;Salto a la dirección de INICIO del programa
;*****************************************************************************
END
;***********************************************************************
; PROGRAMA :Trans232.asm
;Este programa transmite los bytesASCII "HOLA "por el puerte serie del microcontrolador
; a intervalos de 1 segundo.
; Configuración del piuerto serie COM: 9600 baudios,8 bits,paridad = none
;
; Revision : 1.0 Programa para : PIC16F876
; CPU Clock : 4 MHz Reloj instruccion : 1 MHz = 1 us
; WDT : Deshabilitado Tipo de reloj : XT
; Protección de Código : OFF
;************************************************************************
LIST P=16F876 ;Se indica el modo de procesador
INCLUDE<P16f876.inc> ;se incluye la definicion de los
CBLOCK 0x20
ContadorA
ContadorB
ContadorC
ENDC
;************************************VECTOR DE RESET *********************
; ORG 0x00
; goto INICIO ;Va a la primera instruccion del programa
ORG 0x05
;*******************************INICIO PROGRAMA PRINCIPAL ****************
INICIO clrf PORTB ;Limpia PORTB y PORTC
clrf PORTC
bsf STATUS,RP0 ;Selecciona el Banco 1
clrf TRISB ;Puerta B como salida
movlw b'10111111' ;RC7/Rx entrada,
movwf TRISC ;RC6/Tx salida.
movlw b'00100100' ;Configuración USART
movwf TXSTA ;y activación de transmisión
movlw .25 ;9600 baudios
movwf SPBRG
bcf STATUS,RP0 ;Selecciona el Banco 0
bsf RCSTA,SPEN ;se activa la USART
bsf STATUS,RP0 ;Selecciona el Banco 1
bsf TXSTA,TXEN ;Habilita la transmisión
bcf STATUS,RP0 ;Selecciona el Banco 0
Bucle call Delay
movlw 'H' ;CarácterASCII
movwf TXREG ;
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw 'O' ;carácterASCII
movwf TXREG
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX_2 btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX_2
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw 'L' ;carácterASCII
movwf TXREG
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX_3 btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX_3
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw 'A' ;carácterASCII
movwf TXREG
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX_4 btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX_4
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw '-' ;carácterASCII en decimal
movwf TXREG
goto Bucle
;**************************SUBRUTINAS *********************
;Delay = 1,0000020 s with Osc = 4 MHz
Delay movlw D'6'
movwf ContadorC
movlw D'24'
movwf ContadorB
movlw D'168'
movwf ContadorA
loop decfsz ContadorA,F
goto loop
decfsz ContadorB,F
goto loop
decfsz ContadorC,F
goto loop
return
;***********************************************************
ORG 0x1F00
bcf PCLATH,4
bcf PCLATH,3 ;Selecciona la página 0
goto INICIO ;Salto a la dirección de
INICIO del programa
;**********************************************************
END
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 70

Más contenido relacionado

La actualidad más candente

Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01
Hamiltonn Casallas
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02
Hamiltonn Casallas
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
Hamiltonn Casallas
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
Derlis Hernandez Lara
 
Usart
UsartUsart
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
Luis Zurita
 
Comunicación serial PIC16F877A
Comunicación serial PIC16F877AComunicación serial PIC16F877A
Comunicación serial PIC16F877A
Liliana Rodríguez
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
Luis Zurita
 
PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84
Juan Navarrete Guzman
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
Percy Julio Chambi Pacco
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
Luis Zurita
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
Luis Zurita
 
Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
Luis Zurita
 
Timers 2
Timers 2Timers 2
Timers 2
georgemanson69
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
Fernando Aparicio Urbano Molano
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
xeleta
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
guestf09168b
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877
Raphael Raphael
 
Usart 3
Usart 3Usart 3

La actualidad más candente (20)

Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
Usart
UsartUsart
Usart
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 
Comunicación serial PIC16F877A
Comunicación serial PIC16F877AComunicación serial PIC16F877A
Comunicación serial PIC16F877A
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
Timers 2
Timers 2Timers 2
Timers 2
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877
 
Usart 3
Usart 3Usart 3
Usart 3
 

Similar a Curso de microcontroladores capitulo 12

Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
Fernando Aparicio Urbano Molano
 
Txusart
TxusartTxusart
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
Luis Zurita
 
Usart PIC config LANDA
Usart PIC config LANDAUsart PIC config LANDA
Usart PIC config LANDA
dave
 
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
SANTIAGO PABLO ALBERTO
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
Jair BG
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
Jair BG
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
Jair BG
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
Jair BG
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009
Jair BG
 
Clase USART
Clase USARTClase USART
Micc final feb14_2009
Micc final feb14_2009Micc final feb14_2009
Micc final feb14_2009
Jair BG
 
Comunicación RS-232
Comunicación RS-232Comunicación RS-232
Comunicación RS-232
Rubén Loredo
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
Lopez Guzman
 
DIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMADIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMA
Lilibeth de los Angeles
 
I2C PIC18F4550
I2C PIC18F4550I2C PIC18F4550
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
SANTIAGO PABLO ALBERTO
 
Microcontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdfMicrocontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdf
Edwin4321
 
101172 pic16f877-en-espanol1
101172 pic16f877-en-espanol1101172 pic16f877-en-espanol1
101172 pic16f877-en-espanol1
grana2810
 
Puertoserial[1]
Puertoserial[1]Puertoserial[1]
Puertoserial[1]
henrymiranda00
 

Similar a Curso de microcontroladores capitulo 12 (20)

Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Txusart
TxusartTxusart
Txusart
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Usart PIC config LANDA
Usart PIC config LANDAUsart PIC config LANDA
Usart PIC config LANDA
 
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009
 
Clase USART
Clase USARTClase USART
Clase USART
 
Micc final feb14_2009
Micc final feb14_2009Micc final feb14_2009
Micc final feb14_2009
 
Comunicación RS-232
Comunicación RS-232Comunicación RS-232
Comunicación RS-232
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 
DIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMADIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMA
 
I2C PIC18F4550
I2C PIC18F4550I2C PIC18F4550
I2C PIC18F4550
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
 
Microcontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdfMicrocontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdf
 
101172 pic16f877-en-espanol1
101172 pic16f877-en-espanol1101172 pic16f877-en-espanol1
101172 pic16f877-en-espanol1
 
Puertoserial[1]
Puertoserial[1]Puertoserial[1]
Puertoserial[1]
 

Más de Hamiltonn Casallas

Sistema Ubuntu
Sistema UbuntuSistema Ubuntu
Sistema Ubuntu
Hamiltonn Casallas
 
Compilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PICCompilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PIC
Hamiltonn Casallas
 
Electricidad básica y aplicaciones
Electricidad básica y aplicacionesElectricidad básica y aplicaciones
Electricidad básica y aplicaciones
Hamiltonn Casallas
 
Reparacion de radios AM/FM
Reparacion de radios AM/FMReparacion de radios AM/FM
Reparacion de radios AM/FM
Hamiltonn Casallas
 
Armado de un amplificador para automovil.
Armado de un amplificador para automovil.Armado de un amplificador para automovil.
Armado de un amplificador para automovil.
Hamiltonn Casallas
 
Circuitos impresos
Circuitos impresosCircuitos impresos
Circuitos impresos
Hamiltonn Casallas
 
Amplificadores en puente.
Amplificadores en puente.Amplificadores en puente.
Amplificadores en puente.
Hamiltonn Casallas
 
Disipadores de calor
Disipadores de calorDisipadores de calor
Disipadores de calor
Hamiltonn Casallas
 
Reparación de amplificadores de audio
Reparación de amplificadores de audioReparación de amplificadores de audio
Reparación de amplificadores de audio
Hamiltonn Casallas
 
Amplificador Push - Pull
Amplificador Push - PullAmplificador Push - Pull
Amplificador Push - Pull
Hamiltonn Casallas
 
Amplificador de potencia de audio
Amplificador de potencia de audioAmplificador de potencia de audio
Amplificador de potencia de audio
Hamiltonn Casallas
 
Construcción de bobinas ajustables.
Construcción de bobinas ajustables.Construcción de bobinas ajustables.
Construcción de bobinas ajustables.
Hamiltonn Casallas
 
Circuito de entrada y antena.
Circuito de entrada y antena.Circuito de entrada y antena.
Circuito de entrada y antena.
Hamiltonn Casallas
 
Diseño de un amplificador de RF.
Diseño de un amplificador de RF.Diseño de un amplificador de RF.
Diseño de un amplificador de RF.
Hamiltonn Casallas
 
El transformador eléctrico.
El transformador eléctrico.El transformador eléctrico.
El transformador eléctrico.
Hamiltonn Casallas
 
Radios de AM
Radios de AMRadios de AM
Radios de AM
Hamiltonn Casallas
 
Fundamentos del diodo.
Fundamentos del diodo.Fundamentos del diodo.
Fundamentos del diodo.
Hamiltonn Casallas
 
Armando un generador de RF
Armando un generador de RFArmando un generador de RF
Armando un generador de RF
Hamiltonn Casallas
 
La reactancia en la electricidad.
La reactancia en la electricidad.La reactancia en la electricidad.
La reactancia en la electricidad.
Hamiltonn Casallas
 

Más de Hamiltonn Casallas (19)

Sistema Ubuntu
Sistema UbuntuSistema Ubuntu
Sistema Ubuntu
 
Compilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PICCompilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PIC
 
Electricidad básica y aplicaciones
Electricidad básica y aplicacionesElectricidad básica y aplicaciones
Electricidad básica y aplicaciones
 
Reparacion de radios AM/FM
Reparacion de radios AM/FMReparacion de radios AM/FM
Reparacion de radios AM/FM
 
Armado de un amplificador para automovil.
Armado de un amplificador para automovil.Armado de un amplificador para automovil.
Armado de un amplificador para automovil.
 
Circuitos impresos
Circuitos impresosCircuitos impresos
Circuitos impresos
 
Amplificadores en puente.
Amplificadores en puente.Amplificadores en puente.
Amplificadores en puente.
 
Disipadores de calor
Disipadores de calorDisipadores de calor
Disipadores de calor
 
Reparación de amplificadores de audio
Reparación de amplificadores de audioReparación de amplificadores de audio
Reparación de amplificadores de audio
 
Amplificador Push - Pull
Amplificador Push - PullAmplificador Push - Pull
Amplificador Push - Pull
 
Amplificador de potencia de audio
Amplificador de potencia de audioAmplificador de potencia de audio
Amplificador de potencia de audio
 
Construcción de bobinas ajustables.
Construcción de bobinas ajustables.Construcción de bobinas ajustables.
Construcción de bobinas ajustables.
 
Circuito de entrada y antena.
Circuito de entrada y antena.Circuito de entrada y antena.
Circuito de entrada y antena.
 
Diseño de un amplificador de RF.
Diseño de un amplificador de RF.Diseño de un amplificador de RF.
Diseño de un amplificador de RF.
 
El transformador eléctrico.
El transformador eléctrico.El transformador eléctrico.
El transformador eléctrico.
 
Radios de AM
Radios de AMRadios de AM
Radios de AM
 
Fundamentos del diodo.
Fundamentos del diodo.Fundamentos del diodo.
Fundamentos del diodo.
 
Armando un generador de RF
Armando un generador de RFArmando un generador de RF
Armando un generador de RF
 
La reactancia en la electricidad.
La reactancia en la electricidad.La reactancia en la electricidad.
La reactancia en la electricidad.
 

Último

Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Alejandrino Halire Ccahuana
 
Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
LuanaJaime1
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
LudmilaOrtega3
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
LuanaJaime1
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
100078171
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
ROCIORUIZQUEZADA
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Demetrio Ccesa Rayme
 
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdfAPUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
VeronicaCabrera50
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
karlafreire0608
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
RicardoValdiviaVega
 
Vida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.pptVida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.ppt
LinoLatella
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 
Chatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdfChatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdf
Demetrio Ccesa Rayme
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
romina395894
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 

Último (20)

Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
 
Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
 
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdfAPUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
 
Vida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.pptVida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.ppt
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 
Chatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdfChatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdf
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 

Curso de microcontroladores capitulo 12

  • 1. UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER (USART) El módulo transmisor (USART) es otro de los dos puertos serie de los que dispone esta familia de micro- controladores. Los módulos de I/O. (USART también se conocen como Serial Communications o Interface o SCI). El USART puede configurarse como asíncrono full dúplex que pue- de comunicar con los dispositivos pe- riféricos como el terminales de CRT y los ordenadores personales, o pue- de configurarse como un sistema sín- crono half duplex que puede comu- nicar con otros microcontroladores, con dispositivos periféricos como A/D o D/A circuitos integrados, EE- PROMs serie etc. El USART puede configurarse en los modos siguientes: q Asíncrono( Full duplex ) q Síncrono-Master (half duplex) q Síncrono-Slave (half duplex) Poniendo a "1" el bit SPEN (RCS- TA <7>), y los bitsTRISC <7:6> (RC7 se configura como entrada y RC6 co- mosalida), seconfigura RC6/TX/CKy RC7 /RX/DT como USART. En modo síncrono se utilizan formatos estándar: un bit de Start y ocho bits o nueve bits de datos y un bit de Stop,siendo el más común el de ocho bits de datos. CURSO DE MICROCONTROLADORES PIC16F87X (...y XII) CURSO DE MICROCONTROLADORES PIC16F87X (...y XII) Fernando Remiro Domínguez Profesor de Sistemas Electrónicos IES. Juan de la Cierva www.terra.es/personal/fremiro MICROCONTROLADORES 60RESISTOR 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 60
  • 2. GENERADOR DE BAUDIOS DEL USART (BRG). En el protocolo asíncrono RS-232 la frecuencia en baudios a la que se realiza la transferencia se debe efectuar a un valor normalizado: 330, 600,1.200, 2400, 4800, 9600, 19.200, 38.400, etc. Para generar esta frecuencia, el USART dispone de un generador de frecuencia en Baudios, BRG, cuyo valor se controla por el contenido del registro SPBRG. Además del valor X cargado en el registro SPBRG. La frecuencia en baudios del generador depende del bit BRGH (TXSTA<1>). Si BRGH=0 se trabaja a baja velocidad y si BRGH=1 se trabaja a alta velocidad. Según este bit se obtendrá el valor de una constante K necesaria para determinar la frecuencia de funcionamiento. Este generador sirve tanto para el modo síncrono como el asíncrono y consiste de un contador/divisor de frecuencia de 8 bits controlado por el registro SPBRG (99H). De tal manera que la frecuencia de transmisión se calcula de acuerdo a la siguiente tabla: Registro de Estado y Transmisión TXTA (dirección 98h) R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 CSRC TX9 TXEN SYNC ---- BRGH TRMT TX9D Bit 7 Bit 0 bit 7: CSRC: Bit de selección de fuente del reloj Modo Asíncrono Sin importancia Modo Síncrono 1 = Modo master (reloj generado internamente para BRG (Generador de Baudios)) 0 = Modo esclavo (fuente de reloj externa) bit 6: TX9: Habilita transmisión de 9-8 bits 1 = Selecciona la transmisión de 9 bits 0 = Selecciona la transmisión de 8 bits bit 5: TXEN: Bit de habilitación del transmisor 1 = Habilita transmisión 0 = Deshabilita transmisión Nota: SREN/CREN anula TXEN en modo SYNC. bit 4: SYNC: Bit de selección del modo USART 1 = Modo Síncrono 0 = Modo Asíncrono bit 3: Sin implementar: En lectura es'0' bit 2: BRGH: Bit de selección del rango de baudios alto Modo Asíncrono 1 = Alta velocidad 0 = Baja velocidad Modo Síncrono No se usa este modo bit 1: TRMT: Bit de estado del registro de desplazamiento del transmisor (TSR) 1 = TSR vacío 0 = TSR lleno bit 0: TX9D: Noveno bit de datos de transmisión. Se puede emplear como bit de paridad. Registro de Estado y Control de recepción RCSTA (Dirección 18h) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D Bit 7 Bit 0 bit 7: SPEN: Bit de habilitación del puerto serie 1 = Habilita puerto serie (configura patillas RC7/RX/DT y RC6/TX/CK para el puerto serie) 0 = Deshabilita puerto serie bit 6: RX9: Habilita recepción de 9-8 bits 1 = Selecciona 9 bits de recepción 0 = Selecciona 8 bits de recepción bit 5: SREN: Bit de habilitación de recepción única Modo asíncrono Este modo no se usa Modo Síncrono master 1 = Habilita una recepción única 0 = Deshabilita una recepción única Este bit se borra después de completar la recepción Modo Síncrono esclavo En este modo no se usa bit 4: CREN: Bit de habilitación de recepción continua Modo Asíncrono 1 = Habilita recepción continua 0 = Deshabilita recepción continua Modo Síncrono 1 = Habilita recepción continua hasta que el bit CREN sea borrado (CREN anula SREN) 0 = Deshabilita la recepción continua bit 3:ADDEN: Bit de dirección Modo Asíncrono con 9 bits (RX9=1) 1= Activa la detección de dirección, activa la interrupción y des- carga el buffer de recepción al activarse RSR<8> 0= Desactiva la detección de dirección, todos los bits son recibidos y el noveno bit puede utilizarse como bit de paridad. bit 2: FERR: Bit de error de empaquetamiento 1 = Error de empaquetamiento (Puede actualizarse al leer el registro RCREG y recibir el siguiente byte) 0 = No hay error bit 1: OERR: Bit de error de desbordamiento 1 = Error de desbordamiento (puede ser borrado al borrar CREN) 0 = No hay desbordamiento bit 0: RX9D: Noveno bit de datos de recepción. Se puede emplear como bit de paridad 0 (Modo asíncrono) Baud rate = FOSC/(64(X+1)) Baud rate = FOSC/16(X+1)) 1 (Modo Síncrono) Baud rate = FOSC/(4(X+1)) -- X = Valor en SPBRG (0 a 255) SYNC BRGH=0(baja velocidad) BRGH=1 (Alta Velocidad) 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 61
  • 3. MICROCONTROLADORES 62RESISTOR Debido a que el divisor es de 8 bits, no se puede tener cualquier velocidad de transmisión deseada, ya que X se deberá redondear al entero más cercano. En las dos tablas anteriores se muestran algunos valores de velocidad de transmisión (baud) estándar, el divisor necesario (X=SPBRG) bajo diferentes frecuencias Fosc y el error producido en porcentaje. Como puede apreciarse, el error no tiene ninguna importancia para la mayoría de las aplicaciones, no obstante, se puede realizar los cálculos empleando el índice (BRGH=1) y sustituyendo la constante 64 por 16 (ver la tabla) y comprobar si el error se reduce. Los datos que llegan a la patilla RC7/RX/DT se muestrean en tres instantes para detectar y determinar mejor si el nivel presente en la patilla RX está a nivel alto o bajo. Si el bit BRGH (TXSTA<2>) está a cero, el muestreo se realiza en el séptimo, octavo, y noveno flanco de bajada de x16 de reloj. Si por el contrario, el bit BRGH está a uno, el muestreo tiene lugar en el tercer flanco de reloj precedido de la segunda subida de reloj y de la primera bajada de x4 de reloj. BAUD FOSC = 20MHz FOSC = 16MHz FOSC = 10MHz RATES KBAUD % SPBRG KBAUD % SPBRG KBAUD % SPBRG (K) ERROR Valordecimal ERROR Valor decimal ERROR Valor decimal 0.3 - - - - - - - - - 1.2 1.221 1.75 255 1.202 0.17 207 1.202 0.17 129 2.4 2.404 0.17 129 2.404 0.17 103 2.404 0.17 64 9.6 9.766 1.73 31 9.615 0.16 25 9.766 1.73 15 19.2 19.531 1.72 15 19.231 0.16 12 19.531 1.72 7 28.8 31.250 8.51 9 27.778 3.55 8 31.350 8.51 4 33.6 34.722 3.34 8 35.714 6.29 6 31.250 6.99 4 57.6 62.500 8.51 4 62.500 8.51 3 52.083 9.58 2 HIG 1.221 - 255 0.977 - 255 0.610 - 255 LOW 312.500 - 0 250.000 - 0 156.250 - 0 BAUD RATES en Modo Asíncrono (BRGH=0) BAUD FOSC = 20MHz FOSC = 16MHz FOSC = 10MHz RATES KBAUD % SPBRG KBAUD % SPBRG KBAUD % SPBRG (K) ERROR Valordecimal ERROR Valor decimal ERROR Valor decimal 0.3 - - - - - - - - - 1.2 - - - - - - - - - 2.4 - - - - - - 2441 1.71 255 9.6 9.615 0.16 129 9.615 0.16 103 9.615 0.16 64 19.2 19.231 0.16 64 19.231 0.16 51 19.531 1.72 31 28.8 29.070 0.94 42 29.412 2.13 33 28.409 1.36 21 33.6 33.784 0.55 36 33.333 0.79 29 32.895 2.10 18 57.6 59.524 3.34 20 58.825 2.13 16 56.818 1.36 10 HIG 4.883 - 255 3.906 - 255 2.441 - 255 LOW 1250.000 - 0 1000.000 - 0 625.000 - 0 BAUD RATES en Modo Asíncrono (BRGH=1) BAUD FOSC = 4MHz FOSC = 3.6864MHz RATES KBAUD % PBRG KBAUD % SPBRG (K) ERROR Valor ERROR Valor decimal decimal 0.3 0.300 0 207 0.3 0 191 1.2 1.202 0.17 51 1.2 0 47 2.4 2.404 0.17 25 2.4 0 23 9.6 8.929 6.99 5 9.6 0 5 19.2 20.833 8.51 2 19.3 0 2 28.8 31.250 8.51 1 28.8 0 1 33.6 - - - - 0 - 57.6 62.500 8.51 0 57.6 0 0 HIG 0.244 - 255 0.225 0 255 LOW 62.500 - 0 57.6 0 0 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 62
  • 4. 63RESISTOR BAUD FOSC = 4MHz FOSC = 3.6864MHz RATES KBAUD % PBRG KBAUD % SPBRG (K) ERROR Valor ERROR Valor decimal decimal 0.3 - - - - - - 1.2 1.202 0.17 207 1.2 0 191 2.4 2.404 0.17 103 2.4 0 95 9.6 9.615 0.16 25 9.6 0 23 19.2 19.231 0.16 12 19.2 0 11 28.8 27.798 3.55 8 28.8 0 7 33.6 35.714 6.29 6 32.9 2.04 6 57.6 62.500 8.51 3 57.6 0 3 HIG 0.977 - 255 0.9 0 255 LOW 250.000 - 0 230.4 0 0 EL USART EN MODO ASÍNCRONO Como ya se ha dicho, en este modo de comunicaciones se emplea una configuración estándar de un bit de Start, ocho o nueve bits de datos, y un bit de Stop. Este modo de trabajo se detiene durante la función Sleep. Aunque el USART tiene funciones independientes para la transmisión y recepción, los formatos de datos y de velocidad de transmisión es igual para los dos casos. El generador de baudios produce siempre las señales de reloj x16 ó x64 dependiendo de BRGH (TXSTA<2>) para el desplazamiento de los bits. El bit de paridad no está soportado por el hardware, pero se puede implementar por software empleando para ello el noveno bit de datos. La selección del modo asíncrono se realiza poniendo a cero el bit SYNC (TXSTA<4>). El modulo asíncrono del USART se consigue con la combinación de importantes elementos: q El generador de baudios q El circuito de muestreo q Transmisor asíncrono q Receptor asíncrono EL USART TRANSMISIÓN ASINCRONA Para realizar una transmisión de datos, el registro de desplazamiento TSR obtiene los datos del registro (buffer) de lectura/escritura TXREG. El registro de desplazamiento TSR no carga el bit de Stop hasta que se hayan transmitido los datos cargados. Una vez que se haya enviado este bit, el registro será cargado con los nuevos datos (si están disponibles), en este caso el bit TXIF (PIR1 <4>) se pone a uno, y se genera una interrupción si está habilitada (PIE1 <4>). Los pasos necesarios para realizar una transmisión asíncrona son los siguientes: qInicializar el registro SPBRG con el valor apropiado según los cálculos realizados. Si se desea el margen alto se pondrá a uno el bit BRGH. qHabilitar el puerto asíncrono bo- rrando el bit SYN y poniendo a uno el SPEN. qHabilitar la interrupción (si se de- sea) poniendo a uno el bit TXIE. qPoner a cero o a uno el bit TX9 (8 ó 9 bits). qHabilitar la transmisión poniendo a uno el bit TXEN, el cual pondrá a uno el bit TXIF. qSi se han seleccionado 9 bits se deben poner el noveno en el bit TX9D. qCargar el dato en el registro TXREG (comenzar la transmisión). Ejemplo: Cálculo de la proporción del error de velocidad de transmisión para las siguientes condiciones: FOSC = 16 MHZ Velocidad de transmisión deseada = 9600 baudios BRGH = 0 SYNC = 0 Velocidad de transmisión = 9600 = X = (25,042) = 25 = 9615 = 0,16% FOSC (64* (X + 1)) error = 9615 - 9600 9600 Velocidad de transmisión = 16000000 (64* (X + 1)) 16.000.000 (64* (X + 1)) bit START 1º bit 8º bit bit Stop Dato Figura 1.- La palabra de transmisión va precedida de un bit de Start y termina con un bit de Stop Registros asociados al Generador de Baud Rate Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset 98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010 18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X 99h SPGBRG Registro generador de Baud Rate Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0" 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 63
  • 5. EL USART EN MODO RECEPCIÓN ASÍNCRONA` En el modo de recepción, los datos son recibidos por la patilla RC7/RX/DT y se introducen en serie en el registro RSR; después de recibir el bit de Stop los datos acumulados en este registro se cargan en el de datos RCREG (si está vacío). Cuando la transferencia se ha completado, el bit RCIF (PIR1 <5>) pone a uno. La interrupción puede habilitarse o deshabilitarse colocando a uno o a cero, respectivamente, el bit RCIE (PIE1 <5>). El bit RCIF se borra cuando el registro RCREG se ha leído (se "vacía" el registro). Para configurar el puerto como receptor hay que seguir los siguientes pasos: qInicializar el registro SPBRG con el valor apropiado según los cálculos re- alizados. Si se desea el margen alto se pondrá a uno el bit BRGH. qHabilitar el puerto asíncrono borran- do el bit SYN y poniendo a uno el SPEN. qHabilitar la interrupción (si se desea) poniendo a uno el bit RCIE. qPoner a uno el bit RX9 para habilitar 9 bits de recepción. qHabilitar la recepción poniendo a uno el bit CREN. qEl flag RCIF subirá a uno cuando se complete la recepción. qSe ocasionará una interrupción si es- tá habilitado el bit RCIE. qLeer el registro RCSTA, cargar el no- veno bit (si está habilitado) y com- probar si ha ocurrido un error duran- te la recepción. qLeer el octavo bit recibido y dar lec- tura al registro RCREG para conocer si el dispositivo se ha direccionado. qSi ha ocurrido un error borrarlo po- niendo a cero el bit CREN. Si el dispositivo ha sido direccionado, borrar el bit ADDEN para permitir que los datos puedan leerse del buffer receptor MODO SÍNCRONO Este modo de trabajo tiene dos posibles formas de configuración, como master y como esclavo. En el modo master la transmisión y recepción no MICROCONTROLADORES 64RESISTOR TXIE TXIF Interrupción TXEN CLK Rango de Baudios Generador de Baudios MSB LSB Bus de Datos Registro TXREG Pin del Buffer y Control RC6/TX/CX pin TRMT SPEN SPBRG Registro TSR (8) (0) TX9 TX9D 8 Figura 2.- Diagrama de bloques del módulo USART configurado como transmisor Escritura en TXREG Palabra 1 Salida BRG (Reloj desplaz.) Pin RC6/TX/CX Bit TXIF (Flag de Buffer vacio) Bit TRMT (Flag reg. desplazamiento vacío) Palabra 1 Transmite Reg. de desplazamiento Bit de Start Bit 0 Bit 1 Bit 7/8 Bit Stop PALABRA 1 Escritura en TXREG Palabra1 Palabra2Salida BRG (Reloj desplazamiento) Pin RC6/TX/CK Bit TXIF (flag reg.Interrupción) bit TRMT (flag regi.desplazamiento) PALABRA1 Transmite Reg. desplazamiento Nota.- Este diagrama muestra dos transmisiones consecutivas PALABRA1 Bit Start Bit 0 Bit 1 Bit 7/8 Bit Stop Bit Start Bit 0 PALABRA 2 PALABRA2 Transmite Reg. desplazamiento TRANSMISIÓN ASÍNCRONA Figura 3 Figura 4 TRANSMISIÓN ASINCRONA CONTINUA 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 64
  • 6. 65RESISTOR REGISTROS ASOCIADOS A LA TRANSMISIÓN ASINCRONA Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset 0Bh, 8Bh 10Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN -- FERR OERR RX9D 0000 -00X 0000 000X 19h TXREG Registro Transmisor USAR 0000 0000 0000 0000 8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010 99h SPGBRG Registro generador de Baud Rate tienen lugar al mismo tiempo, cuando se transmite un dato, la recepción es inhibida y viceversa. En la transmisión el registro de desplazamiento, TSR (Transmit Shift Register), obtiene los datos del registro de lectura/escritura TXREG, pero éste no se carga hasta que el último bit de la anterior carga no haya sido transmitido; cuando esto suceda el TSR se vuelve a cargar con el nuevo dato del registro TXREG (si está disponible) éste se vacía y se genera una interrupción (si está habilitada por el bit TXIE, PIE1<4>. La transmisión se habilita por el bit TXEN del registro TXSTA<5>, si se borra durante una transmisión, ésta será abortada y reseteado el transmisor. Para iniciar una transmisión es necesario seguir los siguientes pasos: qInicializar el registro SPBRG con el valor apropiado calculado. qHabilitar el puerto master asíncrono colocando a uno los bits SYN, SPEN y CSRC. qSi se desea emplear la interrupción, habilitarla poniendo a uno el bitTXIE. q Si se desea una transmisión de nueve bits, el noveno se cargar en el bitTX9. qHabilitar la transmisión poniendo a uno el bit TXEN. qSi se ha habilitado la transmisión de 9 bits, el noveno se cargar en el regis- tro TX9D. qLa transmisión se iniciar al cargar los datos en el registro TXREG. EL USART EN MODO MASTER SÍNCRONO Para seleccionar el modo receptor master hay que poner a uno el bit SREN (RCSTA<5> o habilitar el REGISTROS ASOCIADOS A LA RECEPCIÓN ASINCRONA Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset 0Bh, 8Bh 10Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00X 0000 000X 1Ah RCREG Registro Receptor USAR 0000 0000 0000 0000 8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010 99h SPGBRG Registro generador de Baud Rate SPBRG RC7/RX/DT SPEN Patilla del buffer de control Recuperación de datos Stop (8) 7 å åå 1 0 Start Registro RSRMsb LSb Rx9 8 CREN OERR FERR 8 RX9D Registro RCREG RX9 ADDEN RX9 ADDEN RSR<8> Habilita carga del buffer receptor Interrupción 8 Bus de datos FIFO RCIF RCIE P64 P16 o Figura 5.- Diagrama de Bloques del Módulo USART configurado en modo Receptor 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 65
  • 7. 66RESISTOR CREN (RCSTA<4>). El dato es tomado de la patilla RC7/WDT por cada flanco de caída del reloj , si el bit SREN está a uno, sólo se recibir una palabra, pero si se borra el bit CREN la recepción ser continua. Después del último impulso de reloj, el dato recibido en el registro de desplazamiento RSR será transferido al RCREG (si está vacío). Una vez haya terminado la recepción se originar una interrupción si ésta está habilitada, RCIE (PIE1 <5>). Los pasos a seguir para iniciar la recepción en modo master son las siguientes: qInicializar el registro SPBRG con el valor apropiado de baudios. qHabilitar el puerto master asíncrono colocando a uno los bits SYN, SPEN y CSRC. qAsegurarse de que los bits CREN y SREN están borrados. qSi se desea emplear la interrupción habilitarla poniendo a uno el bit RCIE. qSi se desean nueve bits poner a uno el bit RX9. qSi sólo se desea una recepción única, poner a uno el bit SREN; para recep- ción continua poner a uno el bit CREN. qEl flag de interrupción RCIF se pone a uno cuando la recepción haya fina- lizado si está habilitada por el bit RCIE. qLeer el registro RCSTA y cargar el noveno bit (si está habilitado) y com- probar si ha ocurrido un error duran- te la recepción. qLeer el octavo bit recibido y dar lec- tura al registro RCREG. qSi ha ocurrido un error borrarlo po- niendo a cero el bit CREN. MODO ESCLAVO SÍNCRONO Este modo de trabajo difiere del modo master, pues la señal de reloj de desplazamientos es proporcionada RC7/RX/DT (pin) Carga RSR Lectura RCIF bit Start bit 0 bit 1 bit 8 bit 0 bit 8 bit Stop bit Stop bit Start Bit8=0, Byte de datos Bit8=1, Byte de dirección PALABRA1 RCREG Nota.- Este diagrama de tiempos muestra un byte de datosseguido de un byte de dirección. El byte de datos no se lee en el RCREG (buffer de rección) porque ADDEN = 1 RC7/RX/DT (pin) Carga RSR Lectura RCIF bit Start bit 0 bit 1 bit 8 bit 0 bit 8 bit Stop bit Stop bit Start Bit 8 = 1. Byte de Dirección Bit8 = 0, Byte de Datos PALABRA1 RCREG Figura 6.-Recepción Asíncrona con Dirección y Primer Byte Figura 7 RECEPCIÓN ASÍNCRONA CON DETECCIÓN DE DIRECCIÓN RECEPCIÓN ASÍNCRONA CON DIRECCIÓN Y PRIMER BYTE Registros de Sincronización en modo master en transmisión Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset 0Bh, 8Bh, 108Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF(1 ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X 1Ah TXREG Registro Receptor USAR 0000 0000 0000 0000 8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010 99h SPGBRG Registro generador de Baud Rate Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0" Nota.- Este diagrama muestra un byte dirección seguido por un byte de datos. El byte de datos no se lee eb RCREC (Buffer recptor) porque ADEN no se ha actualizado y todabía = 0 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 66
  • 8. 67RESISTOR Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1Q2Q2Q2 Q2Q2Q2Q2Q2Q2Q2Q2Q3 Q3 Q3 Q3 Q3 Q3 Q3Q3 Q3 Q3 Q3 Q3Q4Q4Q4 Q1Q4Q4Q4Q4Q4Q4Q4Q4Q4 Bit0 Bit 1 Bit 2 Bit0 Bit 1Bit 7 Bit 7 Palabra 1 Palabra 2 RC7/RX/DT pin TC6/TX/CK pin Escritura en Reg. TXREG bit TXIF (Flag de Interrupción) bit TRMT bit TXEN "1" "1" Nota.- Modo master Sincrono; SPBRG="0". Transmisión Continua de 2 palagras de 8 bits Figura 8 externamente por la patilla RC6/TX/CK en lugar de ser generada internamente, esto permite que se puedan transferir o recibir datos cuando el dispositivo está en el modo Sleep. Las operaciones de transmisión son idénticas al modo Master, excepto en el caso del modo Sleep. Si se escriben dos palabras en el registro TXREG y después se ejecuta la instrucción Sleep, ocurrirá lo siguiente: qLa primera palabra será inmediata- mente transferida al registro TSR y transmitida. qLa segunda palabra permanece en el registro TXREG. qEl bit TXIF no se pondrá a uno. qCuando la primera palabra haya sali- do del registro TSR, la segunda pala- bra, que permanece en el registroTX- REG, se envía al TSR y el flag TXIF se pone a uno. qSi está habilitado el bit TXIF la inte- rrupción despierta al microcontrolador de modo Sleep y el programa saltar a la dirección del vector de interrupcio- nes (0004 hex.). EJEMPLOS DE CONTROL DEL USAR CONECTADO AL PUERTO SERIE DEL ORDENADOR Para poder conectar las líneas del PIC16F87X que entrega niveles TTL con el puerto serie RS-232 que son compatibles, es necesario utilizar un circuito interface que traduzca los datos del microcontrolador al puerto serie del ordenador y viceversa, nosotros hemos utilizado un MAX232, te- niendo mucho cuidado para no equivocarnos con la polaridad de los condensadores. El circuito uti- lizado es el que se muestra en la Figura 10. Los lectores que lo de- seen pueden ponerse en contacto con el autor de este curso en fre- miro@teleline.es para solicitar las placas del entrenador de micro- controladores PIC de bajo costo que se ha diseñado para el aprendizaje de estos microcon- troladores. Además del circuito, necesi- taremos para comprobar el funciona- miento los estos ejemplos de comuni- caciones, necesitamos un programa de comunicaciones como el HiperTerminal de Windows y un cable serie en cone- xión de MODEM nulo, que deberá de conectarse tal y como se muestra en la Figura 11. EL HyperTerminal es un programa general de comunicaciones de Win- dows, que resulta válido para conectar- se con otros ordenadores o dispositi- vos. Hay programas de comunicacio- nes mucho más potentes que éste. Sin embargo, HyperTerminal se caracteriza por su facilidad de uso y su fácil ad- quisición ya que viene integrado dentro deWindows. Puede ocurrir que el pro- grama HyperTerminal no esté cargado, TRANSMISIÓN SINCRONA pin RC7/RX/DT bit 0 bit 1 bit 2 bit 6 bit 7 Pin RC6/TX/CK Escritura en el reg. TXREG bit TXIF bit TRMT bit TXEN TRANSMISIÓN ASINCRONA ( a traves del TXEN) Registros de Sincronización en modo master en recepción Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset 0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X 1Ah RCGEG Registro Receptor USAR 0000 0000 0000 0000 8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010 99h SPGBRG Registro generador de Baud Rate Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0" Figura 9 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 67
  • 9. MICROCONTROLADORES 68RESISTOR para ello hay que seguir el mismo pro- cedimiento que para cualquier otro pro- grama de Windows, ejecutando en el siguiente orden: Panel de Control > Agregar o Quitar programas > Insta- lación deWindows > Comunicaciones y activar la casilla correspondiente a HyperTerminal. Para ejecutar HyperTerminal hay que seguir los siguientes pasos: 1.Activar Inicio > Programas >Acce- sorios > Comunicaciones y selec- VCC C4 1µF C5 1µF U1 TXPC RC7 RC6 C3 10nF MAX232 14 13 12 11 9 10 15 16 RXPC TXPC C6 1µF C7 1µF 1 2 3 6 4 5 8 7 C1+ V+ C1- V- C2+ C2- T1OUT R1IN R10UT T1IN 9 10 8 7 GND VCC 1 DB9 5 9 4 8 3 7 2 6 VCC RXPC Vcc= 5V MCLR RA0 RA1 RA2 RA3 RA4 RA5 Vss OSC1 OSC2/CKOUT RC0 RC1 RC2 RC3 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 VDD VSS RC7 RC6 RC5 RC4 Reset R1 10KΩ R2 100Ω R9 300Ω R8 300Ω R7 300Ω R6 300Ω R5 300Ω R4 300Ω RB0 RB1 RB2 RB3 RB4 RB5 RB6 R3 300Ω Vcc=5V C1 27 pF C2 27 pF XT 4Mhz R10 300Ω RB7 PIC16F876 Figura 10.- Circuito de aplicación para comprobar el funcionamiento del USART del PIC16F876 y el puerto serie del ordenador. Figura 11.- Conexión del cable serie como MODEM nulo Figura 14 HyperTerminal.Figura 12.-Hipertermina Figura 13.- Conectar con... 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 68
  • 10. MICROCONTROLADORES 69RESISTOR cionar HyperTerminal. Se advierte que no se trata de un programa, si- no de una carpeta cuyo contenido es un único programa denominada Hy- pertrm. Cada vez que se ejecuta el programa Hypertrm se le pide al usuario la información suficiente pa- ra crear en la carpeta HyperTermi- nal una nueva conexión, es decir, un lugar de destino con el que conec- tarse. 2. Ejecutar el programa Hypertrm para crear una nueva conexión, se le pre- gunta el nombre que asignará a la co- nexión, teclear por ejemplo "PIC16F876" y elegir un icono con el que se quiera representar la cone- xión, figura 12. 3.En la siguiente pantalla Conecta con elegirlaopción Conectarusando: Di- recto a Com2, figura 13. Se va a utili- zar el puerto serie Com2 para comu- nicar el ordenador y el microcontro- lador. También se puede elegir el COM1. 4.Aparece una pantalla con las Propiedades de COM. Seleccionar las apropiadasparaelsistemautilizado.Para nuestros ejemplos utilizamos las opcionesquesemuestranenlafigura14. 5.A continuación aparece la pantalla de trabajo tal como la mostrada en la figura 15. Para conectar el ordenador y el microcontrolador a través del puerto serie COM 2, basta con activar la opción "Llama" (o icono de teléfono colgado) y para desconectar hay que activar opción "Desconecta" (o icono de teléfono descolgado. Una vez configurada una conexión, para comenzar la comunicación simplemente ha de ejecutar el icono de la conexión previamente configurada tal como se muestra en la figura 16. El programa monitor232.asm configura el USART para trabajar a 9.600 baudios, con un bit de Stop y sin bit de paridad, seguidamente se queda a la espera de recibir un dato por el puerto serie y cuando lo hace lo muestra en el PORTB. Por su parte el programa Transmite232.asm configura el USART para trabajar a 9.600 baudios, con un bit de Stop y sin bit de paridad, seguidamente transmite cada segundo la cadena de caracteres "HOLA" cada segundo que se reflejan en el HiperTerminal. Figura 15 .-Hyperterminal. Pantalla de trabajo Figura 16.- Hyperterminal. Ejemplos de conexiones configuradas ; ;********************************************************************************* ; PROGRAMA : monitor232.asm ; Este programa escucha el puerto serie rs232 sin usar las interrupciones y cuando recibe un byte lo muestra ;en PortB hasta que otro lo sobrescriba.Configuración del puerto serie: 9600 baudios,8 bits,paridad = none ; ; Revisión : 1.0 Programa para : PIC16F876 ; CPU Clock : 4 MHz Reloj instrucción : 1 MHz = 1 _s ; WDT : Deshabilitado Tipo de reloj : XT ; Protección de Código : OFF ;********************************************************************************** LIST P=16F876 ;Se indica el modo de procesador INCLUDE <P16f876.inc> ;se incluye la definicion de los CBLOCK 0x20 Buffer ;Buffer entrante ENDC ;*****************************VECTOR DE RESET ************************************* ; ORG 0x00 ;Inicio en elVector de Reset ; goto INICIO ;Va a la primera instrucción del ;programa ORG 0x05 ;Inicio en elVector de Reset ;*****************************INICIO PROGRAMA PRINCIPAL ***************************** INICIO clrf PORTB ;Limpia salidas 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 69
  • 11. clrf PORTC ;del PORTB y del PORTC bsf STATUS,RP0 ;Selecciona el Banco1 clrf TRISB ;Puerta B como salida movlw b'10011111' ;RC7/Rx entrada, movwf TRISC ;RC6/Tx salida y RC5 Salida. movlw b'00000100' ;Configuracion USART movwf TXSTA ;y activacion de transmision movlw .25 ;9600 baudios movwf SPBRG bcf STATUS,RP0 ;Selecciona el Banco 0 bsf RCSTA,SPEN ;se activa la USART movlw b'10010000' ;Configuracion de la usart movwf RCSTA ;para recepcion continua ;------Bucle de comprobacion si llega dato mayor de 0 por puerto serie------ BUCLE movf RCREG,W ;Lectura dato recibido movwf Buffer ;Visualiza dato recibido movlw .0 ;comprueba que se reciba algo que subwf Buffer,W ;no sea cero... btfsc STATUS,C goto Mayordecero ;dato valido. goto BUCLE ;dato no valido.. es cero..vuelve. Mayordecero movf Buffer,W ;muestra el dato en portb movwf PORTB ;y lo deja ayi hasta que llegue otro goto BUCLE ;retorna a esperar otro dato valido ;***************************************************************************** ORG 0x1F00 bcf PCLATH,4 bcf PCLATH,3 ;Selecciona la página 0 goto INICIO ;Salto a la dirección de INICIO del programa ;***************************************************************************** END ;*********************************************************************** ; PROGRAMA :Trans232.asm ;Este programa transmite los bytesASCII "HOLA "por el puerte serie del microcontrolador ; a intervalos de 1 segundo. ; Configuración del piuerto serie COM: 9600 baudios,8 bits,paridad = none ; ; Revision : 1.0 Programa para : PIC16F876 ; CPU Clock : 4 MHz Reloj instruccion : 1 MHz = 1 us ; WDT : Deshabilitado Tipo de reloj : XT ; Protección de Código : OFF ;************************************************************************ LIST P=16F876 ;Se indica el modo de procesador INCLUDE<P16f876.inc> ;se incluye la definicion de los CBLOCK 0x20 ContadorA ContadorB ContadorC ENDC ;************************************VECTOR DE RESET ********************* ; ORG 0x00 ; goto INICIO ;Va a la primera instruccion del programa ORG 0x05 ;*******************************INICIO PROGRAMA PRINCIPAL **************** INICIO clrf PORTB ;Limpia PORTB y PORTC clrf PORTC bsf STATUS,RP0 ;Selecciona el Banco 1 clrf TRISB ;Puerta B como salida movlw b'10111111' ;RC7/Rx entrada, movwf TRISC ;RC6/Tx salida. movlw b'00100100' ;Configuración USART movwf TXSTA ;y activación de transmisión movlw .25 ;9600 baudios movwf SPBRG bcf STATUS,RP0 ;Selecciona el Banco 0 bsf RCSTA,SPEN ;se activa la USART bsf STATUS,RP0 ;Selecciona el Banco 1 bsf TXSTA,TXEN ;Habilita la transmisión bcf STATUS,RP0 ;Selecciona el Banco 0 Bucle call Delay movlw 'H' ;CarácterASCII movwf TXREG ; bsf STATUS,RP0 ;Selecciona el Banco 1 COMP_TX btfss TXSTA,TRMT ;comprueba si acabo de Tx. goto COMP_TX bcf STATUS,RP0 ;Selecciona el Banco 0 movlw 'O' ;carácterASCII movwf TXREG bsf STATUS,RP0 ;Selecciona el Banco 1 COMP_TX_2 btfss TXSTA,TRMT ;comprueba si acabo de Tx. goto COMP_TX_2 bcf STATUS,RP0 ;Selecciona el Banco 0 movlw 'L' ;carácterASCII movwf TXREG bsf STATUS,RP0 ;Selecciona el Banco 1 COMP_TX_3 btfss TXSTA,TRMT ;comprueba si acabo de Tx. goto COMP_TX_3 bcf STATUS,RP0 ;Selecciona el Banco 0 movlw 'A' ;carácterASCII movwf TXREG bsf STATUS,RP0 ;Selecciona el Banco 1 COMP_TX_4 btfss TXSTA,TRMT ;comprueba si acabo de Tx. goto COMP_TX_4 bcf STATUS,RP0 ;Selecciona el Banco 0 movlw '-' ;carácterASCII en decimal movwf TXREG goto Bucle ;**************************SUBRUTINAS ********************* ;Delay = 1,0000020 s with Osc = 4 MHz Delay movlw D'6' movwf ContadorC movlw D'24' movwf ContadorB movlw D'168' movwf ContadorA loop decfsz ContadorA,F goto loop decfsz ContadorB,F goto loop decfsz ContadorC,F goto loop return ;*********************************************************** ORG 0x1F00 bcf PCLATH,4 bcf PCLATH,3 ;Selecciona la página 0 goto INICIO ;Salto a la dirección de INICIO del programa ;********************************************************** END 56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 70