Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MANUAL DE PRÁCTICAS
INTRODUCCIÓN:
Si se controlara cada display, se necesitan siete (7) líneas del microcontrolador por cada
uno, esto ocuparía todas las líneas disponibles en cada puerto del microcontrolador,
sin embargo existe una técnica llamada multiplexación que consiste en conectar a las
mismas 7 líneas a los 2,3 o 4 display e ir encendiendo cada uno de ellos, a través de un
transistor, tan rápidamente que parece encenderse todos al mismo tiempo. Multiplexar es
una buena forma de ahorrar puertos y potencializar las aplicaciones con PIC.
Cualquier elemento que se encienda y apague con una frecuencia mayor a 25Hz es
imperceptible al ojo humano, éste lo verá encendido en todo momento.
Entonces, si queremos mostrar los números 1, 2, 3, 4 en 4 displays conectados en paralelo,
el procedimiento sería:
Seleccionar el display 1, y apagar los demás. Mandar las salidas para mostrar el número 1
en el display.
Esperar poco tiempo (milisegundos o menos), seleccionamos el display 2, y apagamos los
demás. Mandamos las salidas para mostrar el número 2 en el display.
MATERIAL:
➢ Protoboard
➢ PIC16f628A
➢ Fuente de alimentación 5 Vcd
➢ Resistencias 330ohm o 220ohm (de acuerdo a circuito diseñado).
➢ 2 Display de 7 segmentos ánodo o cátodo común.
➢ 2 Transistores NPN (2N2222, 2N3904, BC547).
➢ Pinzas de corte
➢ Programador
Página 1
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA NO.5
MANUAL DE PRÁCTICAS
➢ Computadora
DESARROLLO:
Lleve a cabo la simulación del programa de abajo con la finalidad de visualizar un contador
del 0 al 99 mediante los display de 7 segmentos en incremento de una unidad. Los
segmentos de cada display van unidos entre sí, es decir a con a, b con b, hasta el g con g,
por cada display adicional se necesita un transistor y sólo una línea más del
microcontrolador. Elabore el diagrama de flujo y el respectivo programa para un contador
descendente de 99 a 0, adecuando la tabla para un display de cátodo común. Grabe el PIC
con su programa y conecte los displays y las resistencias para comprobar el correcto
funcionamiento del programa. Finalmente reporte el desarrollo de la práctica en la que
debe incluir imágenes (fotografías y/o captura de pantalla) de su trabajo, diagrama de flujo,
programa, cuestionario y conclusión individual.
Página 2
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA NO.5
MANUAL DE PRÁCTICAS
R2
100
R1
PINES DE PROGRAMACION
100
Q3 Q1
2N2222 2N2222
U1
1
2
3
4
5
16 17
RA7/OSC1/CLKIN RA0/AN0
15 18
RA6/OSC2/CLKOUT RA1/AN1
1
VPP / MCLR
RA2/AN2/VREF
VSS / GND
VPP / MCLR 4 2
ICSPDAT
ICSPCLK
RA5/MCLR RA3/AN3/CMP1
3
RA4/T0CKI/CMP2
VDD
6
R330 A A
RB0/INT
7 B B
RB1/RX/DT
8 C C
RB2/TX/CK
9 D D
RB3/CCP1
10 E E
RB4
11 F F
RB5
12 G G
RB6/T1OSO/T1CKI
13
RB7/T1OSI
PIC16F628A
PROGRAMA:
#include <16F628A.h>
#use delay(clock = 4000000) R4
#fuses INTRC_IO, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOPROTECT
#BYTE TRISB = 0x86 // TRISB en 86h.
#BYTE PORTB = 0x06 // PORTB en 06h.
#BYTE TRISA = 0x85 // TRISB en 85h.
#BYTE PORTA = 0x05
R1
void main() R2 36K
{
TRISB = 0x00; //establecemos puerto b como salida
TRISA = 0xF0; //establecemos los cuatro primeros bit menos significativos como salida
byte unidad=0, decena=0;
unsigned int const
display[10]={0B11000000,0B11111001,0B10100100,0B10110000,0B10011001,0B1001001
0,0B10000010,0B11111000,0B10000000,0B10011000};
while(true) //Entra a ciclo infinito
{
MANUAL DE PRÁCTICAS
porta=0x01; //anodo_D=apagado,anodo_U=encendido
portb=display[i]; //Se muestra el valor de unidad
delay_ms(10); //Retardo de 10mS
if (decena==0)
porta=0x03; //Si decenas=0 encender ambos display para mostra el 0 en
//decenas mientras que las unidades pasan de 0 a 9
else porta=0x02; //Si decenas>0, anodo_D=encendido
portb=display[decena]; //Digito decenas
delay_ms(10); //Para evitar parpadeos
}
}
}
}
Página 4
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA NO.5
MANUAL DE PRÁCTICAS
DIAGRAMA DE FLUJO
Página 5
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA NO.5
MANUAL DE PRÁCTICAS
PROGRAMA
Este programa consiste en un contador descendente de 99 a 0 con la multiplexación, que esta se trata de
cambiar de display cada cierto tiempo según la configuración por medio de transistores, en este caso se
utilizan los pines del PORTA RA0 y RA1 para el cambio de display.
Página 6
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA NO.5
MANUAL DE PRÁCTICAS
SIMULACION EN PROTEUS
Se observa como se enciende el display de las unidades por medio del transistor
Y aquí como enciende el display de las decenas y el de las unidades esta apagado.
Página 7
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA NO.5
MANUAL DE PRÁCTICAS
CONCLUSION INDIVIDUAL
Esta practica estuvo mas complicada ya que se aprecia mejor en físico que en la simulación, que
en mi caso no se puede observar bien e incluso el numero 8 no se puede ver en el display, pero en
la salida de los pines del PORTB si se puede ver.
Página 8