0% encontró este documento útil (0 votos)
25 vistas3 páginas

Código para Matriz LED 8x8 en C

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas3 páginas

Código para Matriz LED 8x8 en C

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

OSCAR ADRIAN MEDINA DURAN

#include <avr/io.h> const uint8_t letraD[8] = {

#include <util/delay.h> 0b11111110,

0b10000001,

// Definición de pines para la matriz LED 0b10000001,

#define COL1_PIN PD0 0b10000001,

#define COL2_PIN PD1 0b10000001,

#define COL3_PIN PD2 0b10000001,

#define COL4_PIN PD3 0b10000001,

#define COL5_PIN PD4 0b11111110

#define COL6_PIN PD5 };

#define COL7_PIN PD6

#define COL8_PIN PD7 const uint8_t letraR[8] = {

0b11111110,

#define ROW1_PIN PB0 0b10000001,

#define ROW2_PIN PB1 0b10000001,

#define ROW3_PIN PB2 0b11111110,

#define ROW4_PIN PB3 0b10001000,

#define ROW5_PIN PB4 0b10000100,

#define ROW6_PIN PB5 0b10000010,

#define ROW7_PIN PB6 0b00000000

#define ROW8_PIN PB7 };

// Definición de los patrones de cada letra para una matriz const uint8_t letraI[8] = {
LED 8x8
0b11111111,
const uint8_t letraA[8] = {
0b00011000,
0b01111110,
0b00011000,
0b10000001,
0b00011000,
0b10000001,
0b00011000,
0b10000001,
0b00011000,
0b11111111,
0b00011000,
0b10000001,
0b11111111
0b10000001,
};
0b10000001

};
const uint8_t letraN[8] = {
0b10000001, // Pequeño retraso para asegurar que se vea la fila

0b11000001, _delay_ms(2);

0b10100001, }

0b10010001, }

0b10001001, // Desactivar todas las filas (para evitar ghosting)

0b10000101, PORTB = 0xFF; // Todas las filas apagadas

0b10000011, PORTD = 0x00; // Todos los pines de datos apagados

0b10000001 }

};

int main(void) {

// Arreglo que contiene las letras del nombre "Adrian" // Configuración de pines de salida para las filas de la
matriz LED
const uint8_t *letras[] = {letraA, letraD, letraR, letraI, letraA,
letraN}; DDRB = 0xFF; // Todas las filas como salida

const int numLetras = sizeof(letras) / sizeof(letras[0]); // PORTB = 0xFF; // Todas las filas apagadas inicialmente
Número total de letras

// Configuración de pines de datos para la matriz LED


// Función para mostrar una letra en la matriz LED (PD0-PD7)

void mostrarLetra(const uint8_t *letra) { DDRD = 0xFF; // Todos los pines de datos como salida

// Repetir la visualización de cada letra varias veces para PORTD = 0x00; // Todos los pines de datos apagados
mayor visibilidad inicialmente

for (int repeat = 0; repeat < 50; repeat++) { // Ajusta este


valor para cambiar la duración de cada letra
// Bucle principal
// Recorrer cada fila de la matriz LED (8 filas)
while (1) {
for (int row = 0; row < 8; row++) {
// Mostrar cada letra del nombre "Adrian"
// Desactivar todas las filas antes de activar la
siguiente para evitar ghosting for (int i = 0; i < numLetras; i++) {

PORTB = 0xFF; // Apagar todas las filas mostrarLetra(letras[i]);

_delay_ms(1000); // Retraso entre letras

// Activar la fila correspondiente }

PORTB = ~(1 << row); // Activar la fila row }

// Mostrar los bits de la fila actual return 0;

PORTD = letra[row]; // Enviar los datos de la fila a los }


pines correspondientes

También podría gustarte