¿Quieres aprender a montar un display 7 segmentos en un pic? En este Articulo veremos como conectar un display de 7 segmentos de anodo comun a un PIC16F877A y mostrar un contador de 0 a 9. Tambien conectaremos un led para indicar el estado del circuito. Comenzemos…
Requerimientos
- -Programador de Pics (Uso uno master prog)
- -PIC16F877A
- -Display de 7 segmentos de anodo comun
- -Cristal de Cuarzo de 4 MHZ
- -2 Capacitores Ceramicos de 22pF
- -3 Resistencias de 220Ω
- -1 Resistencia de 10KΩ
- -1 led color Verde
- -Alimentacion 5V (Baterias,conexion usb,fuente de poder,etc)
- -Protoboard
- -Cable para Protoboard
Recomendado
- Manual PIC16F877A
- Conceptos Basicos Display 7 Segmentos Anodo Comun
Estructura del PIN 16F877A
Desarrollo
Para empezar vamos a ver el circuito que queremos realizar en este articulo.

Suscríbete a nuestra lista de correo y recíbe los últimos contenidos directamente en tu bandeja de correo electrónico, puedes elegir únicamente de que categoria del blog quieres recibir contenido.
Suscríbeme
Montamos este circuito en el protoboard.
Como puedes ver al ser un display de anodo común los pines centrales de éste se conectan a voltaje, no a tierra.
Ahora pasemos al programa en C que se cargara en el Microcontrolador.
#include <16F877A.h> #fuses XT, NOWDT #use delay(clock=4000000) #BYTE TRISB = 0x86 #BYTE PORTB = 0x06 void escribir(int n); //definiciones de funciones void main(){ //funcion principal TRISB = 0x00; //establecemos puerto b como salida while(1){ //ciclo infinito int i; for(i=0;i<10;i++){ //realizamos el conteo de 0 a 9 para el display escribir(i); //mandamos escribir el numero correspondiente delay_ms(1000); //esperamos 1 seg } } } void escribir(int n){ //funcion para escribir el numero en el display switch(n){ case 0: // si es 0 apagamos pines abcdef PORTB=0B11000000; break; case 1: // si es 1 apagamos pines bc PORTB=0B11111001; break; case 2: // si es 2 apagamos pines abdeg PORTB=0B10100100; break; case 3: // si es 3 apagamos pines abcdg PORTB=0B10110000; break; case 4: // si es 4 apagamos pines bcfg PORTB=0B10011001; break; case 5: // si es 5 apagamos pines acdfg PORTB=0B10010010; break; case 6: // si es 6 apagamos pines acdefg PORTB=0B10000010; break; case 7: // si es 7 apagamos pines abc PORTB=0B11111000; break; case 8: // si es 8 apagamos pines abcdefg PORTB=0B10000000; break; case 9: // si es 9 apagamos pines abcfg PORTB=0B10011000; break; } }
Al contrario de lo que pudiera parecer, para encender un led en el display es necesario mandar una señal de apagado, esto es porque estamos manejando un display de anodo comun, asi que para encenderlo es necesario mandarle una señal baja para que pueda tener conexion y asi encender. Tambien si te diste cuenta al pin b7 siempre le enviamos un 1 sin importar que numero sea, esto es porque utlizamos ese pin para encender el led extra que agregamos para encender en cuanto reciba energia, este pin ya no esta conectado al display por lo que funciona de manera normal y el 1 que le enviamos es para mantenerlo encendido.
Despues convertimos el codigo fuente a hexadecimal (puedes generarlo con el programa PIC C COMPILER CSS).
Luego mediante el programador de pics y su respectivo software lo grabamos en el microcontrolador.
y probamos.
Conclusion
En este articulo vimos como programar un microcontrolador para realizar una determinada tarea, en este caso contar del 0 al 9 y mostrarlo en un display, vimos el codigo fuente que contiene la estructura basica de un programa para un PIC y armamos un circuito para montar el PIC y el display.
Esto servira para empezar a desarrollar nuestros circuitos e ir aprendiendo.
Si te sirvio este post no olvides compartirlo en tus redes sociales y dejarme un comentario, asi podré saber que es útil para ti y seguiré subiendo post de este tema.
Hasta luego!