Las pantallas de siete segmentos son unidades de visualización importantes en electrónica y se utilizan ampliamente para mostrar números del 0 al 9. También puede mostrar algunos alfabetos de caracteres como A, B, C, H, F, E, etc. En este tutorial, vamos a aprender cómo conectar una pantalla de 7 segmentos con el microcontrolador 8051. Estamos utilizando el microcontrolador AT89S52 de la serie 8051.
Antes de la interfaz, debemos aprender sobre la pantalla de 7 segmentos. Es la unidad más sencilla para mostrar números y caracteres. Simplemente consiste 8 LED, cada LED utiliza para iluminar un segmento de unidad y el 8 º LED utiliza para iluminar DOT en Display de 7 segmentos. Podemos referirnos a cada segmento como una LÍNEA, ya que podemos ver que hay 7 líneas en la unidad, que se utilizan para mostrar un número / carácter. Podemos hacer referencia a cada línea / segmento "a, b, c, d, e, f, g" y para el carácter de punto usaremos "h". Hay 10 pines, en los cuales 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.
Hay dos tipos de pantallas de 7 segmentos: ánodo común y cátodo común:
Ánodo 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 quedan solos.
Cátodo 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 quedan solas.
Diagrama de circuito y expansión de trabajo
Aquí estamos usando el tipo de ánodo común de 7 segmentos porque necesitamos conectar los LED al revés. Como sabemos, el microcontrolador no proporciona suficiente energía para iluminar el LED, por lo que debemos conectar el cátodo del LED al pin del microcontrolador y el ánodo del LED a la fuente de alimentación. Puede comprender este concepto de lógica negativa en este artículo "Interfaz de LED con el microcontrolador 8051". También debe leer este artículo para comprender la conexión básica de un microcontrolador como el cristal y los circuitos de reinicio.
Como se muestra arriba, el diagrama de circuito para interconectar la pantalla de 7 segmentos con el microcontrolador 8051, hemos conectado a, b, c, d, e, f, g, h a los pines 2.0 a 2.7 significa que estamos conectando 7 segmentos al puerto 2 del microcontrolador. Ahora suponga que queremos mostrar 0, luego necesitamos iluminar todos los LED excepto el LED que pertenece a la línea "g" (vea el diagrama de arriba), por lo que los pines 2.0 a 2.6 deben estar en 0 (debe ser 0 para ENCENDER el LED como por lógica negativa) y los pines 2.7 y 2.8 deben estar en 1 (debe ser 1 para APAGAR el LED según la lógica negativa). Entonces los LED conectados a los pines 2.0 a 2.6 (a, b, c, d, e, f) estarán encendidos y los LED conectados a 2.7 y 2.8 (gyh) estarán APAGADOS, lo que creará un "0" en 7 segmento. Por lo tanto, necesitamos el patrón de bits 11000000 (el pin 8 es el bit más alto, por lo tanto, comenzando desde P2.7 a P2.0), y el código HEX para el binario 11000000 es “C0”. Del mismo modo, podemos calcular todos los dígitos. Aquí debemos tener en cuenta que mantenemos "punto / h" siempre APAGADO,así que tenemos que darle LOGIC “1” cada vez. A continuación se proporciona una tabla para todos los números mientras se usa el segmento Common Anode 7.
Dígito para mostrar |
hgfedcba |
Código hexadecimal |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Explicación del código
Hemos creado la función ms_delay para proporcionar el retraso en milisegundos, este retraso generalmente se proporciona en cualquier programa de microcontrolador para que el microcontrolador pueda completar su operación interna.
Luego, hemos creado una matriz de códigos hexadecimales de 0 a 9 (consulte la tabla anterior) y, finalmente, hemos enviado los códigos hexadecimales al puerto 2, que está conectado al segmento común del ánodo 7. De esta manera, los números se muestran en la pantalla de 7 segmentos.
Ahora tenemos solo 4 puertos en el microcontrolador y ¿qué pasa si queremos mostrar los datos en más de cuatro 7 segmentos? Para resolver este problema, entra en juego la técnica de multiplexación. Necesitamos multiplexar varias unidades de 7 segmentos. Lea también la interfaz de la pantalla de 7 segmentos con el microcontrolador AVR.