indice del modulo pic18fxxxx

29
PIC’School: Módulo PIC18FXXXX “Un paso adelante. El fascinante mundo de los potentes PIC18” INGENIERIA DE MICROSISTEMAS PROGRAMADOS S.L. C/ Alda. Mazarredo Nº 47 - 1º Dpto. 2 48009 BILBAO - BIZKAIA Tel/Fax: 94 4230651 email: [email protected] www.microcontroladores.com  V 1.00 Marzo 2007

Upload: miloseviks

Post on 09-Jul-2015

124 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 1/29

 

PIC’School:

Módulo PIC18FXXXX “Un paso adelante. El fascinante

mundo de los potentes PIC18”

INGENIERIA DE MICROSISTEMAS 

PROGRAMADOS S.L.

C/ Alda. Mazarredo Nº 47 - 1º Dpto. 248009 BILBAO - BIZKAIA

Tel/Fax: 94 4230651

email: [email protected]

 V 1.00 Marzo 2007

Page 2: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 2/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -1

 

INDICE GENERAL

TEORIAMediante tres temas teóricos iniciales se trata de proporcionar una idea general de los dispositivos PIC18resaltando las diferencias y aportaciones mas relevantes respecto a los dispositivos PIC12 y PIC16. En ningúncaso pretendemos sustituir la información técnica que facilita el fabricante en sus hojas técnicas o “Data Sheets”,incluidas en el CDROM y, cuya lectura recomendamos.

 

TEMA 1: Resumen de la arquitectura del PIC18F2550 

T1.1 OBJETIVOS T1-1T1.2 ARQUITECTURA T1-1

T1.2.1 Características generales T1-2T1.2.2 Diagrama de pines T1-3T1.2.3 El oscilador T1-6T1.2.4 Control de potencia T1-9T1.2.5 El RESET T1-10T1.2.6 Organización de la memoria de programa T1-14T1.2.7 Organización de la memoria de datos T1-16T1.2.8 Los registros especiales SFR T1-21T1.2.9 Los registros de configuración T1-23T1.2.10 El temporizador WDT T1-24T1.2.11 Arranque a dos velocidades T1-25T1.2.12 Monitor de fallos de reloj T1-25T1.2.13 Protección de código de la memoria de programa T1-26

TEMA 2: Instrucciones de los PIC18FXXXX 

T2.1 OBJETIVOS T2-1T2.2 FUNDAMENTOS TEORICOS T2-1T2.3 DESCRIPCION DE LOS CAMPOS DE LAS INSTRUCCIONES T2-1T2.4 FORMATO GENERAL DE LAS INSTRUCCIONES T2-2

T2.4.1 Instrucciones orientadas al byte T2-2T2.4.2 Instrucciones byte a byte T2-3T2.4.3 Instrucciones orientadas al bit T2-3T2.4.4 Instrucciones inmediatas o literales T2-3T2.4.5 Instrucciones de control T2-3

T2.5 SUMARIO DE LAS INSTRUCCIONES T2-4T2.6 NUEVAS INSTRUCCIONES T2-7

T2.6.1 Orientadas al byte T2-7T2.6.2 Orientadas al bit T2-8T2.6.3 Instrucciones de control T2-9T2.6.4 Instrucciones inmediatas o literales T2-10T2.6.5 Instrucciones de manejo de tablas T2-11

T2.7 EL MODO EXTENDIDO T2-11

T2.7.1 Instrucciones extendidas T2-11T2.7.2 El direccionamiento indexado T2-12

Page 3: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 3/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -2

TEMA 3: Las interrupciones  

T3.1 INTRODUCCION T3-1T3.2 LOS REGISTROS INTCON T3-2

T3.2.1 El registro INTCON T3-2T3.2.2 El registro INTCON2 T3-2T3.2.3 El registro INTCON3 T3-4

T3.3 LOS REGISTROS PIR T3-4

T3.3.1 El registro PIR1 T3-4T3.3.2 El registro PIR2 T3-5

T3.4 LOS REGISTROS PIE T3-6

T3.4.1 El registro PIE1 T3-6

T3.4.2 El registro PIE2 T3-6

T3.5 LOS REGISTROS IPR T3-7

T3.5.1 El registro IPR1 T3-7T3.5.2 El registro IPR2 T3-8

T3.6 EL REGISTRO RCON T3-8T3.7 INTERRUPCIONES EXTERNAS T3-9

T3.7.1 Interrupción por las patillas INTn T3-9T7.3.2 Interrupción por cambio de estado T3-9T3.7.3 Salvando el contexto T3-9

PRACTICA

Mediante las prácticas propuestas a continuación se pretende que el usuario se familiarice con el manejo de losdiferentes módulos y periféricos que integran los dispositivos PIC18 en general y el PIC182550 en particular.Tratamos de resaltar aquellos que sean nuevos o que aporten mejoras respecto a los periféricos de las familiasPIC12 y PIC16.

PRACTICA 1: Las puertas de E/S  

Hace una descripción de las líneas de E/S, sus diferentes funcionalidades, su configuración y control. También esuna práctica que, a modo de tutorial, resume y explica paso a paso todo el proceso y mecánica de trabajo.

1.1 OBJETIVOS P1-11.2 FUNDAMENTOS TEORICOS P1-1

1.2.1 La puerta A P1-21.2.2 La puerta B P1-31.2.3 La puerta C P1-5

1.3 MATERIALES NECESARIOS P1-61.4 DESARROLLO DE LA PRACTICA P1-6

1.4.1 Ejem_1, El programa fuente en ensamblador P1-61.4.2 Ensamblando el programa fuente P1-81.4.3 Conectando los periféricos P1-9

Page 4: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 4/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -3

1.4.4 Grabación del dispositivo P1-91.4.5 Verificar el funcionamiento P1-10

1.5 TRABAJO PERSONAL P1-11

1.5.1 Ejercicio 1: Función NOT P1-111.5.2 Ejercicio 2: Calculadora P1-111.5.3 Ejercicio 3: Decodificador combinacional P1-11

PRACTICA 2: Jugando con el oscilador  

El sistema oscilador de los dispositivos PIC182550 en particular es probablemente el mas evolucionado de entrelos dispositivos de las familias PIC12, PIC16 e incluso PIC18. Dispone de múltiples modos de configuración yproporciona gran flexibilidad y prestaciones.

2.1 OBJETIVOS P2-1

2.2 FUNDAMENTOS TEORICOS P2-1

2.2.1 El oscilador primario P2-12.2.2 El oscilador secundario P2-32.2.3 El oscilador interno p2-3

2.3 MATERIALES NECESARIOS P2-32.4 DESARROLLO DE LA PRACTICA P2-3

2.4.1 Ejem_2: El oscilador primario P2-42.4.2 Ejem_2B: El oscilador interno P2-62.4.3 Ejem_2C: Conmutación dinámica del tipo de oscilador P2-7

PRACTICA 3: Interrupciones externas 

Otra de las características mas evolucionadas de los dispositivos PIC18 en general es su potente sistema deinterrupciones, entre las que cabe citar a las interrupciones externas que se añaden a las ya conocidasinterrupciones provocadas por los distintos periféricos internos disponibles en los dispositivos PIC16 y PIC18.

3.1 OBJETIVOS P3-13.2 FUNDAMENTOS TEORICOS P3-1

3.2.1 Interrupciones por cambio de estado P3-13.2.2 Interrupciones por flanco P3-1

3.3 MATERIALES NECESARIOS P3-23.4 DESARROLLO DE LA PRACTICA P3-2

3.4.1 Ejem_3: Interrupción por cambio de estado P3-23.4.2 Ejem_3B: Interrupción con prioridad P3-33.4.3 Ejem_3C: Interrupción por cambio de estado, control de un teclado matricial P3-43.4.4 Ejem_3D: Interrupción por cambio de estado, control de un motor DC P3-63.4.5 Ejem_3E: Interrupciones externas, detección del sentido de giro del motor EMG30 P3-8

3.5 TRABAJO PERSONAL P3-10

Page 5: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 5/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -4

PRACTICA 4: Los Timers o Temporizadores  

Los dispositivos PIC18 disponen de 4 temporizadores. Los Timer 0, 1 y 2 son similares al de los dispositivos PIC16excepto que el Timer 0 puede trabajar como un Timer de 8 o 16 bits. Se añade un nuevo Timer 3 de 16 bits.

4.1 OBJETIVOS P4-14.2 FUNDAMENTOS TEORICOS P4-1

4.2.1 El módulo Timer 0 (TMR0) P4-14.2.2 El módulo Timer 1 (TMR1) P4-34.2.3 El módulo Timer 2 (TMR2) P4-64.2.4 El módulo Timer 3 (TMR3) P4-8

4.3 MATERIALES NECESARIOS P4-104.4 DESARROLLO DE LA PRACTICA P4-10

4.4.1 Ejem_4: El TMR0 en el modo temporizador P4-10

4.4.2 Ejem_4B: El TMR0 en el modo contador P4-114.4.3 Ejem_4C: El TMR0, generación de números aleatorios P4-124.4.4 Ejem_4D: El TMR1, segundero P4-134.4.5 Ejem_4E: El TMR0 y el TMR1, sencillo frecuencímetro P4-144.4.6 Ejem_4F: El TMR2 P4-154.4.7 Ejem_4G: Detección del estado del motor EMG30 P4-164.4.8 Ejem_4H: Control de desplazamiento del motor EMG30 P4-17

4.5 TRABAJO PERSONAL P4-19

4.5.1 Dado electrónico P4-194.5.2 Cronómetro digital P4-194.5.3 Reloj digital P4-19

4.5.4 Control de secuencias P4-19

PRACTICA 5: Los módulos CCP  

Se tratan de los módulos capaces de capturar y/o comparar señales o eventos externos así como generar señalesPWM. Son similares a los disponibles en los dispositivos PIC16 excepto que, en los dispositivos PIC18 al disponer de un nuevo Timer 3, la independencia entre ambos módulos es mas relevante.

5.1 OBJETIVOS P5-15.2 FUNDAMENTOS TEORICOS P5-1

5.2.1 Configuración de los módulos CCP P5-15.2.2 Modo captura P5-25.2.3 Modo de comparación P5-35.2.4 El modo PWM P5-5

5.3 MATERIALES NECESARIOS P5-65.4 DESARROLLO DE LA PRACTICA P5-6

5.4.1 Ejem_5: Modo captura, midiendo los periodos de una señal externa P5-75.4.2 Ejem_5B: Modo captura, midiendo la duración de la anchura de un pulso P5-85.4.3 Ejem_5C: Modo captura, midiendo el tiempo transcurrido entre dos pulsos P5-95.4.4 Ejem_5D: Modo comparación, contador de pulsos externos P5-95.4.5 Ejem_5E: Modo comparación, control del desplazamiento del motor EMG30 P5-10

5.4.6 Ejem_5F: Modo PWM, generación de una señal PWM P5-125.4.7 Ejem_5G: Modo PWM, regulando la potencia aplicada al motor P5-135.4.8 Ejem_5H: Modo PWM, regulación/visualización de la potencia aplicada al motor P5-14

Page 6: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 6/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -5

5.4.9 Ejem_5I: Modos PWM y Comparación, control progresivo de la potencia aplicada P5-155.4.10 Ejem_5J: Modos PWM y captura, cálculo de la velocidad de giro del motor P5-16

5.5 TRABAJO PERSONAL P5-18

PRACTICA 6: El EUSART  

Se trata de la versión mejorada del USART disponible en los dispositivos PIC12 y PIC16 y ofrece nuevascaracterísticas y prestaciones.

6.1 OBJETIVOS P6-16.2 FUNDAMENTOS TEORICOS P6-1

6.2.1 Generador de baudios (BRG) P6-46.2.2 Auto detección de baudios P6-46.2.3 El EUSART en el modo asíncrono P6-5

6.2.4 El EUSART en el modo master síncrono P6-86.2.5 El EUSART en el modo esclavo síncrono P6-9

6.3 MATERIALES NECESARIOS P6-116.4 DESARROLLO DE LA PRACTICA P6-11

6.4.1 Ejem_6: Sencillo ejemplo de transmisión P6-116.4.2 Ejem_6B: Transmisión/Recepción con auto detección de baudios P6-126.4.3 Ejem_6C: Transmisión de mensajes P6-126.4.4 Ejem_6D: Monitorización remota P6-136.4.5 Ejem_6E: Control remoto de salidas y monitorización P6-146.4.6 Ejem_6F: Recepción y visualización sobre pantalla LCD P6-146.4.7 Ejem_6G: Midiendo con el sensor ultrasónico SRF02 P6-15

6.4.8 Ejem_6H: El controlador de pantallas LCD SYM20AA P6-176.4.9 Ejem_6I: El controlador de pantallas SYM20, monitorizando entradas P6-18

6.5 TRABAJO PERSONAL P6-19

6.5.1 Control remoto de un motor P6-196.5.2 Detección de obstáculos P6-20

PRACTICA 7: El módulo MSSP  

El módulo MSSP de los dispositivos PIC18 se emplean para realizar transferencia de datos entre otros dispositivos

según los protocolos SPI e I2C. Disponen de soporte Master 

7.1 OBJETIVOS P7-17.2 FUNDAMENTOS TEORICOS P7-1

7.2.1 El modo SPI P7-17.2.2 El modo I2C P7-4

7.3 MATERIALES NECESARIOS P7-97.4 DESARROLLO DE LA PRACTICA P7-9

7.4.1 Ejem_7: Midiendo distancias con el sensor SRF02 P7-97.4.2 Ejem_7B: Reloj/calendario en tiempo real con el PCF8583 P7-11

Page 7: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 7/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -6

7.5 TRABAJO PERSONAL P7-13

7.5.1 Control de posicionamiento P7-137.5.2 Reloj/calendario P7-14

7.5.3 Contador P7-14

PRACTICA 8: El conversor A/D  

Se trata del clásico módulo conversor analógico digital (ADC) de hasta 13 canales analógicos de entrada y conuna resolución de 10 bits. Se diferencia respecto al módulo ADC de los dispositivos PIC12 y PC16 en la forma deseleccionar las entradas analógicas así como en los tiempos de conversión.

8.1 OBJETIVOS P8-18.2 FUNDAMENTOS TEORICOS P8-18.3 MATERIALES NECESARIOS P8-68.4 DESARROLLO DE LA PRACTICA P8-6

8.4.1 Ejem_8: Voltímetro digital P8-68.4.2 Ejem_8B: Regulación PWM mediante una variable analógica P8-88.4.3 Ejem_8C: Termómetro digital P8-108.4.4 Ejem_8D: Multiplexando entradas analógicas P8-12

8.5 TRABAJO PERSONAL P8-13

8.5.1 Control de temperatura ambiente P8-138.5.2 Control de alumbrado P8-13

PRACTICA 9: Módulo CVref y Módulo comparador  Dos nuevos módulos integrado en el dispositivo PIC18F2550 que permiten el diseño y realización de aplicacionescon control analógico de señales reduciendo al máximo el número de componentes externos necesarios.

9.1 OBJETIVOS P9-19.2 DESARROLLO DE LA PRACTICA P9-1

9.2.1 Módulo CVref P9-19.2.2 Módulo comparador P9-3

9.3 MATERIALES NECESARIOS P9-69.4 DESARROLLO DE LA PRACTICA P9-6

9.4.1 Ejem_9: El módulo CVref, generando una tensión analógica P9-69.4.2 Ejem_9B: El módulo CVref, generando una señal en diente de sierra P9-79.4.3 Ejem_9C: El módulo Comparador, Comparando 2 tensiones analógicas con Vref común P9-99.4.4 Ejem_9D: El módulo Comparador, Comparación con Vref variable P9-10

Page 8: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 8/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -7

 

RELACION DE MATERIALES 

Todas las prácticas propuestas se realizan sobre el laboratorio PIC’School. A continuación se presenta la relaciónde materiales y componentes necesarios para su implementación. El kit completo (excepto el laboratorioPIC’School) se puede adquirir en Ingeniería de Microsistemas Programados S.L. con la referencia “MODULO18F”

● 2 Resistencias de 2K2 ¼ W y 5%● 2 Resistencias de 4K7 ¼ W y 5%● 1 Resistencia de 10K ¼ W y 5%● 1 Condensador cerámico de 10pF● 2 Condensadores cerámicos de 27pF● 1 Cristal de cuarzo de 32.768 KHz● 1 Microcontrolador PIC18F2550● 1 Controlador de LCD’s SYM20AA●

1 Reloj/Calendario en tiempo real PCF8583● 1 Foto transistor BPW40● 1 Sensor de temperatura LM35DZ● 1 Medidor ultrasónico de distancias SRF02● 1 Motor CC con reductora 30:1 ycodificadores de cuadratura EMG30● Cable rígido de conexión de 0.8mm● CDROM con manual y ejemplos resueltos

BIBLIOGRAFIA RECOMENDADA 

A continuación damos una lista de libros y manuales cuya lectura recomendamos:

● “Microcontroladores PIC, diseño práctico de aplicaciones”, 1ª parte. Ed. Mac Graw-Hill● “Microcontroladores PIC, diseño práctico de aplicaciones”, 2ª parte. Ed. Mac Graw-Hill● Manual de usuario del laboraorio PIC’School. Ingeniería de Microsistemas Programados● MPASM User’s guide. Microchip● MPLAB User’s guide. Microchip● C Compiler Reference Manual. Custom Computer Services (CCS)● PI18F2550 Data Sheet. Microchip● Medidor ultrasónico SRF02● Controlador de pantallas LCD SYM20AA● PCF8583 Data Sheet. PHilips

SITIOS DE INTERES 

Algunas direcciones de interés en Internet donde se puede descargar herramientas software, versiones demo,data sheets, etc. todo ello debidamente actualizado.

● Ingeniería de Microsistemas Programados. Herramientas hardware y software para el desarrollo deaplicaciones basadas en microcontroladores PIC www.microcontroladores.com 

● Microchip. Todo sobre PIC’s, información técnica y herramientas software www.microchip.com ● Custom Computer Services. Compilador de lenguaje C www.ccsinfo.com ●

Devantech Ltd. Sensores y accesorios www.robot-electronics.co.uk 

Page 9: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 9/29

 

Módulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -8

 

Page 10: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 10/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

PRACTICA 6:El EUSART 

6.1 OBJETIVOS

Mostrar el funcionamiento del módulo EUSART (Transmisor/Receptor Universal Síncrono/AsíncronoMejorado) disponible en algunos dispositivos de la familia PIC18 en general y en el PIC18F2550 en particular. Aeste módulo también se le conoce como Interface de comunicaciones Serie (SCI).

Se puede configurar un sistema de comunicaciones “Full-Duplex” asíncrono que permite la transferenciade información entre terminales de datos, PC’s, etc... También se puede configurar como un sistema “Half-Duplex”síncrono para comunicar con dispositivos periféricos tales como conversores A/D, D/A, memorias serie, etc..

Frente a los clásicos USART de las familias PIC16, los módulos EUSART (USART mejorada) implementancaracterísticas adicionales como la detección automática de baudios, el “Wake-Up” (despertar) automático alrecibir la señal Sync o bien la transmisión del carácter Break de 12 bits, lo que permite su empleo en sistemas deredes de interconexión local (bus LIN).

6.2 FUNDAMENTOS TEORICOS

El EUSART puede configurarse en los siguientes modos de trabajo:

● Modo asíncrono en “Full-Duplex” con calibración automática de baudios, transmisión del carácter Break de12 bits y “Wake-Up” automático al recibir la señal Sync

● Modo Master síncrono (Half-Duplex) con polaridad del reloj seleccionable.

● Modo Slave (esclavo) síncrono (Half-Duplex) con polaridad de reloj seleccionable.

Las patillas del EUSART se corresponden con RC6/TX/CK y RC7/RX/DT/SDO y se deben configurar,mediante TRISC, como entradas. El propio EUSART se encarga de reconfigurar las patillas como entradas osalidas según corresponda en cada momento.

El control y el estado de la transmisión se realiza mediante el registro TXSTA y se muestra en la figura 6-1.

CSRC: Selección de la fuente de relojModo AsíncronoNo UsadoModo Síncrono1 = Modo Master (el reloj se genera internamente desde el BRG)

Bit 7

0 = Modo Slave (Reloj externo procedente del Master)

Bit 6 TX9: Activar transmisión del 9º bit1 = Transmisión de 9 bits0 = Transmisión de 8 bits

P6 -1

Page 11: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 11/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

TXEN: Activación del transmisor 1 = Transmisor ON

Bit 5

0 = Transmisor OFF

Bit 4 SYNC: Selección de modo del EUSART

1 = Modo síncrono0 = Modo asíncrono

Bit 3 SENDB: Enviar bit del carácter BreakModo asíncrono1 = Envía el carácter Break en la en la siguiente transmisión (borrado por hardware)0 = Se ha completado la transmisión del carácter BreakModo síncronoNo Usado

Bit 2 BRGH: Bit de selección para baudios en rango altoModo asíncrono1 = Alta velocidad0 = Baja velocidadModo síncronoNo Usado

Bit 1 TRMT: Bit de estado del registro de desplazamiento del transmisor (TSR)1 = TSR vacío0 = TSR lleno

Bit 0 TX9D: 9º bit del dato a transmitir Se puede emplear como bit de datos, dirección o bit de paridad

El control y el estado de la recepción se realiza mediante el registro RCSTA y se muestra en la figura 6-2.

Bit 7 SPEN: Activación de la puerta serie1 = Puerta serie ON (configura las patillas RX/DT y TX/CK como líneas serie)0 = Puerta serie OFF

Bit 6 RX9: Activar la r5ecepción de 9 bits1 = Recepción de 9 bits0 = Recepción de 8 bits

Bit 5 SREN: Activación de recepción simpleModo asíncronoNo UsadoModo Síncrono

1 = Activa recepción simple (se borra tras completar la recepción)0 = Desactiva recepción simple

Bit 4 CREN: Recepción continuaModo asíncrono1 = Activa la recepción0 = Desactiva la recepciónModo síncrono1 = Activa recepción continua hasta que se borre el bit CREN0 = desactiva recepción continua

Bit 3 ADDEN: Detección de direcciónModo asíncrono1 = Activa detección de dirección0 = Desactiva detección de dirección

Modo síncronoNo Usado

P6 -2

Page 12: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 12/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Bit 2 FERR: Error de trama1 = Error de trama (se actualiza al leer RCREG al recibir el siguiente byte válido)0 = No hay error de trama

Bit 1 OERR: Error de sobrepasamiento

1 = Error de sobrepasamiento (se borra al borrar el bit CREN)0 = No hay error 

Bit 0 RX9D: 9º bit de datos recibidoPuedes ser un bit de datos, dirección o de paridad

El sistema de generación de baudios lo establece el registro BAUDCON mostrado en la figura 6-3.

Bit 7 ABDOVF: Desbordamiento durante la adquisición automática de los baudios

1 = Ha habido desbordamiento (se debe borrar por software)0 = No hay desbordamiento. Adquisición automática de baudios correcta

Bit 6 RCIDL: Estado del receptor 1 = El receptor está en estado idle de bajo consumo0 = El receptor está activado

Bit 5 RXDTP: Polaridad de los datos recibidosModo asíncrono1 = Los datos recibidos son invertidos0 = Los datos recibidos no son invertidosModo síncrono1 = La señal de reloj es invertida0 = La señal de reloj no es invertida

Bit 4 TXCKP: Polaridad de los datos transmitidos

Modo asíncrono1 = Los datos transmitidos son invertidos0 = Los datos transmitidos no son invertidosModo síncrono1 = La señal de reloj es invertida0 = La señal de reloj no es invertida

Bit 3 BRG16: Tamaño del registro generador de baudios (BRG)1 = BRG de 16 bits (SPBRGH y SPBRG)0 = BRG de 8 bits (SPBRG)

Bit 1 WUE: Activación del Wake-UpModo asíncrono1 = El EUSART interrumpe cuando se detecta un flanco descendente por el pin RX0 = El EUSART no detecta flancos en RXModo síncronoNo Usado

Bit 0 ABDEN: Activación del sistema de auto detección de baudiosModo asíncrono1 = Activa el sistema. Espera la recepción del byte 0x55 de sincronismo. Se borraautomáticamente0 = Auto detección desconectada o completadaModo síncronoNo Usado

P6 -3

Page 13: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 13/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

6.2.1 Generador de Baudios (BRG)

Es el sistema que permite establecer la velocidad (bits/seg) a la que se realiza la transferencia de datos.Se basa en un registro de 8 bits (SPBRG) o de 16 bits (SPBRGH:SPBRG) en el que se carga un valor gracias al

cuál se establecen los baudios. La siguiente tabla resume las fórmulas que permiten determinar la velocidad de latransferencia en diferentes modos y configuraciones. El valor n representa el valor a cargar en esos registros.

Bits de configuraciónSYNC BRG16 BRGH

Modo delEUSART/BRG

Fórmula para calcular los baudios

0 0 0 Asíncrono / 8 bits Fosc/[64(n+1)]

0 0 1 Asíncrono / 8 bits

0 1 0 Asíncrono / 16 bits

Fosc/[16(n+1)]

0 1 1 Asíncrono / 16 bits

1 0 X Síncrono / 8 bits

1 1 X Síncrono / 16 bits

Fosc/[4(n+1)]

Ejemplo para calcular el valor n para una frecuencia Fosc de 16MHz, 9600 baudios de velocidad deseada,modo asíncrono y BRG de 8 bits:

● Baudios = Fosc/[(64(n+1)]● n = [(Fosc/Baudios)/64]-1; n = [(16000000/9600)/64]-1; n = 25.042 = 25● Baudios reales = 16000000/[(64(25+1)] = 9615● Error = (Baudios reales – Baudios deseados) / baudios deseados = ((9615-9600)/9600)*100 = 0.16%

Los registros asociados con el generador de baudios se muestran en la tabla de la figura 6-4.

6.2.2 Auto Detección de baudios

Una de las características mas relevantes de los módulos EUSART propios de los dispositivos PIC18, esque disponen de un sistema capaz de detectar los baudios de forma automática (ADB). El sistema ADB se poneen marcha cuando se activa el bit ADBEN del registro BAUDCON y se desactiva el bit WUE. En este momento seespera a recibir por la línea RX el bit de inicio seguido del byte de sincronismo 0x55 (“U”) que es el mismo carácter Sync empleado en el bus LIN.

El circuito generador de baudios BRG activa un contador que se va incrementando que, partiendo de0x0000 hasta 0xFFFF, varía la frecuencia de muestreo. Cuando se reciben los 8 bits del dato 0x55 (o cincoflancos ascendentes hasta el bit de stop), el bit ADBEN se borra automáticamente, se activa el flag RCIF (seprovoca interrupción si RCIE está activado) y el valor alcanzado por el contador se copia sobre los registrosSPBRGH:SPBRG. Ese valor, obtenido automáticamente, es el empleado en lo sucesivo para la generación de losbaudios según las ecuaciones anteriores. El diagrama de tiempos de la figura 6-5 muestra la secuencia descrita.

P6 -4

Page 14: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 14/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Figura 6-5. Secuencia para la auto detección de baudios  

Tal y como se muestra en la figura 6-6 puede ocurrir que, el contador del BRG se desborde sin que sehayan detectado los 5 flancos ascendentes propios del carácter Sync 0x55 (“U”). En este caso se activa el bitADBOVF del registro BAUDCON indicando así el error producido al tratar de obtener los baudios de formaautomática.

Figura 6-6. Desbordamiento en la auto detección de baudios 

6.2.3 El EUSART en el modo asíncrono

Se selecciona borrando el bit SYNC del registro TXSTA y emplea el formato estándar de 1 bit de inicio, 8 o

9 bits de datos (1º el bit de menos peso) y 1 bit de stop. El sistema BRG se encarga de generar los tiempos detransferencia de cada bit según los baudios deseados y es posible invertir las señales TX y TX para su empleo concircuitos de adaptación TTL-RS232 que también invierten esas señales. Las características mas relevantes son:

● Generador de Baudios BRG.● Circuitos para el muestreo de bits● Transmisor/receptor asíncronos● Auto Wake-Up al recibir la señal Break● Transmisión del carácter Break de 12 bits● Detección de auto baudios● Polaridad seleccionable en los pines TX y RX

P6 -5

Page 15: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 15/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Transmisión asíncrona

El esquema por bloques se presenta en la figura 6-7. El corazón lo forma el registro de desplazamientoTSR. Cuando el usuario escribe un byte sobre el registro TXREG éste se copia sobre el TSR y comienza la

transmisión. El bit TXIF se pone a “1” cada vez que el TXREG esté vacío (a pesar de que se puede estar transmitiendo el último byte) sin embargo el bit TRMT se pone a “1” cuando la transmisión haya finalizado.

Figura 6-7. El EUSART en el modo de transmisor asíncrono 

La secuencia para la transmisión asíncrona se puede resumir a continuación:

● Cargar los registros SPBRGH:SPBRG con al valor apropiado para generar los baudios deseados. Se puedeemplear el sistema de auto detección de baudios para este cometido.

● Borrando el bit SYNC y activando SPEN se pone en marcha el EUSART en el modo de asíncrono.● Si se desea invertir la señal en la patilla TX, debemos activar el bit TXCKP● Si deseamos emplear la interrupción activamos el bit TXIE● Si deseamos transmitir 9 bits de datos, se activa el bit TX9● Mediante el bit TXEN activamos el transmisor.● Si se ha seleccionado una transmisión de 9 bits, el 9º bit lo cargamos en TX9D.● El dato a transmitir se carga en el registro TXREG● El bit TXIF inidica si el TXREG está vacío. El bit TRMT indica si hay alguna transmisión en curso.

La tabla de la figura 6-8 muestra un resumen de los registros empleados en la transmisión asíncrona.

Figura 6-8. Registros asociados con el transmisor asíncrono del EUSART 

P6 -6

Page 16: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 16/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Recepción asíncrona

El esquema por bloques del receptor se muestra en la figura 6-9. Consta de un registro de desplazamientoRSR que va recibiendo los bits desde RX. Cuando el RSR se llena con el dato recibido, se activa el bit RCIF y su

contenido pasa al registro RCREG de donde lo puede leer la aplicación del usuario. Si recibe un nuevo dato sinhaber leído en RCREG el previo, se produce un error por desbordamiento y se activa el bit OERR.

Figura 6-9. El circuito receptor asíncrono del EUSART 

La secuencia necesaria para la recepción de datos se puede resumir en los siguientes pasos:

● Cargar los registros SPBRGH:SPBRG con el valor apropiado según los baudios deseados.● Activar el EUSART en modo asíncrono borrando el bit SYNC y activando SPEN● Si los bits recibidos llegan invertidos, activar el bit RXDTP.● Si la recepción es de 9 bits, activar el bit RX9.● Activar la recepción mediante el bit RCEN.● El bit RCIF se activará cuando se complete la recepción de un dato.● Se lee el registro RCSTA para obtener el 9º bit y/o verificar si se ha producido algún error.● Leemos el registro RCREG con el dato recién recibido.● Desactivando CREN se desactivan los errores que se hubieran producidos.

La tabla de la figura 6-10 resume los registros que se emplean en la recepción asíncrona del EUSART.

Figura 6-10. Resumen de registros del receptor asíncrono del EUSART  

P6 -7

Page 17: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 17/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

6.2.4 El EUSART en el modo Master síncrono

Este modo se selecciona activando el bit CSRC del registro TXSTA y los datos se transfieren en “Half-Duplex”. Cuando se transmiten datos el receptor se inhibe y viceversa. En el modo Master síncrono es el propio

EUSART quien proporciona la señal de reloj a través de la patilla CK. La polaridad de esta señal de reloj sedetermina mediante el bit TXCKP del registro BAUDCON y la polaridad de la señal de datos mediante el bitRXCKP.

Transmisión Master síncrona

El esquema por bloquee es el mismo que se mostró en la figura 6-7. El dato a transmitir se almacena enTXREG y se copia sobre el registro de desplazamiento de salida TSR. El TSR no se vuelve a cargar con elcontenido de TXREG hasta que se haya transmitido el último bit del dato previo. Cuando se transfiere TXREGsobre el TSR se activa TXIF ya que TXREG queda vacío sin embargo el bit TRMT no se activa hasta que hayasalido el último bit desde el TSR.

La secuencia para la transmisión síncrona se puede resumir a continuación:

● Cargar los registros SPBRGH:SPBRG con al valor apropiado para generar los baudios deseados.● Activar modo Master síncrono activando los bits SYNC, SPEN y CSRC.● Si se desea invertir la polaridad tanto de la señal de reloj (CK) como la de datos (DT) activar los bits TXCKP y

RXDTP respectivamente.● Si deseamos emplear la interrupción activamos el bit TXIE● Si deseamos transmitir 9 bits de datos, se activa el bit TX9● Mediante el bit TXEN activamos el transmisor.● Si se ha seleccionado una transmisión de 9 bits, el 9º bit lo cargamos en TX9D.● El dato a transmitir se carga en el registro TXREG● El bit TXIF indica si el TXREG está vacío. El bit TRMT indica si hay alguna transmisión en curso.

Los registros asociados en la transmisión Master síncrona se muestra en la figura 6-11.

Figura 6-11. Registros empleados por el transmisor Master síncrono del EUSART  

Recepción Master síncrona

El Master genera la señal de reloj que le sirve para muestrear los bits que le llegan con cada flancodescendente. Si se activa el bit SREN se recibe un único dato. Si además se activa el bit CREN la recepción escontinua hasta que se desactiva dicho bit.

A continuación se resume la secuencia de pasos a realizar:

P6 -8

Page 18: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 18/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

● Cargar los registros SPBRGH:SPBRG con el valor apropiado según los baudios que se deseen● Activar la puerta serie Master síncrona mediante los bits SYNC, SPEN y CSRC.● Los bits CREN y SREN deben estar borrados.● Si las señales de reloj (CK) y de datos (DT) son invertidas, activar los bits TXCKP y RXDTP respectivamente.●

Si se desea interrupción, habilitarla mediante el bit RCIE.● Si se desean datos de 9 bits se debe activar RX9.● Para una recepción simple se activa SREN y para una recepción continua se activa CREN.● El bit RCIF se activa cuando se complete la recepción de un dato.● Leer el registro RCSTA para obtener el 9º bit y/o si hay algún error.● Leer el registro RCREG para obtener el dato recién recibido.● Borrando el CREN se borran los bits de error.

La figura 6-12 presenta los registros involucrados en la recepción Master síncrona

Figura 6-12. Registros del receptor Master síncrono 

6.2.5 El USART en el modo Slave síncrono

El modo Slave síncrono se selecciona borrando el bit CSRC del registro TXSTA. Se diferencia del modoMaster en que la señal de reloj en base a la cual se transfieren los bits, lo proporciona un generador externo(seguramente un Master).

Transmisión Slave síncrona

Este modo de operación es idéntico a la transmisión Master síncrona excepto en la señal de reloj que se leaplica de forma externa.

La secuencia de manejo se puede resumir en los siguientes pasos:

● Activar la puerta serie síncrona Slave mediante los bits SYN = SPEN = “1” y CSRC = “0”.● Borrar los bits CREN y SREN● Si se desea interrupción activar el bit TXIE.● Si la polaridad de las señales de reloj (CK) y datos (DT) es invertida, activar los bits TXCKP y RXDTP

respectivamente.● Si se va a trabajar con 9 bits activar el bit TX9● Activar el transmisor mediante el bit TXEN.● Si se trabaja con 9 bits de datos, cargar el 9º bit en TX9D.● Comenzar la transmisión cargando el dato a transmitir en el registro TXREG

La tabla de la figura 6-13 muestra los registros involucrados en la transmisión Slave síncrona del EUSART.

P6 -9

Page 19: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 19/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Figura 6-13. El modo transmisor Slave síncrono  

Recepción Slave síncrona

La recepción síncrona son idénticas tanto en el modo Master como en el Slave excepto que, en el modoSlave, la señal de reloj la suministra un generador externo (seguramente un Master).

La secuencia para iniciar una recepción síncrona en modo Slave se resume a continuación:

● Activar la puerta serie síncrona mediante los bits SYNC = SPEN = “1” y CSRC = “0”.● Si se desea emplear la interrupción, activar el bit RCIE.● Si las señales de reloj (CK) y/o de datos (DT) está invertida, activar los bits TXCKP y RXDTPrespectivamente.● Si se van a recibir 9 bits se debe activar el bit RX9.

● Para activar la recepción activar el bit CREN.● El bit RCIF se activa cuando se complete la recepción.● Leer el registro RCSTA para obtener el 9º bit recibido.● Leer el registro RCREG para obtener los bits del byte recibido.● Si se produjo algún error, se puede desactivar borrando el bit CREN .

La figura 6-14 muestra los registros que se emplean en la recepción síncrona Slave.

Figura 6-14. Registros empleados en el modo receptor Slave síncrono 

P6 -10

Page 20: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 20/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

6.3 MATERIALES NECESARIOS

● Laboratorio PIC’School● PIC18F2550●

Sensor ultrasónico de distancias SRF02● Controlador de LCD’s SYM20● Cables de conexión

6.4 DESARROLLO DE LA PRACTICA

Los ejemplos que se proponen a continuación tratan de exponer de una forma práctica el empleo delEUSART disponible en los dispositivos PIC18. La mayor parte de ellos transfieren información entre el PIC ycualquier dispositivo serie como puede ser el canal serie de un PC. En este caso basta con ejecutar el programaHyper Terminal que viene con las diferentes plataformas de Windows y que convierte al PC en un Terminalperiférico para la transmisión/recepción de datos.

6.4.1 Sencillo ejemplo de transmisión

Objetivos

Tener una primera toma de contacto con el módulo EUSART, haciendo una simple transferencia entre elPIC y un Terminal (el PC ejecutando el programa Hyper Terminal).

Esquema eléctrico

TxD

INTERFACE RS-2323

1234RC6/TxD

Se muestra en la figura 6-15. El PIC transmite los datos por la líneaRC6/TxD. Esta se conecta con la señal TxD del interface RS232 disponible en ellaboratorio PIC’School. De aquí se conecta directamente un cable estándar DB9macho-hembra que va a parar al canal serie del ordenador. Este cable es

idéntico al que empleamos para grabar el PIC.Figura 6-15. Conexiones  

Programas Fuente

Ejem_6.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

El programa transmite el carácter “A” a intervalos de 1 seg. Emplea el Timer 0 como temporizador de 16bits y con presacler de 1:16. Cada 1 segundo provoca una interrupción.

El EUSART se configura para transmitir a 9600 baudios, 8 bits de datos y 1 bit de stop. El programa detratamiento de la interrupción repone al Timer 1 y carga el registro transmisor TXREG con el carácter a transmitir.

La mejor forma de comprobar el funcionamiento de éste, y los próximos ejemplos, es mediante un PCejecutando un programa de comunicaciones como puede ser el Hyper Terminal (que viene con Windows) osimilar. Dicho software se configura para una comunicación a 9600 baudios, 8 bits de datos y 1 bit de stop. El PCse comporta como un simple periférico terminal de datos capaz de transmitir y/o recibir caracteres.

Un cable con conectores DB9 macho y hembra en sus extremos conecta el PC con el interface RS232 dellaboratorio y este a su vez con el PIC según el esquema anterior. Se puede emplear el mismo cable serie que seemplea durante la grabación. Lo ideal sería tener 2 cables para no tener que andar cambiándolo de sitio.

P6 -11

Page 21: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 21/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

6.4.2 Transmisión/Recepción con auto detección

Objetivos

Una de las aportaciones mas interesantes del módulo EUSART implementado en los PIC18 es lacapacidad de auto detectar la velocidad de transferencia de datos y sincronizarse automáticamente con elperiférico (en nuestro caso el PC).

Esquema Eléctrico

Se muestra en la figura 6-16. La línea RC7/RxD es por donde se recibenlos datos. Se conecta con la señal RxD de la interfaz RS232 del laboratorio.RC6/TxD es la línea de transmisión y se conecta con la señal TxD de ese mismointerfaz. Al PC esas señales le llegan cruzadas. Es decir, la señal de recepción seconecta con la de transmisión del PC y la de transmisión con la de recepción delPC.

RxDTxD

INTERFACE RS-2323

1234

RC7/RxD

RC6/TxD

  Figura 6-16. Conexiones  

Programas Fuente

Ejem_6B.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6B.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

El programa principal es muy sencillo. Cuando se recibe un carácter desde el PC se provoca unainterrupción cuyo tratamiento se limita a retransmitir el carácter recién recibido, a modo de eco. Mención especialse merecen el conjunto de instrucciones que realizan el ciclo de auto detección de los baudios. Este ciclo se iniciaal activar el bit ABDEN del registro BAUDCON.

El EUSART queda a la espera de recibir, procedente del periférico Terminal (el PC), el código 0x55 (“U”).Un timer interno calcula el tiempo que tardan en producirse los 5 flancos ascendentes que implica este código0x55. De esta manera calcula el tiempo por cada bit, determina los baudios (bits/segundo) y ajustaautomáticamente los registros SPBRGH y SPBRG del sistema de generación de baudios del EUSART.

Una vez que el PIC esté grabado y se hayan hecho las conexiones apropiadas entre el laboratorioPIC’School y el PC, comprobar el funcionamiento del ejemplo es muy sencillo. El primer código que hay que enviar desde el PC hasta el PIC es el 0x55, también llamado byte de sincronismo y se corresponde con el carácter “U”. ElEUSART queda entonces sincronizado y a partir de ese momento todos los caracteres que se envíen desde el PCal PIC serán devueltos otra vez al PC.

Podemos probar a configurar el software de comunicaciones Hyper Terminal a cualquier velocidad detransferencia. Al reiniciar el sistema, el EUSART del PIC queda a la espera de recibir un nuevo código 0x55,

momento en que se sincroniza a la nueva velocidad y comienza la aplicación.

6.4.3 Transmisión de mensajes

Objetivos

Transmitir mensajes a través del EUSART con auto detección de velocidad o baudios.

Esquema Eléctrico

Se muestra en la figura 6-17 y es idéntico al empleado en el ejemploanterior.

RxDTxD

INTERFACE RS-2323

1234

RC7/RxD

RC6/TxD

 

Figura 6-17. Esquema de conexiones  

P6 -12

Page 22: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 22/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Programas Fuente

Ejem_6C.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6C.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

El ejemplo vuelve a emplear el sistema de auto detección de velocidad. Así pues el ciclo comienza cuandose recibe, desde el Terminal, el byte 0x55.

Los mensajes están formados por cadenas de caracteres almacenados en memoria. La directiva delensamblador  db almacena en sucesivas posiciones de la memoria de programa todos los bytes de la cadena.Estos bytes se pueden expresar directamente en ASCII si se encierran entre “comillas” o bien en hexadecimal,decimal o binario separados entre sí mediante comas.

Mediante la directiva “Mens_x equ $” se obtiene la dirección de inicio de cualquiera de las cadenas. La

sub rutina “Mensaje” carga los punteros TBLPTR con dicha dirección y va extrayendo secuencialmente todos ycada uno de los bytes de la cadena, al tiempo que los transmite por el EUSART. El código 0x00 lo hemosempleado para determinar el final de una cadena.

Si observamos el programa fuente escrito en C, podemos apreciar cómo se almacena una cadena decaracteres sobre la memoria de programa:

const char Mens_0[4][50]={ "Ingenieria de Microsistemas Programados S.L. ","Alda. Mazarredo N. 47-1 dpto. 2 ","48009 Bilbao - Bizkaia ","Tfno./Fax. 944230651 (www.microcontroladores.com)"};

En este ejemplo se ha realizado una estructura matricial de 4 filas y 50 columnas llamada Mens_0, de tipo

alfabética (char) y en la memoria de programa (const). Manipulando los índices se puede acceder a cualquiera delas filas y/o de las columnas.

6.4.4 Monitorización remota

Objetivos

Presentar un ejemplo que permite monitorizar de forma remota el estado de diversas señales de entrada.Esto puede tener un gran número de aplicaciones reales.

Esquema Eléctrico

Se muestra en la figura 6-18. Los interruptoresE6:E0 del laboratorio se conectan con las entradasRA6:RA0. Son las señales a monitorizar. RC7/RxD yRC6/TxD se conectan con las señales RxD y TxD delinterfaz RS232.

E0E1E2E3

RxDTxD

E4E5E6

AP18

ENTRADAS DIGITALES

12345678

INTERFACE RS-2323

1234RA0

RA1

RA3RA2

RC7/RxD

RC6/TxD

RA4RA5RA6

 

Figura 6-18. Conexiones del montaje 

P6 -13

Page 23: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 23/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Programas Fuente

Ejem_6D.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6D.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

El programa lee las entradas de la puerta A, cada bit se convierte a su correspondiente código ASCII y setransmite vía serie a través del EUSART.

En el Terminal debe aparecer una cadena de 8 bits que representan el estado de las líneas RA6:RA0. Elcambio de estado de cualquiera de esas entradas debe verse inmediatamente reflejado en la pantalla del PC.

6.4.5 Control remoto de salidas y monitorización

Objetivos

Presentar otro ejemplo que tiene muchas posibilidades en aplicaciones reales. Se trata de gobernar deforma remota las salidas conectadas a la Puerta B.

Esquema Eléctrico

Se muestra en la figura 6-19. Las salidas Rb7:RB0se conectan con los leds S7:S0 del laboratorio y estos seactivarán o no desde el Terminal.

S5S4S3S2S1S0

S6S7

RxDTxD

AP17

SALIDAS DIGITALES

12345678

INTERFACE RS-2323

1234

RB4

RB1

RB5

RB0

RB2RB3

RB6RB7

RC6/TxD

RC7/RxD

 

Figura 6-19. Esquemas de conexiones  

Programas Fuente

Ejem_6E.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6E.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

Desde el Terminal se reciben 8 comandos que se corresponden con las teclas 0 al 7. Según el comandorecibido una de las 8 salidas RB0 a RB7 cambia de estado. Al mismo tiempo y, como en el ejemplo anterior, elestado actual de la Puerta B se transmite de forma constante para su monitorización en el terminal.

6.4.6 Recepción y visualización sobre el LCD

Objetivos

Mostrar en la pantalla LCD del laboratorio PIC’School los caracteres que van llegando vía serie desde elterminar.

P6 -14

Page 24: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 24/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Esquema Eléctrico

RxDTxD

L7

RS

L1

L4L3

L6

L0

E

L5

R/W

L2

INTERFACE RS-2323

1234

AP20DATOS

12345678

AP9CONTROL

12

34

RC7/RxD

RC6/TxD

RB6

RB4

RB7

RA3RA2

RA1

RB1RB0

RB2RB3

RB5

Se muestra en la figura 6-20. Las puertas A y B seemplean para controlar la pantalla LCD. RC7/RxD y

RC6/TxD se conectan con RxD y TxD del circuito deinterfaz RS232 del laboratorio.

Figura 6-20. Esquema de conexiones  

Programas Fuente

Ejem_6F.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip

Ejem_6F.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

El ejemplo provoca una interrupción cada vez que se recibe un carácter. El programa de tratamiento lovisualiza sobre el LCD controlando la posición actual del cursor.

6.4.7 Midiendo con el sensor ultrasónico SRF02

Objetivos

La comunicación serie no tiene porque estar ligadaexclusivamente a la transferencia de información entre el PIC y un

Terminal o PC. Existen en el mercado gran cantidad de periféricos,dispositivos, C. integrados, etc.. que se controlan con este tipo decomunicación. En este ejemplo se pretende controlar vía serie, desdeel EUSART, un periférico real como es el medidor ultrasónico dedistancias SRF02 mostrado en la figura 6-21 y cuya documentacióntécnica se adjunta en el CDROM.

Figura 6-21. El sensor ultrasónico SRF02 

Esquema Eléctrico

Se muestra en la figura 6-22. Las puertas A y B controlan la pantalla LCD donde se visualizarán lasmedidas realizadas. RC7/RxD y RC6/TxD se conectan con Tx y Rx del sensor respectivamente. A través de ellasel PIC se comunica con el SRF02.

+5Vcc

L7

RS

L1

L4L3

L6

L0

E

L5

R/W

L2RxD

TxD

AP9CONTROL

1234

AP20DATOS

12345678

U14

SRF02_Serie

1

2

3

4

5

+5Vcc

Rx

Tx

Mod

GNDRB6

RB4

RB7

RA3RA2RA1

RC6/TxD

RB1RB0

RC7/RxDRB2RB3

RB5

 Figura 6-22. Conexión del sensor SRF02 

P6 -15

Page 25: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 25/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

La información técnica de este sensor se encuentra en el CDROM que acompaña al presente módulo deprácticas. El sensor puede trabajar con comunicación serie asíncrona a 9600 baudios, 8 bits de datos y 2 bits destop, tal y como se emplea en esta práctica. También puede trabajar en comunicación serie síncrona según elprotocolo I2C. Esto se verá mas adelante.

La figura 6-23 muestra la disposición de conexiones delsensor ultrasónico SRF02 en el modo serie asíncrono. La líneaRx se conecta con RC6/TxD del PIC. A través de esta línea elsensor recibe los diferentes comandos a ejecutar. La línea Tx seconecta con RC7/RxD y es por donde el módulo SRF02transmite el resultado según el comando recién ejecutado. Lapatilla MODO se conecta a GND para trabajar en modo serieasíncrono o bien se deja sin conexión para trabajar en el modoI2C.

Figura 6-23. Conexiones del SRF02 en el modo asíncrono  

Programas Fuente

Ejem_6G.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6G.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

De los diferentes comandos que admite al sensor SRF02, en este ejemplo empleamos los comandos demedida automática. Cuando el SRF02 recibe uno de estos comandos se realizan una medida (en cm, pulgadas oµS) y automáticamente re transmite el resultado de dicha medida.

El programa transmite de forma secuencial los comandos para medir en Cm, pulgadas y µs. Cada vez quese envía uno de estos comandos, se espera a recibir los dos bytes del resultado. Este se convierte a BCD y se

visualiza sobre la pantalla LCD.

Como resultado apreciamos en la pantalla una medida de distancia expresada en cm, pulgadas y µS. Paracomprobar la equivalencia entre las distintas unidades de medida, recordar que:

● 1 pulgada = 2.54 cm cm=Pulgadas * 2.54● La velocidad del sonido es aproximadamente 29.15µS/Cm. Se multiplica por dos ya que la señal ultrasónica

hace un recorrido de ida y vuelta Cm = (µs/2) / 29.15

El rango de medida del sensor esaproximadamente de unos 18cm a 6 m.

Podemos probar a poner frente al sensor unobstáculo a diferentes distancias. En lafigura 6-24 se puede apreciar el montajepráctico del presente ejemplo.

Figura 6-24. Montaje práctico con el SRF02 

P6 -16

Page 26: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 26/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

6.4.8 El controlador de pantallas LCD SYM20AA

Objetivos

Como se ha comentado anteriormente la comunicación serie a través del EUSART integrado en losdispositivos PIC18 puede servir, no solo para la comunicación serie estándar, si no para el control o gobierno demúltiples tipos de periféricos y dispositivos que emplean este tipo de interfaz. Ese era el caso del sensor ultrasónico SRF02 empleado en el ejemplo anterior y el del controlador de pantallas LCD SYM20AA queemplearemos a continuación.

Se trata de un circuito que se gobierna con tan sólo dos líneas del PIC como máximo (TxD y RxD). Se letransmiten los caracteres ASCII que se desean visualizar y/o los comandos de control. El SYM20AA se encargade realizar todas las funciones de gestión de la pantalla. Esto supone que el PIC se libra de todas las tareasdedicadas a la visualización sobre LCD y ahorra una buen número de patillas de E/S. Piénsese que el control deuna pantalla LCD, tal y como se venido haciendo hasta ahora, consume 11 líneas de E/S y una buena porción dela memoria de programa donde se almacenaban las distintas rutinas.

En este ejemplo veremos el manejo del controlador SYM20AA que utilizaremos en próximas prácticas, loque nos permitirá ahorrar patillas del PIC y emplearlas para otros cometidos o funcionalidades. En ladocumentación en el CDROM se adjunta el data sheet completo del controlador SYM20AA. Se recomienda suestudio para un mayor aprovechamiento de las prestaciones del mismo.

Esquema Eléctrico

+5Vcc

SYM-20AA

21

1817

9

15

14

16

8

7

3

6

5134

12

D7D6D5D4

E

RS

VCC

R/W

TxD

RxD

BAUD

BLIGHT

GNDDATA

VPP

CLK

LCD HD44780 compatible

        7 8 9 1    0

    1    1

    1    2

    1    3

    1    4

    6    5    4    3    2        1 1    5

    1    6

    D    0

    D    1

    D    2

    D    3

    D    4

    D    5

    D    6

    D    7

    E    R    W

    R    S

    V    L    C

    V    C    C

    G    N    D

    L    +

    L  -

RC6/TxD

Se muestra en la figura 6-25. ElSYM20 se conecta con la pantalla LCD y secarga de su total control. Por otra parte, enestos ejemplos, sólo empleamos la líneaRC6/TxD del PIC18. Por ella, gracias alEUSART enviamos al SYM20 los comandos

y códigos ASCII que se desean visualizar.Insistimos en que únicamente se consumeuna línea del PIC.

Figura 6-25. Conexión del SYM20 con la pantalla LCD y el microcontrolador  

Programas Fuente

Ejem_6H.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6H.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

A estas alturas y, con todos los ejercicios realizados con el EUSART, no vamos a enseñar nada nuevoexcepto lo relativo al controlador SYM20. En este ejemplo se trata de visualizar sobre la pantalla LCD distintosmensajes igual que se hizo en el apartado 6.4.3. Bajo el punto del EUSART la única diferencia consiste en que noempleamos la auto detección ya que el SYM20 no tiene está característica.

Por lo demás las rutinas son idénticas y los mensajes de texto o cadenas de caracteres se almacenan enla programa de memoria igual que se hizo en aquella ocasión.

Como resumen decir que, bajo el punto de vista del SYM20, éste espera a recibir vía serie los comandos ydatos que se explican en su propio data sheet.

P6 -17

Page 27: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 27/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

La figura 6-26 muestra el montaje práctico realizado sobre el laboratorio PIC’School. Se recomiendaprestar atención en este montaje ya que se empleará en posteriores ocasiones.

Figura 6-26. Montaje práctico del controlador SYM20  

6.4.9 El controlador de pantallas SYM20, monitorizando entradas

Objetivos

Insistir una vez mas en la importancia del controlador SYM20 y el EUSART de los dispositivos PIC18, decara a visualizar cualquier tipo de información sobre una pantalla LCD y con un mínimo coste tanto en líneas deE/S como de software.

Esquema Eléctrico

Se muestra en la figura 6-27.

+5Vcc

E3E2E1E0

E4E5E6

SYM-20AA

21

1817

9

15

14

16

8

7

3

6

5134

12

D7D6D5D4

E

RS

VCC

R/W

TxD

RxD

BAUD

BLIGHT

GNDDATA

VPP

CLK

LCD HD44780 compatible

        7 8 9 1    0

    1    1

    1    2

    1    3

    1    4

    6    5    4    3        2 1    5

        1 1    6

    D    0    D    1    D    2    D    3    D    4    D    5    D    6    D    7    E    R    W    R    S    V    L    C

    V    C

    C

    G    N

    D

    L    +    L  -

AP18

ENTRADAS DIGITALES

RC6/TxD12345678RA0

RA3RA2RA1

RA4RA5RA6

 Figura 6-27. Esquema de montaje  

P6 -18

Page 28: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 28/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

Programas Fuente

Ejem_6I.ASM  Desarrollado en ensamblador mediante el MPASMWIN V5.03 de MicrochipEjem_6I.C  Desarrollado en C mediante la versión PCH V 3.241 de CCS

Comentarios

Se trata de una aplicación de las múltiples posibles. Es un ejemplo similar al que se propuso en elapartado 6.4.4. Consiste en monitorizar el estado de las entradas RA7:RA0. En aquella ocasión el estado dedichas entradas se transmitía vía serie e iba a parar a un periférico Terminal (el PC). En esta ocasión el estado delas entradas también se transmite vía serie pero es recogido por el controlador SYM20 que se encarga devisualizarlo sobre la pantalla LCD del laboratorio PIC’School. En la fotografía de la figura 6-28 se aprecia elmontaje realizado.

Figura 6-28. Montaje práctico del sistema de monitorización de entradas  

6.5 TRABAJO PERSONAL

Con todo lo visto en esta y en prácticas anteriores, se proponen una serie de trabajos con el único fin deafianzar conocimientos y tratar de dar un contenido real a las aplicaciones.

6.5.1 Control remoto del motor

Mediante un terminal remoto (un PC) conectado al EUSART se trata de controlar el funcionamiento delmotor EMG30. De una forma interactiva y a través de distintos mensajes, el usuario debe establecer remotamentela secuencia de trabajo o maniobra que debe realizar el moto y consta de r:

● Sentido de giro● Velocidad o potencia giro● Nº de pasos a realizar 

En este ejemplo se emplea el EUSART para establecer la comunicación entre el usuario y el PIC ydeterminar la maniobra anterior. También se deben emplear los módulos CCP para el control de anchura de

P6 -19

Page 29: Indice Del Modulo PIC18FXXXX

5/10/2018 Indice Del Modulo PIC18FXXXX - slidepdf.com

http://slidepdf.com/reader/full/indice-del-modulo-pic18fxxxx 29/29

 

Módulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART 

pulsos (potencia aplicada) y el control de desplazamiento. Es por tanto un ejemplo bastante real que empleavarios de los recursos que integran los dispositivos PIC18.

6.5.2 Detección de obstáculos

Se propone un ejemplo que trata de simular el sistema de ayuda al aparcamiento que disponen variosmodelos de vehículos. Mediante el sensor SRF02 se obtiene la distancia respecto al obstáculo. La distanciamínima será de 1,5m. A partir de esta distancia, cuanto mas próximo se encuentre el obstáculo, se genera unaintermitencia variable sobre una línea de salida. A mayor proximidad mayor frecuencia en esa intermitencia.

P6 -20