Serie Asincrona en C

download Serie Asincrona en C

of 17

Transcript of Serie Asincrona en C

  • 1Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    (Compiladores de CCS)

    2Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    COMUNICACIN SERIE ASNCRONA en C (compiladores de CCS)

    La Configuracin de una Comunicacin Serie Asncrona desde el compilador PCM de CCS est gobernada, de manera fundamental por la directiva #USE RS232

    Aunque la directiva se llame as, sirve para configurar cualquier transferenciaserie asncrona y no slo RS232, que no deja de ser una de las posibles normas

    Los niveles elctricos asociados a los niveles lgicos de recepcin/transmisinson los correspondientes a la tensin de alimentacin del microcontrolador y noa los de la norma RS232

    El asistente del entorno PCW (PIC Wizard) permite definir, para esta directiva:

    Velocidad de transmisin (en baudios) Qu pin se emplear para la transmisin Qu pin se utilizar para la recepcin Si se va a utilizar o no bit de paridad y de qu tipo (par o impar)

  • 3Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    PIC Wizard para configuracinde comunicaciones

    Comunicacin serie asncrona

    Posible ms de un puerto

    4Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Opciones de la directiva #USE RS232 :

    BAUD= xx sera la velocidad de comunicacin (en baudios). Para que el compiladorinserte el cdigo necesario para transmitir/recibir a la velocidad indicada, debe conocer la frecuencia del oscilador que se va a utilizar. Deber pues existir previamente una directiva #USE DELAY(clock=frec.)

    Si la velocidad de transmisin indicada no se pudiera alcanzar con un error inferior al 3%, se generara a la hora de realizar la compilacin un mensaje de error del tipo: Baud rate out of range salvo que se incluyauna opcin BRGH1OK en la directiva (asumimos ese error)

    XMIT=pin Pin de transmisin que se va a utilizar (p.e.: xmit=PIN_C6)

    RCV=pin Pin de recepcin que se va a utilizar (p.e.: rcv=PIN_C7)

    Si el microcontrolador seleccionado tiene mdulo SCI y se especifican los pinesasociados como los que se deben utilizar, la transmisin y/o recepcin se harcon el hardware disponible, en caso contrario ser implementado por software

  • 5Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    ENABLE=pinDurante la transmisin, el pin especificado estar en estado alto y durantela recepcin en estado bajo . Ese pin se puede utilizar para habilitarbien la transmisin o bien la recepcin en una comunicacin semi-dplexcomo puede ser el caso del control de los drivers de un bus RS485

    RESTART_WDTSe insertar cdigo para resetear el Watchdog durante la esperapor un byte (para funciones que se quedan esperando) a que llegue algo

    INVERTCon esta opcin, se invierte la polaridad de los niveles asociados a lospines de la comunicacin: el 0 correspondera a tensin y el 1 a masa.El estado inactivo o de reposo (a 1) se correspondera con tensin nulaEsta opcin no debera utilizarse si se emplea el mdulo SCI interno

    BITS=xSe especifica el tamao de los datos que sern enviados, x puede tomarun valor comprendido entre 5 y 9 si se implementa por softwarela comunicacin o bien de 8 9 si se emplea el mdulo SCI interno

    6Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    FLOAT_HIGHEn estado alto, la lnea no estar en un nivel alto sino en un estado de tensin flotante debido a que la salida que la controla es del tipodrenador (o colector) abierto

    BRGH1OKCon esta opcin el compilador permite la generacin de cdigo an enaquellos dispositivos que presentarn problemas en su velocidad detransmisin

    PARITY=x -> x puede ser N (none: sin), O (odd: impar) o E (even: par)Si se especifica el empleo de paridad, se enva un bit adicional comocomprobacin y en el supuesto de que se produzca un error, stequedara registrado en una variable denominada RS232_ERRORS

    ERRORSSi se emplea esta opcin, el compilador define una variable llamadaRS232_ERRORS que recoge los errores en cada recepcin y losresetea despus de que stos se produzcan

  • 7Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    La variable RS232_ERRORS (definida por el compilador) contiene:

    a) Si se est utilizando una implementacin software:

    En el bit 7, el 9 bit si se est utilizando tamao de 9 bits en transmisin El bit 6 se pone a 1 si se produjo un fallo en el envo con el modo detensin flotante de salida

    b) Si se est empleando una UART interna:

    Es una copia del registro RCSTA (slo para recepcin), salvo el bit 0que se emplea para indicar error de paridad

    Registro RCSTA

    8Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Ms acerca de la Directiva #USE RS232(opcin, opcin,...)

    Si la implementacin va a realizarse por software (no se va a utilizar unmdulo SCI interno), es importante que las directivas #USE FAST_IOo bien #USE FIXED_IO vayan delante de esta directiva pero no ladirectiva #USE STANDARD_IO por la manera en que se generara el cdigo de puesta a 1 o puesta a 0 de las lneas de salida

    Las funciones integradas del compilador ms usadas para comunicacin serieasncrona a las que afecta esta directiva son las siguientes:

    Para CONFIGURACIN: set_uart_speed( )

    Para TRANSMISIN: putc() o su equivalente: putchar()puts()printf()

    Para RECEPCIN: kbhit()getc() o sus equivalentes getch() y getchar()gets()

  • 9Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Las Funciones Integradas para la Com. Serie Asncrona (Configuracin):

    set_uart_speed(baudios)

    Esta funcin slo se puede emplear en aquellos dispositivos que utilizanel mdulo SCI (USART) interno hardware. La funcin se emplea paracambiar la velocidad de transmisin/recepcin en tiempo de ejecucin(no en la compilacin)

    P.e.: switch( input_d() & 0x03){

    case 0: set_uart_speed(2400);break;

    case 1: set_uart_speed(4800);break;

    case 2: set_uart_speed(9600);break;

    case 3: set_uart_speed(19200);break;

    } //Con los pines RD0 y RD1 se selecciona la velocidad

    10Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Las Funciones Integradas para la Com. Serie Asncrona (Transmisin):

    putc() putchar() (son idnticas) putc(caracter)

    Se enva un carcter a travs del pin especificado para envo (XMIT) en la directiva #USE RS232 anterior

    Ejemplo: char mensaje[10];...putc(*);for(i=0;i

  • 11Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    printf() printf(tira_caracteres) printf(tira_car_constantes,Valores...)printf(Funcin, tira_car_constantes, Valores...)

    Valores son variables en una lista separadas por comasFuncin es el nombre de la funcin que se debe emplear para sacar loscaracteres (si no se especifica nada es la putc() por defecto)

    Esta funcin saca, mediante la Funcin de salida especificada, loscaracteres y los valores para su representacin. Si se especificanValores, la tira de caracteres debe ser constante y se puede insertarla representacin de los valores utilizando el carcter especial % seguidodel nmero de caracteres a utilizar (opcional de 1 a 9 01 a 09 si sedesean representar los ceros a izq.) y del tipo de dato, que puede ser:

    C como carcter U como entero sin signo X como hexadecimalD entero con signo lu entero largo sin signo LX hexadecimal largo ld entero largo con signo

    12Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Ejemplos:Especificacin Valor_1=0x12 Valor_2=0xFE

    %03u 018 254%u 18 254%2u 18 ?Indefinido%d 18 -2%X 12 FE

    Representacin que se veraOtros ejemplos:

    printf(Temporizador 0: %2X,get_rtcc());

    printf(%2u %X %4X \n\r, A,B,C);

    printf(lcd_putc, N = %u, numero);

  • 13Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Las Funciones Integradas para la Com. Serie Asncrona (Recepcin):

    Importante: Estas funciones tienen un comportamiento diferente si la comunicacin est implementada mediante el hardware o por software

    getc() getch() getchar() (son idnticas) valor = getc( )

    Cuando se la llama, espera por la llegada de un byte en el pin de recepcinRCV especificado en la directiva #USE RS232 y devuelve dicho byte comoresultado.

    Si la recepcin est implementada mediante el mdulo USARThardware, se puede hacer uso del triple buffer existente sin perder datos. Si est implementada por software, debemos estar esperando cada bytecon getc() para no perder recepciones.

    Para evitar que el microcontrolador quede colgado esperando de maneraindefinida la recepcin de un byte que no llega, se debera usar lafuncin kbhit() para verificar si ha llegado un carcter y est disponible

    14Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    kbhit() Llamada: valor = kbhit( )

    Esta funcin devuelve 0 (FALSE) 1 (TRUE) si la funcin getc() necesitara conocer la disponibilidad de un carcter (byte) paraser ledo.

    Si la comunicacin est gestionada por software, la funcin devuelveTRUE si se ha detectado un bit de START en el pin de recepcin

    Si est implementada con la USART hardware, devuelve TRUE si elbyte ha sido recibido y est disponible en el buffer para ser ledomediante getc()

    char getc_con_tiempo( ) {int t_maximo=0;while(!kbhit( ) && (t_maximo++ < 50) delay_ms(10);if(kbhit( ))

    return(getc( )); //devuelve carcter recibidoelse

    return(0); } //si no lleg nada devuelve 0

    Ejemplo de Funcin queespera 0,5 segundos como mximo

  • 15Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    gets(puntero_a_tira_caracteres) Llamada gets(puntero)

    Esta funcin espera y lee caracteres que va colocando a partir de laposicin sealada por el puntero utilizado como parmetro.

    Lee hasta que recibe un retorno de carro (13 en decimal 0x0D). La tira de caracteres se finaliza con la inclusin de un cero.

    Ejemplo:

    char tira[30];do{

    printf(Clave:); //se saca mensaje solicitando clave

    gets(tira); //se espera por clave con retorno de carro final

    if(strcmp(tira,password)) //se compara clave introducida con realprintf(Correcta); //si coincide correcta

    else printf(Clave Incorrecta);} while !strcmp(tira,password);

    Ejemplo para solicitar clave por pantalla

    16Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Hablando de Tiras de Caracteres...

    Funciones Estndar para tiras de caracteres:

    strcat(s1,s2) Para encadenar tiras de caracteresstrchr(s1,c) Localiza c en tira por 1 vez y devuelve direccin (&s1[i])strrchr(s1,c) Idem a la anterior pero empieza bsqueda desde finalstrcmp(s1,s2) Compara tiras s1 y s2 y devuelve TRUE si coincidenstrncmp(s1,s2,n) Compara n caracteres entre s1 y s2stricmp(s1,s2) Compara ignorando si son maysculas o minsculasstrncpy(s1,s2,n) Copia n caracteres de s2 en s1strcspn(s1,s2) Cuenta caracteres de s1 que no estn en s2strspn(s1,s2) Cuenta caracteres de s1 que tambin estn en s2strlen(s1) Cuenta los caracteres de s1strlwr(s1) Convierte todas las maysculas a minsculasstrpbrk(s1,s2) Busca posicin en s2 donde empieza copia de s1

    s1 y s2 son punteros a arrays de caracteres

  • 17Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    La Norma RS232

    En principio naci con la idea de recoger todas las posibilidades de comunicacin entre un computador o equipo terminal de datos (DTE o Data Terminal Equipment) y un mdem o equipo de comunicacin de datos (DCE o Data Communications Equipment).

    Sin embargo su uso se extendi a otras aplicaciones que nada tienen que ver con la intencin original y se emplea para comunicar equipos que no respetan ntegramente la norma o la cumplen slo de manera parcial. De hecho se empleapara comunicar equipos que son ambos DTE (dos PCs un PC con un micro p.e.)que no necesitan la mayora de las lneas de la norma original: detector deportadora (DCD), indicador de llamada (RI), canal secundario,

    Los conectores que se suelen utilizar en los equipos son:

    Conector SUB-D de 25 pines Conector SUB-D de 9 pines Conector SUB-D de 15 pines de alta densidad (ms extrao)

    18Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    El conector de 25 pines es el que dispone de todas las seales definidas enla norma inicial, los otros dos prescinden de algunas de las seales.

    Como recomendacin general: si necesitamos comunicar nuestro micro conotro equipo que disponga de un puerto de comunicacin serie segn norma RS232 y dado que cada fabricante hace su interpretacin particular dela norma, consultemos los correspondientes manuales y esquemas para saberexactamente qu tipo de seales est utilizando y en qu pines.

    Como ejemplo tenemos los puertos serie de un PC (COMn), que presentan demanera mayoritaria unos conectores SUB-D de 9 pines hembra (aunque la norma original deca que los DTE deberan ser machos)

    Vista desde el exterior del conector del PC

  • 19Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Funcionalidad de los pines en el conector SUB-D 9 del PC :

    Pin 1 DCD (Entrada al Puerto: Deteccin de Portadora)Pin 2 RXD (Entrada de Recepcin de Datos)Pin 3 TXD (Salida de Transmisin de Datos)Pin 4 DTR (Salida: PC listo para recibir, es la respuesta a CTS)Pin 5 MASA COMNPin 6 DSR (Entrada: PC puede enviar datos, como respuesta a RTS)Pin 7 RTS (Salida: PC pide envo de datos, le responderan con DSR )Pin 8 CTS (Entrada: Pregunta exterior sobre si PC listo para recibir,

    contestar con DTR)Pin 9 RI (Entrada: Indicador de llamada, slo si es realmente un mdem

    el otro equipo)

    Protocolos de envo y de recepcin:

    RTS-DSR funcionan como pregunta-respuesta para enviar datos desde el PC

    CTS-DTR tambin son pregunta-respuesta para recibir datos en el PC

    20Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Para realizar la conexin entre un microcontrolador y un PC, ser necesariorealizar la correspondiente adaptacin de los niveles de tensin que utilizael microcontrolador a los niveles de la norma RS232

    1 -> 5V 1 -> -5V a -15V 1 -> -3V a -15V0 -> 0V 0 -> +5V a +15V 0 -> +3V a +15V

    Escritura RS232 Lectura RS232 Micro a 5Vlectura yescritura

    Existen varios circuitos integrados comerciales que realizan esta adaptacincon muy pocos componentes (p.e. la familia MAX220 a 249)

    La conexin puede realizarse utilizando las lneas que se consideren oportunas.Se puede simplificar el conexionado y obviar las lneas de pregunta-respuesta engaando al emisor para hacerle creer que el receptor est siempre listo.El truco pasa por puentear las lneas de peticin de envo y las respuestas.

  • 21Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Emisores/Receptores de 2 canales para adaptacin TTL - RS232 y viceversa

    Una sola alimentacin de 5V para generar tensiones de +10V y -10V

    22Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    DriverRS232

    (MAX232)

    TX

    RX

    RX

    TX

    1 -> 5V0 -> 0V

    1 -> -3V a -15V0 -> +3V a +15V

    GND GND

    Niveles lectura RS232

    1 -> -5V a -15V0 -> +5V a +15V

    Niveles escritura RS232

    EJEMPLO DECONEXIN A 3 HILOS

    FULL DPLEX

    Conexin serie segn norma RS232: Comunicacin PIC - PC (puerto serie)

    Pin2Pin3

    Pin5

  • 23Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    La Norma RS485

    Es una norma de comunicacin serie asncrona que utiliza dos lneas (A y B)de manera que la tensin diferencial entre ambas marca el nivel lgico quese est enviando.

    La transferencia es semi-dplex ya que slo es posible que un equipo enve,gobernando las lneas de datos A y B, y otro u otros equipos reciban. Estpensada para una comunicacin multipunto.

    La norma RS485 define nicamente la especificacin elctrica del interfacey no un conector especfico. El medio fsico es un par de hilos trenzados entres para reducir el posible ruido electromagntico inducido.

    El estndar RS485 permite la interconexin de hasta 32 dispositivos sobreun nico par de hilos, con velocidades de hasta 10Mbits por segundo y unadistancia mxima de 1200 metros. Ambas magnitudes, velocidad y distanciaestn ligadas entre s, de manera que si se aumenta una, se debe reducir laotra.

    24Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Posibles Circuitos de adaptacin a un bus RS485

    Emisor(driver)

    Receptor(receiver)

    Emisor/Receptor(transceiver)

    Impedancias de terminacin a ambos lados

    El margen de la tensin de modo comn permitida en los terminales deentrada A y B respecto a la masa del receptor est comprendida entre-7V y 12V. Si el terminal A est a una tensin superior a B (con un valordiferencial superior a 0,2V) se estar recibiendo un 1 y en caso contrario(tensin de B superior en ms de 0,2V a A) se interpreta un 0

  • 25Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Circuitos de Interface RS485

    Las seales elctricas que es capaz de generar y leer la USART interna del microcontrolador (o su implementacin software) deben adaptarse a losniveles diferenciales RS485 mediante algn circuito de interface.

    Para permitir el envo y la recepcin con un mismo circuito se debe emplearun transceiver. Son circuitos que adems pueden soportar colisiones, esdecir que ms de un circuito transmisor est emitiendo (o tratando de emitirya que se producir un error en los mensajes de ambos)

    El transceiver integrado ms popular probablemente sea el 75176, capaz derealizar la adaptacin TTL-RS485 y viceversa.

    Otro transceiver utilizado con frecuencia es el 75184 que es totalmentecompatible en patillaje y funcionalidad con el 75176 pero que adems incluyeuna red de entrada supresora de transitorios de tensin sobre las lneasdel bus.

    26Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Transceiver 75176

    Se alimenta con una tensin nica de 5V y combinan el funcionamiento de un driver diferencial triestado de salida con una entrada diferencial para larecepcin.

    Diagrama lgicoEncapsulado DIP8

    Tabla de verdad como emisor Tabla de verdad como receptor

  • 27Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Conexin del transceiver RS485 al microcontrolador

    Adems de los pines de Recepcin y Transmisin, necesitaremos un pinadicional que controle el sentido de los datos en cada momento (entradao salida) para habilitar el bloque envo o de recepcin del transceiver.

    Con dicho pin se podra controlar el terminal DE (habilita envo) y RE (habilita recepcin) del 75176. Como presentan una lgica opuesta, se puedeemplear un nico pin para controlar ambos: si pin=0 se habilita la recepciny se anula el envo, si pin=1 se activa envo y se anula recepcin.

    A

    BRRXDTX

    DERE

    Enable

    75176Microcontrolador

    28Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Programacin en C para transferencia sobre RS485:

    La directiva #USE RS232 permite definir, adems de los pines de envo yrecepcin, un pin de habilitacin que se coloca a 1 durante el envo y a 0durante la recepcin. Dicho pin se activar por software ya que dicha salidano est disponible en la USART integrada, pero desde el punto de vistadel programador, una vez definida la directiva, ser posible utilizar lasfunciones integradas del compilador.

    Ejemplo:

    #use rs232(baud=14400 ,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C2)...if (kbhit()){ cola_circular[cola]=getch();cola++;if (cola>(TAM_BUF_UART-1))cola=0;

    }

  • 29Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Nota de Inters:

    Es posible tener activas varias transferencias asncronas del mismo o dediferentes tipos (RS232, RS485,...) con el mismo microcontrolador PIC.

    La configuracin realizada con la directiva #USE RS232 tiene efecto desdeel lugar en que se encuentra dicha directiva para las funciones getc(), putc(), printf() y kbhit() que aparezcan a continuacin y hasta que aparezca unanueva directiva #USE RS232

    #USE RS232 no es una lnea de cdigo ejecutable si no una configuracinpara las funciones que le siguen, trabaja de manera similar a una directiva#DEFINE.

    De este modo, podramos incluir una directiva #USE RS232 justo antes decada una de las funciones que queramos utilizar para una transferenciaasncrona con una determinada configuracin o bien definir unas nuevasfunciones con la cabecera de configuracin correspondiente al tipo decomunicacin serie asncrona que queramos emplear.

    30Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Ejemplo: Se incluyen dos directivas y se definen funciones especficas

    #use rs232(baud=14400 ,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C2)

    void enviar_RS485( char c) //Para enviar por RS485{ putc( c ); }char tomar_RS485( ) //Para recibir por RS485{ return(getc( ));}

    #use rs232(baud=9600 ,xmit=PIN_B1,rcv=PIN_B2)

    void enviar_RS232( char c) //Para enviar por RS232{ putc( c );}char tomar_RS232( ) //Para recibir por RS232{ return(getc( ));}main( ){ ... caracter=tomar_RS485();

    enviar_RS232(carcter-0);

    enviar_RS485(nuevo);}

    PARA

    RS2

    32PA

    RA R

    S485

    Recibo por RS485

    Envo por RS232

    Envo por RS485

  • 31Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    El mismo ejemplo:

    Se incluye la directiva justo antes de la llamada a la funcin integrada

    main(){...

    #use rs232(baud=14400 ,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C2)

    carcter = getc( ); //Recibir con la configuracin para RS485

    #use rs232(baud=9600 ,xmit=PIN_B1,rcv=PIN_B2)

    putc(carcter-0); //Enviar con la configuracin de RS232

    #use rs232(baud=14400 ,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C2)

    putc(nuevo); //Enviar con la configuracin RS232

    }

    32Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    A CONTINUACIN ALGUNOS EJEMPLOS DE CONEXINENTRE EL PIC EN PICDEM2 plus Y EL PUERTO SERIE DE UN PC,

    TRABAJANDO STE COMO EMULADOR DE TERMINAL

    Programas > Accesorios >

    Comunicaciones > Hyper Terminal

    Se mostrar lo que se reciba por el COMny sacar por dicho puerto serie el cdigoASCII correspondiente a la tecla que sepulse con el teclado del PC

    Configuracin de HyperTerminal

  • 33Comunicacin Serie Asncrona en C ATE-Universidad de Oviedo-Fernando Nuo

    Lenguaje C aplicado a microcontroladores PIC

    Se podra utilizar una utilidad del Compilador de CCS: SIOW

    Tambin es un emulador de terminal