Práctica 7 – Comunicación Serial

 

INTRODUCCIÓN

 

En esta práctica se implementa una comunicación serial UART (Universal Asynchronous Receiver-Transmitter) enviando comandos a través de una terminal serial que nos proporciona el software XIDE v1.0 para el control de encendido o apagado de un LED y revisar el estado de un push button. Esta práctica utiliza en diversas plataformas el módulo I/O’s ADC de Microside para facilitar componentes y conexiones.

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
AVR
ARDUINO
PIC
PIC C Compiler
MikroC PRO
MPLAB X IDE
PIC C Compiler
Bootloader PIC18FX5K50
Bootloader PIC18FX5K50

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28, con el PIC18F45K50 o con el PIC18F25K50. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28. Comprar

1 x Módulo Programador XCU. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Juego de cables Dupont. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

PIC C Compiler v5.069 o posterior. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 o X-TRAINER P8 DIP40  o X-TRAINER P8 DIP28 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, En el siguiente link encontrarás un manual para compilar en PIC C Compiler.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8

X-TRAINER P8 DIP 40

X-TRAINER P8 DIP 28

 

Código

Código

/*

 AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

 FECHA: JUNIO 2019

*/

/**************************************************************************

 Implementar comunicación serial para enviar un comando simple para prender y

 apagar un LED incluido en la tarjeta X-TRAINER, y un segundo comando para

 preguntar el estado de un botón.

**************************************************************************/

#include <18F45K50.h>                                          // Incluye la librería para el PIC ( para X-TRAINERp8DIP28: #include <18F25K50.h> )

#use delay(internal=48MHz)                                   // Configura frecuencia del oscilador interno

#build(reset=0x02000,interrupt=0x02008)              // Asigna los vectores de reset e interrupción para la versión con bootloader

#org 0x0000,0x1FFF {}                                           // Reserva espacio en memoria para el bootloader

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,STREAM=UART ) //Configuración del puerto UART

#define LED PIN_A1                                              //Pin donde está conectado el LED de X-TRAINER

#define Boton PIN_A2                                            //Pin donde está conectado el LED de X-TRAINER

void main ()

  {

   while (1)

  {

   char Caracter = getc ();                                       //Guarda el caracter

   if (Caracter == ‘0’)

    {

      output_low (LED);                                             //Apaga el LED

    }

     else if (Caracter == ‘1’)

    {

     output_HIGH (LED);                                         //Enciende el LED

    }

     else if (Caracter == ‘?’)

    {

        if (1 == input (Boton))                                    //Pregunta el estado del botón

          {                                                                   

            Printf («1»);                                                //Envía un 0 si el botón no está presionado

          }

          else

         {

           Printf («0»);                                                //Envía un 1 si el botón está presionado

         }

      }

   }

}

 

Descargas


Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7 – PIC – Bootloader – CCS

Descargar código en PIC C Compiler de la práctica 7.

MikroC PRO
Bootloader PIC18FX5K50
Programador XCU
Bootloader PIC18FX5K50

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28, con el PIC18F45K50 o con el PIC18F25K50. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28. Comprar

1 x Módulo Programador XCU. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Juego de cables Dupont. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

MikroC PRO for PIC. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 o X-TRAINER P8 DIP40  o X-TRAINER P8 DIP28 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, selecciona en el apartado de librerías la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for PIC.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP40
X-TRAINER P8 DIP28
X-TRAINER P8

X-TRAINER P8 DIP40

X-TRAINER P8 DIP28

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para encender y

apagar un LED incluido en la tarjeta X-TRAINER P8, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Para usar el código con bootloader MICROSIDE:

1) Tools>Options>Output>Output Settings > Marcar "Long HEX format"

2) Project>Edit Project>Insertar 48000000 en "MCU Clock Frequency [MHz]" box

**************************************************************************/

#pragma orgall 0x1FFF                                                                               //Se reserva el espacio para el bootloader

#define LED_ON LATA1_bit = 1                                                               //Se define variable global para encender el led

#define LED_OFF LATA1_bit = 0                                                                //Se define variable global para apagar led

#define BOTON PORTA.f2                                                                         //Se define variable global para botón

void SisInit(void)                                                                                         //Se inicializa el PIC

{                                                                                                                   //Se configura el oscilador interno

          OSCTUNE = 0x80;                                                                            //Se activa el multiplicador de frecuencia 3X PLL

          OSCCON = 0x70;                                                                             //Se cambia de HFINTOSC a 16MHz

          OSCCON2 = 0x10;                                                                          //Se habilita PLL, oscilador primario deshabilitado

          while (PLLRDY_bit==0);                                                                 //Se crea bucle para estabilizar frecuencia

          ACTCON = 0x90;                                                                             //Mantiene la frecuencia una vez estabilizada

                                                                                                                      //Se configuran las entradas y salidas del PIC

         TRISB = 0x00;                                                                                      //Se declara todo el puerto B como salida

         LATA1_bit = 0;                                                                                   //Escribe ceros a la salida del pin A1

         TRISA1_bit = 0;                                                                                     //Se declara el pin A1 como salida

         ANSA1_bit = 0;                                                                                   //Se declara el pin A1 como señal digital

         TRISA2_bit = 1;                                                                                     //Se declara el pin A2 como entrada

         ANSA2_bit = 0;                                                                                     //Se declara el pin A2 como señal digital

}

void main() org 0x2000                                                                                    //Se inicializa el vector del bootloader de Microside

{

          SisInit();                                                                                                  //Se instancia la configuración del PIC

          UART1_Init(9600);                                                                                 //Se inicializa la comunicación serial a 9600

          while(1)                                                                                                   //Se crea un bucle, mientras sea verdadero

                        {

                          if (UART_Data_Ready())                                                         //Pregunta si ha recibido algún dato

                              {

                              char Caracter = UART_Read();                                        //Guarda el caracter

                        if (Caracter == '0')                                                                 //Compara el carácter recibido 

                             {

                              LED_OFF;                                                                           //Apaga el LED

                             }

                              else if (Caracter == '1')                                                        //Compara el carácter recibido

                              {

                                LED_ON;                                                                             //Enciende el LED

                               }

                                else if (Caracter == '?')                                                         //Compara el carácter recibido

                               {

                              if (BOTON==1)                                                                         //Pregunta el estado del botón

                              {

                              UART1_Write('0');                                                                      //Envía un 0 si el botón no está presionado

                             }

                             else

                             {

                             UART1_Write('1');                                                                          //Envía un 1 si el botón está presionado

                             }

                             }

                             }

                        }

}

 

Descargas


Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7 – PIC – Bootloader

Descargar código en mikroC PRO for PIC de la práctica 7.

Programador XCU
PIC12F
PIC16F
PIC18F
PIC12F

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-TRAINER P8, con el PIC12F1572. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se envía el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8. Comprar

1 x Módulo programador XCU. Comprar

1 x Microcontrolador PIC12F1572. Comprar

1 x Juego de cables Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.


Software:

Windows 7 o posterior.

MikroC PRO for PIC. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, selecciona en el apartado de librerías la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for PIC.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8

 

Código

 

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para prender y

apagar un LED incluido en la tarjeta X-TRAINER, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Para usar, configurar el oscilador:

1) Project>Edit Project> Oscillator Selection Bits>seleccionar "INTOSC oscillator: I/O function on CLKIN pin"

**************************************************************************/

#define LED_ON LATA.f1 = 1

#define LED_OFF LATA.f1 = 0

#define BOTON PORTA.f2

#define LED LATA1_bit

void SisInit(void) {                                     //Inicializa el PIC

  OSCCON = 0XF0;                                   //11110000 32 MHz 

  RXDTSEL_bit=1;

  TXCKSEL_bit=1;

  TRISA4_bit = 0;                                      //PIN como salida

  ANSA4_bit = 0;                                      //PIN como salida

  TRISA5_bit = 1;                                     //PIN como entrada

  LATA1_bit = 0;                                      //Salida a 0

  TRISA1_bit = 0;                                    //PIN como salida

  ANSA1_bit = 0;                                    //PIN como salida

  TRISA2_bit = 1;                                   //PIN como salida

  ANSA2_bit = 0;                                   //PIN como salida

}

void main()

  {

      UART1_Init(9600);

      SisInit();

      while(1){

                  if (UART_Data_Ready()) {               //Pregunta si ha recibido algún dato

                 char Caracter = UART_Read();        //Guarda el caracter

                 if (Caracter == '0') {                             //Caracter recibido

                 LED_OFF;                                           //Apaga el LED

     }

                else if (Caracter == '1') {                    //Caracter recibido

                LED_ON;                                            //Enciende el LED

                 }

                else if (Caracter == '?') {                   //Caracter recibido

                if (BOTON==1) {                             //Pregunta el estado del botón

               UART1_Write('0');                            //Envía un 0 si el botón no está presionado

              } else {

              UART1_Write('1');                            //Envía un 1 si el botón está presionado

               }

           }

       }

    }

} 


Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7-PIC-XCU-12F1572

Descarga el código en mikroC PRO for PIC de la práctica 7.

PIC16F

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-TRAINER P8, con el PIC16F1827. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.


Materiales:

1 x Módulo X-TRAINER P8. Comprar

1 x Módulo Programador XCU. Comprar

1 x Microcontrolador PIC16F1827. Comprar

1 x Juego de cables Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

MikroC PRO for PIC. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, selecciona en el apartado de librerías la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for PIC.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8

 

Código 

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para prender y

apagar un LED incluido en el módulo X-TRAINER, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

1) Tools>Options>Output>Output Options, marcar "Long HEX format"

2) Project>Edit Project, insertar 32000000 en "MCU Clock Frequency [MHz]" box

**************************************************************************/

#define LED_ON     LATA1_bit = 1

#define LED_OFF   LATA1_bit = 0

#define BOTON PORTA.f2

void SisInit(void) { 

                                                                                                                                      //Configura el oscilador interno

    OSCCON = 0xF0;                                                                                                    //Cambiar HFINTOSC a 32MHz

                                                                                                                                     //Configurar entradas y salidas

   LATA1_bit = 0;                                                                                                        //SALIDA A 0

   TRISA1_bit = 0;                                                                                                      //PIN como salida

   ANSA1_bit = 0;                                                                                                       //PIN como digital

   TRISA2_bit = 1;                                                                                                      //PIN como entrada

   ANSA2_bit = 0;                                                                                                       //PIN como digital

   TXCKSEL_bit=0;                                                                                                     // Selecciona TX en B2

   TRISB1_bit = 1;                                                                                                         //PIN como entrada

   ANSB1_bit = 0;                                                                                                         //PIN como digital

   RXDTSEL_bit=0;                                                                                                     //Selecciona RX en B1

}

void main()

{

       SisInit();

       UART1_Init(9600);

       while(1){

          if (UART_Data_Ready()) {                                                                                   //Pregunta si ha recibido algún dato

              char Caracter = UART_Read();                                                                      //guarda el caracter

              if (Caracter == '1') {

                   LED_ON;                                                                                                     //Enciende el LED

              }

              else if (Caracter == '0') {

                   LED_OFF;                                                                                                   //Apaga el LED

              }

              else if (Caracter == '?') {

                  if (BOTON==1) {                                                                                          //Pregunta el estado del botón

                     UART1_Write('0');                                                                                   //Envía un 0 si el botón no está presionado

                   } else {

                      UART1_Write('1');                                                                                  //Envía un 1 si el botón no está presionado

                    }

              }

         }

    }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7-PIC-XCU-16F

Descargar código en mikroC PRO for PIC de la práctica 7.

PIC18F

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulosX-TRAINER P8 o X-TRAINER P8 DIP28, con el PIC18F25K22. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP28. Comprar

1 x Módulo Programador XCU. Comprar

1 x Microcontrolador PIC18F25K22. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Juego de cables Dupont. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

MikroC PRO for PIC. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 o X-TRAINER P8 DIP28 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, selecciona en el apartado de librerías la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for PIC.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP28
X-TRAINER P8

X-TRAINER P8 DIP28

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para encender y

apagar un LED incluido en la tarjeta X-TRAINER P8, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Para usar, configurar el oscilador:

1) Project> Edit Project> Oscillator Selection> Internal Oscillator"

2) Project>Edit Project> Insertar 64000000 en "MCU Clock Frequency [MHz]" box

**************************************************************************/

#define LED_ON LATA.f1 = 1                                                                                                 //Se declara la variable global para encender el LED

#define LED_OFF LATA.f1 = 0                                                                                                  //Se declara la variable global para apagar el led

#define BOTON PORTA.f2                                                                                                      //Se declara la variable global para el botón

void SisInit(void)                                                                                                                    //Se configura el PIC

{                                                                                                                                                //Se configura el oscilador interno

         OSCCON = 0x78;                                                                                                         //Se cambia la frecuencia a 16MHz

          PLLEN_bit=1 ;                                                                                                           //Se habilita el multiplicador de frecuencia x4

          while (PLLRDY_bit==0);                                                                                        //Se crea un bucle para estabilizar frecuencia

                                                                                                                                             //Se configuran las entradas y salidas del PIC

          LATA1_bit = 0;                                                                                                           //Se escriben ceros a la salida del pin A1

          TRISA1_bit = 0;                                                                                                           //Se declara el pin A1 como salida

          ANSA1_bit = 0;                                                                                                            //Se declara el pin A1 como señal digital

          TRISA2_bit = 1;                                                                                                            //Se declara el pin A2 como entrada

          ANSA2_bit = 0;                                                                                                            //Se declara el pin A2 como señal digital

         TRISC7_bit = 1;                                                                                                         //Se declara pin C7 como entrada

           ANSC7_bit = 0;                                                                                                          //Se declara el pin C7 como señal digital

}

void main()                                                                                                                              // Se inicializa el main principal

{                                                                                                                                               //Se define el UART1 

           UART1_Init(9600);                                                                                                       //Se definen los baudios de lectura

           SisInit();                                                                                                                      //Se manda a instanciar la configuración del PIC

           while(1)                                                                                                                         //Mientras sea verdadero se ejecuta el código

                         {

                            if (UART1_Data_Ready())                                                                        //Pregunta si ha recibido algún dato

                              {

                          char Caracter = UART1_Read();                                                         //Guarda el caracter leido

                               if (Caracter == '0')                                                                                   //Compara el caracter recibido

                               {

                                LED_OFF;                                                                                           //Apaga el LED

                               }

                                else if (Caracter == '1')                                                                        //Compara el caracter recibido

                                {  

                                LED_ON;                                                                                           //Enciende el LED

                               }

                              else if (Caracter == '?')                                                                        //Compara el caracter recibido

                               {

                                if (BOTON==1)                                                                               //Pregunta el estado del botón

                                {

                                  UART1_Write('0');                                                                        //Envía un 0 si el botón no está presionado

                                }

                                 else

                               {

                                UART1_Write('1');                                                                              //Envía un 1 si el botón está presionado

                               }

                               }

                               }

                          }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7 – XCU – PIC18F25K22

Descargar código en mikroC PRO for PIC de la práctica 7.

MPLAB X IDE
Bootloader PIC18FX5K50
Programador PK3 LITE
Bootloader PIC18FX5K50

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28, con el PIC18F45K50 o con el PIC18F25K50. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28. Comprar

1 x Módulo Programador XCU. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Juego de cables Dupont.  Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

MPLAB X IDE. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 o X-TRAINER P8 DIP40  o X-TRAINER P8 DIP28 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, ejecuta MPLAB X IDE, pega el código en un nuevo proyecto y realiza la compilación. En el siguiente link encontrarás un manual para compilar tu proyecto en MPLAB X IDE.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente  link encontrarás el manual de usuario para el Software XIDE v1.0. 

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. 

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8

X-TRAINER P8 DIP 40

X-TRAINER P8 DIP 28

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para prender y

apagar un LED incluido en la tarjeta X-TRAINER, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Para configurar el Bootloader:

1) File>Project properties> XC8 Linker>Options categories>Memory models>ROM ranges> Esribir: 2000-7F00

2) File>Project properties> XC8 Linker>Options categories>Additional options>Codeoffset> Esribir: 2000

3) File>Project properties> Building>Marcar:Insert unprotected checksum in user ID memory

**************************************************************************/

#include <xc.h>

#include <stdint.h>

#define _XTAL_FREQ 48000000                                           //DEFINE LA FRECUENCIA DE 64MHz

#define LED_High() LATAbits.LA1 = 1;                                   //DEFINE LA FUNCIÓN CUANDO EL LED ESTA ENCENDIDO

#define LED_Low() LATAbits.LA1 = 0;                                    //DEFINE LA FUNCIÓN CUANDO EL LED ESTA APAGADO

#define Boton PORTAbits.RA2                                              //DEFINE EL PIN COMO ENTRADA DEL BOTÓN

char Caracter;                                                                       //DECLARACIÓN DE CARÁCTER

void SisInit(void) {                                                                  //INICIALIZA EL PIC

//CONFIGURA EL OSCILADOR INTERNO

 OSCCON = 0x70;                                                                  //Cambiar HFINTOSC a 16MHz

 OSCCON2 = 0x10;                                                                 //Habilita PLL, oscilador primario deshabilitado

 OSCTUNE = 0x80;                                                                  //3X PLL

 ACTCON = 0x90;

 while (OSCCON2bits.PLLRDY == 0);

//CONFIGURAR ENTRADAS Y SALIDAS

 TRISAbits.TRISA1 = 0;                                                            //PIN como salida

 ANSELAbits.ANSA1 = 0;                                                         //PIN como digital

 TRISAbits.TRISA2 = 1;                                                            //PIN como entrada

 ANSELAbits.ANSA2 = 0;                                                          //PIN como digital

 TRISCbits.TRISC7 = 1;                                                            //PIN como entrada

 ANSELCbits.ANSC7 = 0;                                                          //PIN como digital

 TRISCbits.TRISC6 = 0;                                                             //PIN como salida

 ANSELCbits.ANSC6 = 0;                                                           //PIN como digital

 //CONFIGURA UART

 BAUDCON1 = 0x08;

 RCSTA1 = 0x90;

 TXSTA1 = 0x24;

 SPBRG1 = 0xE1;

 SPBRGH1 = 0x04;

}

void UART1_put(uint8_t Dato) {

          while (0 == PIR1bits.TX1IF);

           TXREG1 = Dato;

}

uint8_t UART1_get(void) {

          while (!PIR1bits.RC1IF);

          if (1 == RCSTA1bits.OERR) {                                                              // EUSART1 error - restart

          RCSTA1bits.CREN = 0;

          RCSTA1bits.CREN = 1;

         }

  return RCREG1;

}

void main(void) {

        SisInit();                                                                                              //INICIALIZA EL PIC

        while (1) {

            Caracter = UART1_get();

            if (Caracter == '1') {

                   LED_High();                                                                                         //EL LED ENCIENDE

                     } else if (Caracter == '0') {

                          LED_Low();                                                                                           //EL LED SE APAGA

                          } else if (Caracter == '?') {

                              if (Boton == 0) {

                                      UART1_put('1');

                                    } else {

                                   UART1_put('0');

                          }

                }

        }

}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7-PIC-BOOTLOADER/MPLAB

Descargar código en MPLAB X IDE de la práctica 7.

Programador PK3 LITE

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40, con el PIC18F47K42. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en el módulo X-TRAINER se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40Comprar

1 x Módulo Programador PK3 LITE. Comprar

1 x Módulo XCU. Comprar

1 x Microcontrolador PIC18F47K42. Comprar

1 x Módulo I/O's ADC. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Juego de cables Dupont. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

MPLAB X IDE. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-TRAINER P8 o X-TRAINER P8 DIP40 y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, ejecuta MPLAB X IDE, pega el código en un nuevo proyecto y realiza la compilación. 

4. Programa el código en el microcontrolador. En el siguiente link encontrarás un manual para compilar y programar tu proyecto en MPLAB X IDE.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. Abre el Software XIDE v1.0, selecciona la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8

X-TRAINER P8 DIP 40

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para prender y

apagar un LED incluido en la tarjeta X-TRAINER, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

#pragma config FEXTOSC = OFF                                 //Oscilador externo deshabilitado

#pragma config RSTOSC = HFINTOSC_64MHZ         //Frecuencia de 64MHz

#pragma config CLKOUTEN = OFF                              //Función CLOKOUTEN deshabilitada

#pragma config WDTE = OFF                                        //Deshabilitada WDT

#include <xc.h>

#include <stdint.h>

#define _XTAL_FREQ 64000000                                  //Define frecuencia de 64MHz

#define LED_High() LATAbits.LA1 = 1;                       //Define la función para encender el LED 

#define LED_Low() LATAbits.LA1 = 0;                      //Define la función para apagar el LED 

#define Boton PORTAbits.RA2                                       //Define en pin para en botón

char Caracter;                                                                    //Declaración de variable 

void SisInit(void) {                                                         

OSCCON1 = 0X60;                                                        //NOSC HFINTOSC; NDIV 1;

 OSCCON3 = 0X00;                                                        //CSWHOLD procede; OSCILADOR secundario opera en Low power

OSCEN = 0X00;                                                             //Activación manual de osciladores

 OSCFRQ = 0X08;                                                          //HFFRQ 64_MHz;

 OSCTUNE = 0X00;                                                       //TUN 0;

//CONFIGURAR ENTRADAS Y SALIDAS

 TRISAbits.TRISA1 = 0;                                                 //PIN como salida

 ANSELAbits.ANSELA1 = 0;                                        //PIN como digital

 TRISAbits.TRISA2 = 1;                                                 //PIN como entrada

 ANSELAbits.ANSELA2 = 0;                                        //PIN como digital

 TRISCbits.TRISC7 = 1;                                                 //PIN como entrada

 ANSELCbits.ANSELC7 = 0;                                        //PIN como digital

 TRISCbits.TRISC6 = 0;                                                 //PIN como salida

 ANSELCbits.ANSELC6 = 0;                                        //PIN como digital

 RC6PPS = 0x13;

 U1RXPPS = 0X17;

//CONFIGURA UART

U1P1L = 0x00;

U1P1H = 0x00;

U1P2L = 0x00;

U1P2H = 0x00;

U1P3L = 0x00;

U1P3H = 0x00;

U1CON0 = 0XB0;

U1CON1 = 0X80;

U1CON2 = 0X00;

U1BRGL = 0X82;

U1BRGH = 0X06;

U1FIFO = 0X00;

U1UIR = 0X00;

U1ERRIR = 0X00;

U1ERRIE = 0X00;

}

void UART1_put(uint8_t Dato) {

     while (0 == PIR3bits.U1TXIF);

     U1TXB = Dato;

}

 uint8_t UART1_get(void) {

          while (!PIR3bits.U1RXIF);

          return U1RXB;

}

void main(void) {

        SisInit();                                                          

        while (1) {

               Caracter = UART1_get();

               if (Caracter == '1') {

                        LED_High();                                //Enciende el LED 

            } else if (Caracter == '0') {

                        LED_Low();                                  //Apaga el LED 

            } else if (Caracter == '?') {

             if (Boton == 0) {

                      UART1_put('1');

             } else {

                     UART1_put('0');

               }

        }

    }

}

 


Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7 – PIC – PK3*

Descargar código en MPLAB X IDE de la práctica 7.

AVR
MikroC PRO
Atmel Studio 7
MikroC PRO
Programador XCU
Programador XCU

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-UNO o X-NANO. Desde una terminal serial que proporciona el software XIDE v1.0, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en los módulos X-UNO o X-NANO se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-UNO o X-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Módulo X-AVR. Comprar

1 x Módulo I/O's ADC. Comprar

1 x Juego de cables Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.


Software:

Windows 7 o posterior.

MikroC PRO for AVR. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-UNO o X-NANO y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, verifica en el apartado de librerías que este seleccionada la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for AVR.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-UNO
X-NANO
X-UNO

X-NANO

 

Código

Código

/**

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019
*/
/**************************************************************************

Implementar comunicación serial para enviar un comando simple para encender y

apagar un LED incluido en la tarjeta X-NANO, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Registros de configuración:

Project>Edit Project

CKDIV8 = NO SPIEN = SI

CKOUT = NO WDTON = NO

RSTDISBL = NO EESAVE = SI

DWEN = NO BOOTRST = NO

Brown - out detection level al VCC = 2.7 V

Boot Flash section size = 256 words...

Start - up time PWRDWN / RESET: 16K CK / 14 CK + 65 ms

Ext. Crystal Osc., Frequency > 8.0MHz, Show startup

Insertar 16.000000 en "MCU Clock Frequency [MHz]" box

En "Program Memory is used for": Application (Boot Flash Section is reserved)

**************************************************************************/

#define LED_ON PORTB |= (1<<PORTB5)

#define LED_OFF PORTB &= ~(1<<PORTB5)

#define BOTON PINB0_bit

void SisInit(void)

{                                          

         DDB5_bit = 1;                                 //B5 como salida

        DDB0_bit = 0;                                 //B0 como entrada

        PORTB0_bit = 1;                             //B0 con pull - up
}

void main()

{

        SisInit () ;

        UART1_Init (9600) ;

        while (1)

       {

            if (UART_Data_Ready () )

        {

                                                                                           //Pregunta si ha recibido algún dato

         char Caracter = UART_Read ();                                //Guarda el caracter

          if (Caracter == '0')

         {

             LED_OFF;                                                                  //Apaga el LED

          }

           else if (Caracter == '1')

          {

         LED_ON;                                                                      //Enciende el LED

         }

        else if (Caracter == '?')

       {

             if (BOTON)

             {

                                                                                                 //Pregunta el estado del botón

                         UART1_Write ('0');                                     //Envía un 0 si el botón no está presionado

                        } else {   

                             UART1_Write ('1');                                //Envía un 1 si el botón está presionado

                        }

                   }

              }

     }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

 

Práctica7-XCU-AVR

Descargar el código en mikroC PRO for AVR de la práctica 7.

 

Atmel Studio 7
Programador MKII LITE
Programador MKII LITE

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-UNO o X-NANO. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en los módulos X-UNO o X-NANO se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.


Materiales:

1 x Módulo X-UNOX-NANO. Comprar

1 x Módulo Programador MKII LITE. Comprar

1 x Módulo Programador XCU.  Comprar

1 x Módulo X-AVR. Comprar

1 x Módulo I/O's ADC. Comprar

1 x Juego de cables Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Atmel Studio 7. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-UNO o X-NANO y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, ejecuta Atmel Studio 7, pega el código en un nuevo proyecto y realiza la compilación. 

4. Programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás un manual para compilar y programar tu proyecto en Atmel Studio 7.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. Abre el Software XIDE v1.0, selecciona la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-UNO
X-NANO
X-UNO

X-NANO

 

Código 

Código

/**

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para encender y

apagar un LED incluido en la tarjeta X-NANO, y un segundo comando para

preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Fuses:

HIGH.BOOTRST : desmarcar

LOW.SUT_CKSEL : deleccionar> Ex.Crystal Osc.8.0- Mhz;Start-up time PWRDWN/RESET: 1K CK/14 CK + 65 ms

EXTXOSC_8MHZ_XX_1KCK_14CK_65MS

**************************************************************************/

#include <stdio.h>

#include <avr/io.h>

#define F_CPU 16000000

#include <util/delay.h>

#define USART_BAUDRATE 9600

#define UBRR_VALUE (((F_CPU / (USART_BAUDRATE *16UL))) - 1)

#define BOTON (PINB & (1<<PB0))

#define LED_HIGH (PORTB |=(1<<PORTB5))

#define LED_LOW (PORTB &= ~(1<<PORTB5))

char CaracterT,CaracterR;

void SisInit(void)

{                                                                                                                                         

    DDRB| = (1<<DDB5);                                                                                                       // DDB5 = salida

    DDRB& = ~ (1<<DDB0);                                                                                                  // DDB0 = entrada

    PORTB| = (1<<PORTB0);                                                                                                // pull - up activa para PB0

    MCUCR& = ~ (1<<PUD);                                                                                                  // se habilita el pullup

}

void USART0Init(void)

{

    UBRR0H = (uint8_t) (UBRR_VALUE>>8);                                                                      // baudios de retardo altos

    UBRR0L = (uint8_t) UBRR_VALUE;                                                                                // baudios de retardo bajos

    UCSR0C| = (1<<UCSZ01)| (1<<UCSZ00);                                                                    // establese un marco de 8 bits, no paridad

    UCSR0B| = (1<<RXEN0)| (1<<TXEN0);                                                                        //habilita la trasnmision y recepción

}

int USART_Trasmit(char u8Data)

{

    while ( ! (UCSR0A& (1<<UDRE0)));

    UDR0 = u8Data;                                                                                                              // transmite el dato

    return 0;

}

unsigned char UART_Receive(void)

{

    while ( ! (UCSR0A& (1<<RXC0)));                                                                                    //recibe el dato

    return UDR0;                                                                                                                      //retorna el dato

}

int main(void)

{

    USART0Init ();                                                                                                                         //inicializa USART0

    SisInit ();                                                                                                                                //inicializa SisInit

    while (1)

    {

        CaracterR = UART_Receive ();

        USART_Trasmit (CaracterT) ;

        if (CaracterR == '1')

        {

                LED_HIGH;                                                                                                                    //enciende el LED

        }

        else if (CaracterR == '0')

        {

              LED_LOW;                                                                                                                         //apaga el LED

        }

        else if (CaracterR == '?')

        {

                if (BOTON)

                {

                USART_Trasmit ('0');                                                                                                        //envía el dato "0"

                }

                else

                {

                        USART_Trasmit ('1');                                                                                                 //envía el dato "1"

                }

           }

      }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7-AVR-MKII

Descargar código en Atmel Studio 7 de la práctica 7.

ARDUINO

Descripción

En esta práctica se implementa una comunicación serial UART a 9600 baudios, usando los módulos X-UNO o X-MEGA o X-NANO. Desde una terminal serial que proporciona el software XIDE, se envían y reciben datos por medio del módulo XCU. Para encender el LED incluido en los módulos X-UNO, X-MEGA o X-NANO se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del botón BOOT, se envía el signo "?", si el botón está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-UNO o X-MEGA o X-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Módulo I/O's ADC. Comprar

1 x Juego de cables Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Arduino IDE. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. Realiza las conexiones que se muestran en la siguiente imagen para X-UNO o X-MEGA o X-NANO y conéctalo a la computadora

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el software Arduino IDE, pega el código en un nuevo proyecto, realiza la compilación. 

4. Programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás un manual para compilar y programar en Arduino IDE.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

6. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

7. En el Software XIDE, abre la herramienta de Terminal Serial para lograr la comunicación con el módulo y enviar los caracteres de esta práctica. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0.

 

Diagrama esquemático

 

X-UNO
X-MEGA
X-NANO
X-UNO

X-MEGA

X-NANO

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Implementar comunicación serial para enviar un comando simple para prender y apagar un LED incluido en la tarjeta X - UNO, X-MEGA o

X-NANO y un segundo comando para preguntar el estado de un botón.

**************************************************************************/

const int LED = 13; //Número del pin para LED

const int BOTON = 8; //Número del pin para BOTÓN

int EstadoBoton = 0; //Variable para guardar el estado

void setup()

{

        pinMode (BOTON, INPUT_PULLUP);                                              //Inicializa el PIN como entrada con pull - up

        pinMode (LED, OUTPUT);                                                                  //Inicializa el PIN como una salida digital

        Serial.begin (9600);                                                                              //Inicializa el puerto serie a 9600 baud

}

void loop()

{

              if (Serial.available () )                                                                   //Pregunta si ha recibido algún dato

             {

                            char Caracter = Serial.read ();                                     //Guarda el caracter

                     if (Caracter == '1')

                    {

                            digitalWrite (LED, HIGH);                                          //Enciende el LED

                     }

                  else if (Caracter == '0')

                   {

                            digitalWrite (LED, LOW);                                            //Apaga el LED

                      }

                  else if (Caracter == '?')

                       {

                                  EstadoBoton = digitalRead (BOTON);               //Leer estado del botón

                            if (EstadoBoton == HIGH)                                         //Pregunta el estado del botón

                               {     

                                                Serial.print ("0");                                      //Envía un 0 si el botón no está presionado

                                } else

                                     {

                                                            Serial.print ("1");                         //Envía un 1 si el botón está presionado

                                      }

                             }

                    }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 7-Arduino

Descarga código en Arduino de la práctica 7.

 

Fecha

julio 15, 2019

Categoría

Prácticas XIDE

× WhatsApp