DTForuM


:brindis:    BIENVENIDO AL NUEVO DTForuM -- YA FUNCIONA EL BOTÓN ARCHIVOS -- -- Si tienes alguna duda sobre el uso de este nuevo formato, puedes publicar tu mensaje en MENSAJES PARA EL STAFF ... .... D T F o r u M .... El de siempre, pero mejor !! 
..:: DTForuM.INFO ::.. Manuales de Servicio y toda la Información técnica - Uniendo a los amantes de la electrónica de todo el mundo. From here, to the world !!! 
..:: DTForuM.INFO ::.. Antes de pedir información, búsquela presionando el botón BUSCAR.

..:: DTForuM.INFO ::.. Punto de reunión de amantes de la electrónica.
DESTACADOS, la zona con lo mejor de DTForuM.INFO  ( Hacé click ) ..:: DTForuM.INFO ::.. ..:: 2005- 2006- 2007- 2008- 2009-2010- 2011- 2012- 2013- 2014- 2015- 2016- 2017-2018 ::..
..:: DTForuM.INFO ::.. Uniendo Técnicos desde hace más de 13 años !! ...::DTForuM.INFO::... ...:::La mayor Comunidad de intercambio de Información Técnica:::... El de siempre, pero mejor !!

Premium Membership

Si abona su suscripción

con PAYPAL

solo costará

U$D 18 POR AÑO

Pague con Paypal o con Tarjeta de Crédito de forma SEGURA!

Nota: Si Ud. anula, elimina o desactiva la suscripción, perderá su calidad de Miembro Premium.

¿Qué es PayPal?

SUSCRÍBASE YA !

Otras formas de pago:

Donar + PREMIUM

Conviertase en MIEMBRO PREMIUM y acceda a más de 5 TeraBytes de información, de forma ilimitada.


No cobramos los archivos ni el material que los usuarios suben, solo les pedimos que cada uno pague por el ancho de banda que consume, ya que cada vez es más costoso el bandwidth y no podemos pagar lo que los usuarios descargan sin ningún tipo de control.

Bienvenido(a), Visitante. Por favor, ingresa o regístrate. ¿Perdiste tu email de activación?
noviembre 21, 2018, 07:54:44 am

Ingresar con nombre de usuario, contraseña y duración de la sesión

AllDataSheets

Buscar Datasheet
Buscar en AllDatasheet.com

CuentaDigital

Web Amiga

Clase Nro 9 Curso de C para PICs

Visitante · 8 · 7486

0 Usuarios y 1 Visitante están viendo este tema.

Lucho2007

  • Visitante
Respuesta #8 on: septiembre 06, 2009, 02:15:21 am
Tuve problemas para subir este video a youtube ayer, bueno hoy en la noche acabo de llegar de viaje y lo subí, menos mal que ahora si se pudo. Disculpen que no haya salido con buena luz, lo hice de noche, o sea luz artificial, y el LCD no tiene luz de fondo. Bueno pero si se nota las variaciones y la informacion en pantalla.
Seria bueno hacer una aplicación en la cual pueda enviar datos al LCD via el puerto serial desde la PC, para tambien manejar algunas otras funciones.
Esta muy interesante el curso, esta semana espero ponerme al dia (nivelarme), disculpeme mas bien por ello amigo Hector
 abrazoo

[youtube=425,350]R1Tn1mpOZ20[/youtube]


hector27

  • Visitante
Respuesta #7 on: agosto 31, 2009, 19:47:00 pm
Te adjunto imagen de donde se encuentra. Si no lo tienes debes ir a panel de control, instalar programas, componentes de windows y agregarlo (necesitas el CD de Windows).
O sino bajarlo de internet:
(esto lo busque con el google, no lo probé)
http://hyperterminal-private-edition-htpe.en.softonic.com/


Lucho2007

  • Visitante
Respuesta #6 on: agosto 31, 2009, 15:50:19 pm
Hector por favor podrias explicar como acceso el hiperterminal de windows, para ver la presentacion de los datos serie
gracias

saludos


hector27

  • Visitante
Respuesta #5 on: agosto 02, 2009, 15:06:02 pm
Aqui tenemos una descripcion algo mas detallada de cada funcion:

BusyUSART:

Function:
 Is the USART transmitting?
 
Prototype:
 char BusyUSART(  void );
 
Remarks:
 Returns a value indicating if the USART transmitter is currently busy. This function should be used prior to commencing a new transmission.

Return Value:
 0 if the USART transmitter is idle

1 if the USART transmitter is in use
 
File Name:
 ubusy.c
 
Code Example:
 while (BusyUSART());

 
 

CloseUSART:

Function:
 Disable the specified USART.
 

Prototype:
 void CloseUSART(  void );

Remarks:
 This function disables the interrupts, transmitter and receiver for the specified USART.

File Name:
 uclose.c

 

DataRdyUSART
Function:
 Is data available in the read buffer?
 
Include:
 usart.h
 
Prototype:
 char DataRdyUSART(  void );


Remarks:
 This function returns the status of the RCIF flag bit in the PIR register.

Return Value:
 1 if data is available

0 if data is not available
 
File Name:
 udrdy.c

Code Example:
 while (!DataRdyUSART());

 
 

getsUSART

Function:
 Read a fixed-length string of characters from the specified USART.
 
Include:
 usart.h
 
Prototype:
 void getsUSART ( char * buffer, unsigned char len );

Arguments:
 buffer     A pointer to the location where incoming characters are to be stored.

len           The number of characters to read from the USART.
 
Remarks:
 This function only works in 8-bit transmit/receive mode. This function waits for and reads len number of characters out of the specified USART. There is no time out when waiting for characters to arrive.

File Name:
 ugets.c

Code Example:
 char inputstr[10];

getsUSART( inputstr, 5 );

 
 

OpenUSART

Function:
 Configure the specified USART module.
 
Include:
 usart.h
 
Prototype:
 void OpenUSART( unsigned char config, unsigned int spbrg);

Arguments:
 config               A bitmask that is created by performing a bitwise AND operation (‘&’) or a bitwise OR (‘|’), configurable either way as shown on the example at the end of this file, with a value from each of the categories listed below. These values are defined in the file usart.h.

Interrupt on Transmission:

            USART_TX_INT_ON      Transmit interrupt ON

            USART_TX_INT_OFF    Transmit interrupt OFF

Interrupt on Receipt:

            USART_RX_INT_ON      Receive interrupt ON

            USART_RX_INT_OFF    Receive interrupt OFF

USART Mode:

            USART_ASYNCH_MODE  Asynchronous Mode

            USART_SYNCH_MODE    Synchronous Mode

Transmission Width:

            USART_EIGHT_BIT      8-bit transmit/receive

            USART_NINE_BIT        9-bit transmit/receive

Slave/Master Select*:

            USART_SYNC_SLAVE    Synchronous Slave mode

            USART_SYNC_MASTER  Synchronous Master mode

Reception mode:

            USART_SINGLE_RX      Single reception

            USART_CONT_RX          Continuous reception

Baud rate:

            USART_BRGH_HIGH      High baud rate

            USART_BRGH_LOW        Low baud rate

* Applies to Synchronous mode only
 
 
 spbrg            This is the value that is written to the baud rate generator register which determines the baud rate at which the USART operates. The formulas for baud rate are:

            Asynchronous mode, high speed:

                  Fosc / (16 * (spbrg + 1))

            Asynchronous mode, low speed:

                  Fosc / (64 * (spbrg + 1))

            Synchronous mode:

                  Fosc / (4 * (spbrg + 1))

Where Fosc is the oscillator frequency.
 
Remarks:
 This function configures the USART module according to the specified configuration options.

File Name:
 uopen.c
 
Code Example:
 OpenUSART1( USART_TX_INT_OFF  &

            USART_RX_INT_OFF  &

            USART_ASYNCH_MODE &

            USART_EIGHT_BIT   &

            USART_CONT_RX     &

            USART_BRGH_HIGH,

            25                );

 
 

2.8         putsUSART

Function:
 Writes a string of characters to the USART including the null character.
 
Include:
 usart.h
 
Prototype:
 void putsUSART(  char *data );

void putrsUSART(  const rom char *data );

Arguments:
 data

Pointer to a null-terminated string of data.
 
Remarks:
 This function only works in 8-bit transmit/receive mode. This function writes a string of data to the USART including the null character.

Strings located in data memory should be used with the “puts” versions of these functions.

Strings located in program memory, including string literals, should be used with the “putrs” versions of these functions.

File Name:
 uputs.c

uputrs.c

 
Code Example:
 PutrsUSART (“Hello World!”);

 
 

ReadUSART
getcUSART

Function:
 Read a byte (one character) out of the USART receive buffer, including the 9th bit if enabled.
 
Include:
 usart.h
 
Prototype:
 char ReadUSART(  void );

char getcUSART(  void );

Remarks:
 This function reads a byte out of the USART receive buffer. The Status bits and the 9th data bits are saved in a union with the following declaration:

 

  union USART

  {

    unsigned char val;

    struct

    {

      unsigned RX_NINE:1;

      unsigned TX_NINE:1;

      unsigned FRAME_ERROR:1;

      unsigned OVERRUN_ERROR:1;

      unsigned fill:4;

    };

  };

 

The 9th bit is read-only if 9-bit mode is enabled. The Status bits are always read.

On a part with a single USART peripheral, the getcUSART and ReadUSART functions should be used and the status information is read into a variable named USART_Status which is of the type USART described above.

Return Value:
 This function returns the next character in the USART receive buffer.
 
File Name:
 uread.c

#define in usart.h

Code Example:
 int result;

result = ReadUSART();

result |= (unsigned int)

          USART_Status.RX_NINE << 8;

 
 

WriteUSART
putcUSART

Function:
 Write a byte (one character) to the USART transmit buffer, including the 9th bit if enabled.
 
Include:
 usart.h
 
Prototype:
 void WriteUSART(  char data );

void putcUSART(  char data );

Arguments:
 data             The value to be written to the USART.
 
Remarks:
 This function writes a byte to the USART transmit buffer. If 9-bit mode is enabled, the 9th bit is written from the field TX_NINE, found in a variable of type USART:
  union USART

  {

    unsigned char val;

    struct

    {

      unsigned RX_NINE:1;

      unsigned TX_NINE:1;

      unsigned FRAME_ERROR:1;

      unsigned OVERRUN_ERROR:1;

      unsigned fill:4;

    };

  };

 

On a part with a single USART peripheral, the putcUSART and WriteUSART functions should be used and the Status register is named USART_Status which is of the type USART described above.


File Name:
 uwrite.c

#define in usart.h

Code Example:
 unsigned int outval;

USART_Status.TX_NINE = (outval & 0x0100)                   >> 8;

WriteUSART( (char) outval );

 
 

baudUSART

Function:
 Set the baud rate configuration bits for enhanced USART operation.
 
Include:
 usart.h
 
Prototype:
 void baudUSART(  unsigned char baudconfig );

Arguments:
 baudconfig              A bitmask that is created by performing a bitwise AND (‘&’) operation with a value from each of the categories listed below. These values are defined in the file usart.h:

RX Idle State:

In Asynchronous mode:

   BAUD_IDLE_RX_PIN_STATE_HIGH   Receive data (RX) is inverted.Idle
                                                            state for RX pin is high level

   BAUD_IDLE_RX_PIN_STATE_LOW     No inversion of receive data(RX).
                                                            Idle state for RX pin is low level

In Synchronous mode:

   BAUD_IDLE_RX_PIN_STATE_HIGH   Data (DT) is inverted. Idle state for
                                                            DT pin is high level

   BAUD_IDLE_RX_PIN_STATE_LOW     No inversion of data (DT). Idle state
                                                            for DT pin is low level

                                                            TX Idle State (In Asynchronous
                                                            mode):

   BAUD_IDLE_TX_PIN_STATE_HIGH   Transmit data (TX) is inverted.
                                                            Idle state for TX pin is high
                                                            level

   BAUD_IDLE_TX_PIN_STATE_LOW     No inversion of transmit data
                                                            (TX). Idle state for TX pin is
                                                            low level

Clock Idle State: (In Synchronous mode)

   BAUD_IDLE_CLK_HIGH                     Clock idle state is a high level

   BAUD_IDLE_CLK_LOW                       Clock idle state is a low level

Baud Rate Generation:

   BAUD_16_BIT_RATE                         16-bit baud generation rate

   BAUD_8_BIT_RATE                           8-bit baud generation rate

RX Pin Monitoring:

   BAUD_WAKEUP_ON                             RX pin monitored

   BAUD_WAKEUP_OFF                           RX pin not monitored

Baud Rate Measurement:

   BAUD_AUTO_ON                                 Auto baud rate measurement
                                                            enabled

   BAUD_AUTO_OFF                               Auto baud rate measurement
                                                            disabled
 
Remarks:
 These functions are only available for processors with enhanced USART capability.
 
File Name:
 ubaud.c

 
Code Example:
 baudUSART (BAUD_IDLE_CLK_HIGH &

           BAUD_16_BIT_RATE &

           BAUD_WAKEUP_ON &

           BAUD_AUTO_ON);
 

 

Example Use of the USART Routines with AND mask:

 

#include <p18C452.h>

#include <usart.h>

 

void main(void)

{

  // configure USART

  OpenUSART( USART_TX_INT_OFF  &

             USART_RX_INT_OFF  &

             USART_ASYNCH_MODE &

             USART_EIGHT_BIT   &

             USART_CONT_RX     &

             USART_BRGH_HIGH,25 );

 

  while(1)

  {

    while( ! PORTAbits.RA0 );  //wait for RA0 high

 

    WriteUSART( PORTD );       //write value of PORTD

 

    if(PORTD == 0x80)          // check for termination

      break;                   //   value

  }

 

  CloseUSART();

}

 

Example Use of the USART Routines with OR mask:

 

#include <p18C452.h>

#define USE_OR_MASKS

#include <usart.h>

 

void main(void)

{

  // configure USART

  OpenUSART( USART_TX_INT_OFF  |

             USART_RX_INT_OFF  |

             USART_ASYNCH_MODE |

             USART_EIGHT_BIT   |

             USART_CONT_RX     |

             USART_BRGH_HIGH,25 );

 

  while(1)

  {

    while( ! PORTAbits.RA0 );  //wait for RA0 high

 

    WriteUSART( PORTD );       //write value of PORTD

 

    if(PORTD == 0x80)          // check for termination

      break;                   //   value

  }

 

  CloseUSART();

}


hector27

  • Visitante
Respuesta #4 on: julio 29, 2009, 22:14:18 pm
En nuestro ejemplo sólo hemos usado dos de las funciones correspondientes a la USART:

la que envia una cadena por el puerto serie:

WriteUSART(mybuff[0]); //write value

Y la que indica que la USART está ocupada transmitiendo, con lo cual con un while esperamos a que termine de transmitir:

while (BusyUSART());

En nuestro ejemplo la configuración de la USART se hizo directamente sobre los registros, tal como lo hubiesemos hecho en assembler:

TXSTA=TXSTA&0b10101011;
TXSTA=TXSTA|0b10100000;
SPBRG=39;//baud rate=9600
RCSTA=RCSTA&0b10111111;
RCSTA=RCSTA|0b10010000;

En nuestro ejemplo el bit 3 de BAUDCON (BRG16) esta en cero, por lo cual esta los baudios se ajustan con un registro de 8 bit (modo compatible con la serie PIC16Fxxx)
Adjunto la info sobre los registros.


hector27

  • Visitante
Respuesta #3 on: julio 26, 2009, 14:07:52 pm
Aqui tenemos una tabla con la descripcion de las funciones asociadas al puerto serie (USART):


Function                              Description
 
BusyUSART                     Is the USART transmitting?
 
CloseUSART                       Disable the USART.
 
DataRdyUSART                   Is data available in the USART read buffer?
 
getcUSART                          Read a byte from the USART.
 
getsUSART                          Read a string from the USART.
 
OpenUSART                        Configure the USART.
 
putcUSART                          Write a byte to the USART.
 
putsUSART                          Write a string from data memory to the USART.
 
putrsUSART                          Write a string from program memory to the USART.
 
ReadUSART                          Read a byte from the USART.
 
WriteUSART                          Write a byte to the USART.
 
baudUSART                           Set the baud rate configuration bits for enhanced USART.
 


hector27

  • Visitante
Respuesta #2 on: julio 25, 2009, 17:24:08 pm
Volví de vacaciones y veo que habia subido un archivo incorrecto.
Mis disculpas, este es el correcto


hector27

  • Visitante
Respuesta #1 on: julio 16, 2009, 19:32:48 pm
Este Trabajo practico, el numero 35, es similar al anterior, pero en este caso la lectura del ADC ademas de presentarse en el display LCD, sale por el puerto RS-232, y podemos ver la salida con el hyperterminal de windows o cualquier otro programa emulador de terminal serie.


Tags: