1. CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3.5. Pasa Texto
Objetivos
1. Configurar el ATMEGA128 para controlar una matriz de LEDs.
3.5.1. Libreria
Descargar la librería MatrizLeds.h del Dropbox y copiarlo en la misma ruta donde
se encuentra el archivo main.c de nuestro proyecto.
La librería para el Pasa Texto posee 4 funciones operacionales:
1. initMatrixDot(), inicializa los puertos donde esta conectado J1 y J2 de la Matriz.
2. charactersMatrixDot(int ascii_number), muestra el caracter. (valor ASCII).
3. charactersMatrixDot_shift(int ascii_number), efecto de letra caída.
4. writeMsgMatrixDot(char msg[], int SIZE), muestra cada letra a la vez.
5. writeMsgMatrixDot_shift(char msg[], int SIZE), efecto de correr las letras.
3.5.2. Usos
charactersMatrixDot
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include "MatrizLeds.h"//Incluir la Libreria
int main(void){
initMatrixDot();//Inicializa Puertos
int ascii_number;//valor numerico ASCII
while(1){
for(ascii_number=0; ascii_number<128; ascii_number++)
charactersMatrixDot(ascii_number);//Muestra el Valor ASCII
}
}
Pedro Ramírez <pedroramirez22@gmail.com> 1
2. CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
charactersMatrixDot_shift
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include "MatrizLeds.h"//Incluir la Libreria
int main(void){
initMatrixDot();//Inicializa Puertos
int ascii_number;//valor numerico ASCII
while(1){
for(ascii_number=0; ascii_number<128; ascii_number++)
charactersMatrixDot_shift(ascii_number);//Muestra el Valor ASCII
}
}
writeMsgMatrixDot
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include "MatrizLeds.h"//Incluir la Libreria
int main(void){
initMatrixDot();//Inicializa Puertos
char msg[] = "Hola Caracola ";//Mensaje a visualizar
while(1){
writeMsgMatrixDot(msg, sizeof(msg));//Muestra la cadena de Texto
}
}
writeMsgMatrixDot_shift
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include "MatrizLeds.h"//Incluir la Libreria
Pedro Ramírez <pedroramirez22@gmail.com> 2
3. CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
int main(void){
initMatrixDot();//Inicializa Puertos
char msg[] = " Linea 52-Petropar-3300Gs ";//Poner espacio al inicio
while(1){
writeMsgMatrixDot_shift(msg, sizeof(msg));
}
}
Observación:
1. Recuerde que al inicializar una cadena de texto se agrega automáticamente el ca-
racter nulo "0", el operador sizeof lo cuenta como un caracter más.
2. Al utilizar la función writeMsgMatrixDot se debe agregar espacio al final de la
cadena de texto para que el efecto sea mejor.
3. Al utilizar la función writeMsgMatrixDot_shift se deben agregar espacios al inicio
y al final de la cadena de texto para que el efecto sea mejor.
3.5.3. Práctica
1. Realizar un contador descendente 9-0 y visualizarlo en la Matriz de LEDs.
(charactersMatrixDot)
2. Realizar un código que muestre el abecedario en la Matriz de LEDs(en mayúsculas).
(charactersMatrixDot)
3. Realizar un código que muestre todos los caracteres, excepto los números y letras.
(charactersMatrixDot)
4. Realizar un código que muestre Hola soy un Mario. (writeMsgMatrixDot)
5. Realizar un código que muestre Linea 12-1 Abasto-Terminal-Mercado 4.
(writeMsgMatrixDot_shift)
6. Realizar un código que muestre Linea 12-1 Abasto-Terminal-Mercado 4 con
efecto en la L. (charactersMatrixDot_shift - writeMsgMatrixDot_shift)
3.5.4. Preguntas
1. Para que sirve la función sizeof?
2. Para que sirve el caracter nulo "0"dentro de una cadena de texto?.
3. Qué se debe modificar si se quiere hacer la transición de letras sea mas rápida.
3.5.5. Conclusión
Pedro Ramírez <pedroramirez22@gmail.com> 3