El display dispone de 7 leds para los segmentos a, b, c, d, e, f, g tal como se muestra en la figura anterior.Además se dispone de un octavo led para el punto. La configuración de pines se indica también en la figura. Existen dos pines para el cátodo común que debe conectarse a GND (tierra).
El objetivo del presente proyecto es visualizar en el display los números del 0 al 9, y las letras A,B,C.D,E,F,
del sistema numérico Hexadecimal.
El punto solo enciende con las letras.El objetivo del presente proyecto es visualizar en el display los números del 0 al 9, y las letras A,B,C.D,E,F,
del sistema numérico Hexadecimal.
En los almacenes especializados venden cables de colores, muy útiles para llevar un orden y no confundirnos al conectar el display a los pines de la GAL:
Nosotros conectamos cada segmento con un cable de color específico tal como se muestra en el siguiente esquema, disponiendo de una resistencia de 220 ohmios, 1/4 watio, en serie con cada diodo led, para limitar la corriente en cada led, protegiendo la GAL y el Display:
Para programar la GAL trabajamos con el ISPlever de Lattice Semiconductor usando la opción ABEL_HDL:
Veamos el archivo creado en lenguaje ABEL:
MODULE D0F
TITLE 'display del 0 hasta la F'
Clock pin 1;"Se declara el pin 1 como la entrada del reloj
a,b,c,d,e,f,g,p pin 23,22,21,20,19,18,17,16 ISTYPE 'reg,buffer';"Se declaran los pines de salida modo registro (Flip-flops)
Equations
[a,b,c,d,e,f,g,p].CLK = Clock ;"Se indica que los 8 flip-flops trabajan con el mismo reloj
"NOTA: Los flip-flops,por defecto,inician con salida en nivel bajo (todos los segmentos apagados en display de cátodo común)
Truth_Table ([a,b,c,d,e,f,g,p] :> [a,b,c,d,e,f,g,p]) "Se señala la tabla de estado
[0,0,0,0,0,0,0,0] :> [1,1,1,1,1,1,0,0]; "Al llegar el flanco de subida del reloj se visualiza el CERO
[1,1,1,1,1,1,0,0] :> [0,1,1,0,0,0,0,0]; "Cambia del CERO al UNO
[0,1,1,0,0,0,0,0] :> [1,1,0,1,1,0,1,0]; "Cambia del UNO al DOS
[0,1,1,0,0,0,0,0] :> [1,1,1,1,0,0,1,0]; "Cambia del DOS al TRES
[1,1,1,1,0,0,1,0] :> [0,1,1,0,0,1,1,0]; "Cambia del TRES al CUATRO
[0,1,1,0,0,1,1,0] :> [1,0,1,1,0,1,1,0]; "Cambia del CUATRO al CINCO
[1,0,1,1,0,1,1,0] :> [0,0,1,1,1,1,1,0]; "Cambia del CINCO al SEIS
[0,0,1,1,1,1,1,0] :> [1,1,1,0,0,0,0,0]; "Cambia del SEIS al SIETE
[1,1,1,0,0,0,0,0] :> [1,1,1,1,1,1,1,0]; "Cambia del SIETE al OCHO
[1,1,1,1,1,1,1,0] :> [1,1,1,0,0,1,1,0]; "Cambia del OCHO al NUEVE
[1,1,1,0,0,1,1,0] :> [1,1,1,0,1,1,1,1]; "Cambia del NUEVE a la A (Mayúscula) y enciende el punto
[1,1,1,0,1,1,1,1] :> [0,0,1,1,1,1,1,1]; "Cambia de la A a la b (Minúscula) y enciende el punto
[0,0,1,1,1,1,1,1] :> [1,0,0,1,1,1,0,1]; "Cambia de la b a la C y sigue encendido el punto
[1,0,0,1,1,1,0,1] :> [0,1,1,1,1,0,1,1]; "Cambia de la C a la d y sigue encendido el punto
[0,1,1,1,1,0,1,1] :> [1,0,0,1,1,1,1,1]; "Cambia de la d a la E y sigue encendido el punto
[1,0,0,1,1,1,1,1] :> [1,0,0,0,1,1,1,1]; "Cambia de la E a la F y sigue encendido el punto
[1,0,0,0,1,1,1,1] :> [1,1,1,1,1,1,0,0]; "Retorna de la F al CERO, apagándose el punto
END
Compilamos, y efectuamos la simulación:
Creamos el CHIP REPORT y el archivo JEDEC para programar la GAL:
Muy bueno Ing. Excellent
ResponderEliminar