Está en la página 1de 11

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA

Laboratorio de Electrónica Digital 3


Docente: Dr. Héctor Gilberto Barrón González

Práctica 2: Contador Binario

Nombre: Alejandra Marisol Martinez Cruz Matricula: 2082339

Hora: V1 Salón: LED 1


Brigada: 305 Plan: 401

23 de febrero de 2024, San Nicolás de los Garza, Nuevo León, México.


Índice
Índice...................................................................................................................................... 2
Practica 2.- Contador Binario ............................................................................................. 3
Descripción del Problema ................................................................................................... 3
Objetivo.................................................................................................................................. 3
Lista de Material ................................................................................................................... 3
Diagrama de Flujo del Algoritmo ....................................................................................... 4
Evidencia Gráfica ................................................................................................................. 5
Diagrama ............................................................................................................................... 5
Codigo.................................................................................................................................... 7
Conclusiones ......................................................................................................................11
Bibliografía ..........................................................................................................................11
Practica 2.- Contador Binario

Descripción del Problema

Se le ha provisto con un código que envía el valor FF a el puerto D y termina. Es


necesario transformar este código en un contador binario ascendente. Para
resolverlo es necesario agregar una instrucción que sume un 1 en cada iteración al
valor anterior, también es necesario generar un bucle que encierre esta operación
y por ultimo no olvide inicializar el contador a 00.

Objetivo
 Desarrollar un Codigo que habilite al puerto al puerto D como salidas.
 Comprender la función los comando utilizados
 Obtener un aprendizaje de como un programa sencillo puede ser utilizado
para otras funciones, como por ejemplo controlar dispositivos, controlar la
secuencia de operaciones.

Lista de Material

 8 leds de un solo color o 1 barra de leds con la misma cantidad de elementos.


Diagrama de Flujo del Algoritmo
Evidencia Gráfica
Diagrama

Codigo
/*
* GccApplication5.c
*
* Created: 20/02/2024 11:12:40 p. m.
* Author : Alejandra Marisol Martinez Cruz
*/

#include <avr/io.h>
#define F_CPU 16000000
#include "util/delay.h"
#include <avr/sfr_defs.h>

int main(void)
{
DDRD = 0b11111111;
PORTD = 0b00000000;
unsigned int contador = 0x00;

while(1)
{

if(contador >= 0xFF)


{

PORTD = contador;
_delay_ms(50);
contador = 0x00;
}
else
{

PORTD = contador;
contador += 1;
_delay_ms(10);

}
}
}

/*
* GccApplication6.c
*
* Created: 21/02/2024 12:07:32 a. m.
* Author : Alejandra Marisol Martinez Cruz
*/

#include <avr/io.h>
#define F_CPU 16000000
#include "util/delay.h"
#include <avr/sfr_defs.h>

int main(void)
{
DDRD = 0b11111111;
PORTD = 0b00000000;

DDRB = 0b00000000;
PORTB = 0b11111111;

DDRC = 0b00000000;
PORTC = 0b11111111;

unsigned int contador = 0x00;

while(1)
{
if(bit_is_set(PINB,PINB0))
{
if(contador >= 0xFF)
{

PORTD = contador;
_delay_ms(250);
contador = 0x00;

}
else
{

PORTD = contador;
contador += 1;
_delay_ms(250);
}
}

else
{
if (bit_is_set(PINB,PINB1))
{
PORTD |= (1<<PORTD0);

}
else
{
PORTD &=~ (1<<PORTD0);
}

_delay_ms(1);

if (bit_is_set(PINB,PINB2))
{
PORTD |= (1<<PORTD1);
}
else
{
PORTD &=~ (1<<PORTD1);
}

_delay_ms(1);

if (bit_is_set(PINB,PINB3))
{
PORTD |= (1<<PORTD2);
}
else
{
PORTD &=~ (1<<PORTD2);
}

_delay_ms(1);

if (bit_is_set(PINB,PINB4))
{
PORTD |= (1<<PORTD3);
}
else
{
PORTD &=~ (1<<PORTD3);
}

_delay_ms(1);

if (bit_is_set(PINC,PINC0))
{
PORTD |= (1<<PORTD4);
}
else
{
PORTD &=~ (1<<PORTD4);
}

_delay_ms(1);

if (bit_is_set(PINC,PINC1))
{
PORTD |= (1<<PORTD5);
}
else
{
PORTD &=~ (1<<PORTD5);
}

_delay_ms(1);

if (bit_is_set(PINC,PINC2))
{
PORTD |= (1<<PORTD6);
}
else
{
PORTD &=~ (1<<PORTD6);
}

_delay_ms(1);

if (bit_is_set(PINC,PINC3))
{
PORTD |= (1<<PORTD7);
}
else
{
PORTD &=~ (1<<PORTD7);
}

_delay_ms(1);
}
}
}
Descripción
Con el comando DDR el bit 1 es configurado como salida y el bit 0 como entrada,
con el comando PORT se configura el estrado inicial en la salida y en la entrada;
cuando el PORTD está como entrada el 1 quiere decir que es tierra y el 0 a voltaje.
Con el comando if comprobamos el estado del pin de entrada con el comando
bit_is_set_ cuando hay un valor en la entrada igual a 1 ejecutamos en el puerto de
salida, un cambio a 1 en el puerto de salida seleccionado, si el valor del pin de
entrada es igual a 0 negamos el bit del pin seleccionado. Cuando el enunciado del
if es verdadero significa que el contador a llegado al número máximo de muestreo
por lo que agrega ese valor al puerto D y después de la pausa borra su contenido.
Cuando es falso se suma uno a la variable del contador.
Conclusiones
Con el código implementado se generó un contador, en el programa se agregó el
programa de entradas y salidas y con el botón que se agregó en el protoboard al
dejarlo presionado podemos ver el contador. El contador binario que realizamos
puede ser utilizado comúnmente como secuenciadores en sistemas digitales.
Pueden generar secuencias ordenadas de números binarios que se utilizan para
controlar eventos o procesos en un orden específico.

Bibliografía
Manual del microcontrolador ATMEGA328P
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-
Microcontrollers-ATmega328P_Datasheet.pdf

Descargar archivo HEX en arduino


https://www.youtube.com/watch?v=NUfWmc9Q23g

Configuración de entradas y salidas


https://www.youtube.com/watch?v=1WdtQHyoT3A

También podría gustarte