La pantalla es una parte muy importante de cualquier aplicación de sistema integrado, ya que ayuda a los usuarios a conocer el estado del sistema y también muestra la salida o cualquier mensaje de advertencia generado por el sistema. Hay muchos tipos de pantallas que se utilizan en la electrónica, como la pantalla de 7 segmentos, la pantalla LCD, la pantalla táctil TFT, la pantalla LED, etc.
Ya hicimos una interfaz de LCD 16x2 con ARM7-LPC2148 en nuestro tutorial anterior. Hoy, en este tutorial, conectaremos una pantalla de 7 segmentos con ARM7-LPC2148. Antes de entrar en detalles, veremos cómo controlar el módulo de 7 segmentos para mostrar cualquier número de carácter.
Pantalla de 7 segmentos
Las pantallas de 7 segmentos se encuentran entre las unidades de pantalla más simples para mostrar los números y caracteres. Generalmente se usa para mostrar números y tiene una iluminación más brillante y una construcción más simple que la pantalla de matriz de puntos. Y debido a la iluminación más brillante, la salida se puede ver desde una distancia mayor que la pantalla LCD. Como se muestra en la imagen anterior de una pantalla de 7 segmentos, consta de 8 LED, cada LED se usa para iluminar un segmento de la unidad y el octavo LED se usa para iluminar el DOT en la pantalla de 7 segmentos. 8thLED se utiliza cuando se utilizan dos o más módulos de 7 segmentos, por ejemplo, para mostrar (0,1). Se utiliza un solo módulo para mostrar un solo dígito o carácter. Para mostrar más de un dígito o carácter, se utilizan múltiples segmentos de 7.
Pines de pantalla de 7 segmentos
Hay 10 pines, en los que 8 pines se utilizan para referirse a a, b, c, d, e, f, gyh / dp, los dos pines del medio son ánodo / cátodo común de todos los LED. Estos ánodo / cátodo comunes tienen un cortocircuito interno, por lo que necesitamos conectar solo un pin COM
Dependiendo de la conexión, clasificamos 7 segmentos en dos tipos:
Cátodo común
En este, todos los terminales negativos (cátodo) de los 8 LED están conectados entre sí (consulte el diagrama a continuación), denominados COM. Y todos los terminales positivos se dejan solos o se conectan a los pines del microcontrolador. Si usamos microcontrolador configuramos lógica ALTA para iluminar el particular y configuramos BAJA para apagar el LED.
Ánodo común
En este, todos los terminales positivos (ánodos) de los 8 LED están conectados entre sí, denominados COM. Y todas las térmicas negativas se dejan solas o se conectan a los pines del microcontrolador. Si usamos microcontrolador configuramos la lógica BAJA para iluminar el particular y la lógica Alta para apagar el LED.
Entonces, dependiendo del valor del pin, un segmento particular o línea de 7 segmentos se puede encender o apagar para mostrar el número o el alfabeto deseado. Por ejemplo, para mostrar 0 dígitos, debemos configurar los pines ABCDEF como ALTO y solo G como BAJO. Como los LED ABCDEF están encendidos y G está apagado, esto forma el dígito 0 en el módulo de 7 segmentos. (Esto es para cátodo común, para ánodo común es opuesto).
La siguiente tabla muestra los valores HEX y el dígito correspondiente según los pines LPC2148 para una configuración de cátodo común.
Dígito |
Valores HEX para LPC2148 |
UN |
segundo |
C |
re |
mi |
F |
GRAMO |
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
8 |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
IMPORTANTE: En la tabla anterior he dado los valores HEX de acuerdo con los pines que he usado en LPC2148, verifique el diagrama de circuito a continuación. Puede usar los pines que desee, pero cambie los valores hexadecimales de acuerdo con eso.
Para obtener más información sobre la pantalla de 7 segmentos, vaya a través del enlace. Compruebe también las interfaces de pantalla de 7 segmentos con otros microcontroladores:
- Interfaz de pantalla de 7 segmentos con Raspberry Pi
- Interfaz de pantalla de 7 segmentos con microcontrolador PIC
- Interfaz de pantalla de 7 segmentos con Arduino
- Interfaz de pantalla de 7 segmentos con microcontrolador 8051
- Contador 0-99 con microcontrolador AVR
Materiales necesarios
Hardware
- ARM7-LPC2148
- Módulo de pantalla de siete segmentos (un solo dígito)
- Tablero de circuitos
- Conexión de cables
Software
- Keil uVision5
- Magia de destello
Diagrama de circuito
Para la interfaz de 7 segmentos con LPC2148, no se necesita ningún componente externo como se muestra en el diagrama de circuito a continuación:
La siguiente tabla muestra las conexiones del circuito entre el módulo de 7 segmentos y el LPC2148
Pasadores del módulo de siete segmentos |
Pines LPC2148 |
UN |
P0.0 |
segundo |
P0.1 |
C |
P0.4 |
re |
P0.5 |
mi |
P0.6 |
F |
P0.7 |
GRAMO |
P0.8 |
Común |
GND |
Programación ARM7 LPC2148
Hemos aprendido a programar ARM7-LPC2148 usando Keil en nuestro tutorial anterior. Usamos el mismo Keil uVision 5 aquí para escribir el código y crear un archivo hexadecimal, y luego cargar el archivo hexadecimal en LPC2148 usando la herramienta mágica flash. Estamos usando un cable USB para alimentar y cargar el código a LPC2148
El código completo con una explicación en video se proporciona al final de este tutorial. Aquí explicamos algunas partes importantes del código.
Primero necesitamos incluir el archivo de encabezado para el microcontrolador de la serie LPC214x
#incluir
A continuación, configure los pines como salida
IO0DIR = IO0DIR-0xffffffff
Esto establece los pines P0.0 a P0.31 como salida pero usaremos pines (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 y P0.8) solamente.
Luego, establezca ciertos pines en LÓGICA ALTA o BAJA según el dígito numérico que se mostrará. Aquí mostraremos valores de (0 a 9). Usaremos una matriz que consta de valores HEX para valores de 0 a 9.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Los valores se mostrarán continuamente a medida que el código ha sido puesto en tiempo de bucle
while (1) { para (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // establece el retardo ALTO de los pines correspondientes (9000); // Llamada a la función de retardo IO0CLR = IO0CLR-a; // Establece los pines correspondientes BAJO } }
Aquí, IOSET e IOCLR se utilizan para configurar los pines HIGH y LOW respectivamente. Como hemos utilizado pines PORT0, tenemos IO0SET y IO0CLR .
El bucle for se usa para incrementar la i en cada iteración y cada vez que i aumenta, el segmento 7 también incrementa el dígito que se muestra en él.
La función de retardo se utiliza para generar un tiempo de retardo entre SET y CLR
void delay (int k) // Función para hacer delay { int i, j; para (i = 0; i
A continuación se proporciona el código completo y la descripción del video de trabajo. Consulte también aquí todos los proyectos relacionados con la pantalla de 7 segmentos.