Práctica 4 – Contador binario

 

INTRODUCCIÓN

 

En esta práctica se configura entradas y salidas digitales del microcontrolador para implementar un contador binario que incrementa cada vez que se presiona un push button, el conteo se despliega a través de LEDs.

 

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 implementa un contador binario usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o con el PIC18F25K22. El contador se incrementa cada vez que se presiona un botón conectado al pin A2, configurado como entrada digital. Para visualizar el valor del contador se utilizan 8 LEDs.

 

Materiales:

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

8 x Resistencias 220 ohms. Comprar

8 x LEDs. 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. 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 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8 LITE

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 un contador binario que incrementará cada vez que se presione un botón,

 este será configurado como entrada digital. Para visualizar el conteo se utilizan 8 LEDs.

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

#include <18F45K50.h>                                            //Para X-TRAINERp8DIP28 cambiar por: #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 Boton PIN_A2                                              //Asigna el pin A2 al boton BOOT del X-TRAINER

 

byte cont =0;

 

void SisInit (void)

  {

 

    set_tris_b (0b00000000);                                      //Configura todo el puerto B como salida

    set_tris_a (0b11111111);                                       //Configura todo el puerto A como entrada

  }

 

void main(void)

  {

   SisInit ();

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

    {

     if (!input (Boton))                                               //Pregunta el estado del boton mediante una comparación

      {

        cont++;                                                           //Se incrementa el contador

        output_b (cont);                                             //Se asigna el valor de cont al puerto B y se despliega el valor

        Delay_ms (5);                                                //Retardo

        while (!input (Boton));                                    //Mientras el botón se mantenga igual a cero

        Delay_ms (5);                                                //Retardo

     }

   }

}

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

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

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

AVR
Atmel Studio 7
Atmel Studio 7
Programador XCU
Programador XCU

Descripción

En esta práctica se implementa un contador binario usando los módulos X-UNO o X-NANO. El contador se incrementa cada vez que se presiona un botón conectado al pin B0, configurado como entrada digital y pull-up. Para visualizar el valor del contador se utilizan 8 LEDs.


Materiales:

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

1 x Módulo programador XCU. Comprar

1 x Módulo X-AVR. Comprar

8 x Resistencias 220 ohms.Comprar

8 x LEDs. 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 un contador binario que incrementará cada vez que se presione un botón,

este será configurado como entrada digital. Para visualizar el conteo se utilizan 8 LEDs.

 

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

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

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>                                                                                //Libreria de retardo

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

#define Boton (PINB & (1<<PB0))                                                           //Pin del botón

char cont=0;

void SisInit(void)
{
                                                                                    
      DDRD = 0xFF;                                                                                          //Puerto D como salida
      DDRB& = ~ (1<<DDB0);                                                                         // DDB0 = 0 = entrada
      PORTB| = (1<<PORTB0);                                                                       // pull – up activa para PB0
      MCUCR& = ~ (1<<PUD);                                                                        // se habilita el pullup
}

int main(void)
{
     SisInit ();                                                                                                       
     PORTD = 0x00;                                                                                           //Valor inicial del puerto
     while (1)
     {
         if (!Boton)
        {
                                                                                                                                //Pregunta el estado del botón
                  cont++;
                 PORTD = cont;                                                                                   //Despliega el valor a PORTD
                 _delay_ms (5);                                                                                   //Retardo
                 while (!Boton);                                                                                  //Pregunta el estado del botón
                _delay_ms (5);                                                                                   //Retardo
          }
      }
 }

 

Descargas

Práctica 4- AVR-XCU

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

 

Fecha

julio 12, 2019

Categoría

Prácticas CCS-AS7

EnglishSpanish