Librería VFD con CCS y PIC 18F

Las VFD (Vacuum Fluorescent Display) son unos dispositivos de visualización de información muy llamativos debido a su alta luminosidad, muy habituales en todo tipo de aparatos electrónicos y máquinas tragaperras. Con esta librería podremos usarlos fácilmente con un PIC 18F.


El display VFD que utilizaremos es un Samsung 16LF01UA3, cuya datasheet está disponible para descargar en la zona de Descargas. Dicho VFD se controla mediante SPI y sólo tres señales del PIC: /RST, SCLK y DATA.

Dispone de 16 caracteres alfanuméricos de 16 segmentos + punto + coma en cada uno de ellos:

Cada carácter posee una dirección de memoria equivalente a: 0b1010xxxx

Otro de los comandos disponibles nos permite controlar el brillo del VFD en 32 grados diferentes. Ese comando es: 0b111xxxxx

El juego de caracteres del que dispone es el siguiente:

 

La librería en CCS nos permite controlar el VFD mediante estas funciones:

void VFD_inicializacion(); // poner al principio del programa

void VFD_brillo(int8 ValorBrillo); // de 0 a 31

void VFD_posicion(int8 dato); // de 0 a 15

void VFD_char(char dato); // imprime un carácter

 

Y por supuesto, siempre podemos utilizar toda la potencia del printf:

printf (VFD_char, » www.micropic.es «);

 

A continuación, vamos a ver un ejemplo del resultado con el siguiente vídeo:

 

Para este ejemplo hemos utilizado la librería y el siguiente código fuente:

void main()

setup_oscillator(OSC_8MHZ );
set_tris_d(0);
set_tris_c(0);

delay_ms(100);

VFD_inicializacion();
delay_ms(500);

VFD_brillo(31);
VFD_posicion(0);

for (i=0;i<16;i++) {
printf (VFD_char,"%c",frase[i]);
delay_ms(300);
}
for (k=1;k<31;k++) {
for (i=0;i<16;i++)
printf (VFD_char,"%c",frase[i+k]);
delay_ms(300);
}
delay_ms(1000);
printf (VFD_char, " <a>www.micropic.es</a> ");
while (1) {
for (i=31;i>0;i--) {
VFD_brillo(i);
delay_ms(40);
}
for (i=0;i<32;i++) {
VFD_brillo(i);
delay_ms(40);
}
};
}

Tanto la librería como el Datasheet del VFD pueden descargarse aquí

Share