Práctica 2 – Push Button

 

INTRODUCCIÓN

 

En esta práctica se configura una salida y entrada digital en el microcontrolador para controlar el encendido y apagado de un LED a través de un push button, el LED se ilumina si el push button es presionado, de lo contrario se encuentra apagado.

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
AVR
PIC
PIC C Compiler
PIC C Compiler
Bootloader X-TRAINER
Bootloader X-TRAINER

Descripción

En esta práctica se utiliza el LED que se encuentra conectado al pin A1 de los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o con el PIC18F25K50. El pin A1 es configurado como salida y señal digital, y el pin A2 de dicho módulo, es configurado como una entrada y señal digital para saber el estado del botón BOOT; por lo que el estado del LED cambiará a encendido cuando se presione el botón.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28. 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. 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.

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 y realiza la compilación. 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á.

 

Diagrama esquemático

 

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

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 el control de encendido y apagado de un LED mediante

 un botón pulsador.

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

#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

#define LED PIN_A1                                                //Asigna el pin A1 al LED del X-TRAINER

#define BOTON PIN_A2                                          //Asigna el pin A2 al boton BOOT del X-TRAINER

void SisInit (void)

 {

     set_tris_a (0b11111101);                                         //Pin A1 como salida

 }

void main (void)

 {

   SisInit ();

   while (1)                                                                 //Ciclo repetitivo

   {

    if (0 == input (BOTON))                                          //Lee el estado del boton 0 = boton presionado

      {

       output_high (LED);                                                //Si se presiona el boton enciende el LED

      }

     else

     {

      output_low (LED);                                                //De lo contrario el LED se apaga

     }

   }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 2 – PIC – Bootloader-PIC C Compiler

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

AVR
Atmel Studio 7
Atmel Studio 7
Programador XCU
Programador XCU

Descripción

En esta práctica se utiliza el LED que se encuentra conectado al pin B5 de los módulos X-UNO o X-NANO, el cual es configurado como salida digital. También es necesario conectar un botón al pin B0, éste será configurado como entrada digital y pull-up; por lo que el estado del LED cambiará a encendido cuando se presione el botón.


Materiales:

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

1 x Módulo programador XCU. Comprar

1 x Módulo X-AVR. Comprar

1 x Push Button. 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

 

Procedimiento

1. 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.

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 tu proyecto en Atmel Studio 7. En el siguiente link encontrarás un manual de Atmel Studio para programador XCU.

5. Al terminar de programar, el programa de esta práctica se ejecutará.

 

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 el control de encendido y apagado de un LED mediante

un botón pulsador.

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

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

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

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

#define F_CPU 16000000

#include <util/delay.h>                                                                      //Librería de retardo

#include <avr/io.h>                                                                            //Para programar AVRs

#define Boton (PINB & (1<<PB0))                                                     //Define el botón

#define LED_HIGH (PORTB |=(1<<PORTB5))                                  //Enciende LED

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

 

void SisInit(void)                                                                                //Función para inicializar el PIC
{
       DDRB| = (1<<DDB5);                                                                 // DDB5 = salida
       DDRB& = ~ (1<<DDB0);                                                           // DDD1 = entrada
       PORTB| = (1<<PORTB0);                                                         // Pull-up activa para PB0
       MCUCR& = ~ (1<<PUD);                                                          // Se habilita el pull-up
}

int main(void)
{
     SisInit ();                                                                                      //Se llama a la función para inicializar el PIC

     while (1)
    {
            if (!Boton)                                                                                //Pregunta por el estado del botón
            {
                 LED_HIGH;                                                                       //Enciende LED
            }

            else
            {
                 LED_LOW;                                                                           //Apaga LED
            }
         }
    }

 

Descargas

Práctica 2-AVR-XCU

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

 

 

Fecha

julio 10, 2019

Categoría

Prácticas CCS-AS7

EnglishSpanish