Este documento presenta diferentes formas de visualizar números en displays de 7 segmentos utilizando PIC microcontroladores. Incluye ejemplos de conteo ascendente usando y sin usar decodificadores BCD a 7 segmentos, así como contadores de 2 dígitos y la lectura de un potenciómetro para mostrar valores en el display. Se proveen instrucciones y diagramas de circuito para implementar las aplicaciones.
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Contadores y visualización por display 2
1. CONTADORES Y VISUALIZACIÓN POR DISPLAY
CONTEO ASCENDENTE USANDO DISPLAY 7 SEGMENTOS Y DECODIFICADOR BCD A 7
SEGMENTOS
'programa de visualización con dysplay usando decodificador 7447
'
Device = 16F84A
Xtal 4
TRISB=0
Dim x As Byte
inicio:
For x=0 To 9 Step 1
PORTB=x
DelayMS 500
Next x
GoTo inicio
DIAGRAMA DEL CIRCUITO:
CONTEO ASCENDENTE CON DISPLAY 7 SEGMENTOS SIN USAR DECODIFICADOR DE 7
SEGMENTOS
'CONTADOR CON VISUALIZADOR DE 7 SEGMENTOS
'Se conecta un visualizador de 7 segmentos de ánodo común al Puerto B
'del microcontralador. se muestran los números del 0 al 9 con una
'demora de 1 segundo entre cada dato enviado.
'La interconexión del micro con el visualizador es así:
2. 'RB0 SEGMENTO a, RB1 ES SEGMENTO b, RB2 ES SEGMENTO c, RB3 ES SEGMENTO
d
'RB4 ES SEGMENTO e, RB5 ES SEGMENTO f, RB6 ES SEGMENTO g
'
Device=16F84A
Xtal=4
Dim CONTA As Byte
Dim INDICE As Byte
Output PORTB
CONTINUA:
For INDICE=0 To 9
CONTA=LookUp INDICE,[64,121,36,48,25,18,2,120,0,16]
PORTB=CONTA
DelayMS 1000
Next INDICE
GoTo CONTINUA
EJERCICIO: REALIZAR EL CIRCUITO ESQUEMÁTICO EN PROTEUS
CONTADOR DE 00 A 99 CON VISUALIZACIÓN EN DISPLAY, USANDO DECODIFICADOR 7447
'programa de visualización con dysplay usando decodificador 7447
'contando desde 00 hasta 99
'Se realiza un bucle de 0 a 99, usando la variable i que se separa
'en dos cifras, la decena y la unidad. Para eso se utiliza operaciones
'como resta y producto, así: decena = i/10 y unidad= i-decena*10.
'Por último para visualizar se tiene en cuenta que las VARIABLES (DIM)
'tipo bit de unidad y decena se igualan a cada puerta del puerto B
'que se conecta a cada decodificador de 7 segmentos (ánado común)
'
Device = 16F84A
Xtal 4
TRISB=0
Dim i As Byte
Dim unidad As Byte
Dim decena As Byte
Dim un0 As unidad.0 'se define un0 como el bit cero de la variable
unidad
Dim un1 As unidad.1
Dim un2 As unidad.2
Dim un3 As unidad.3
Dim de0 As decena.0 'se define de0 como el bit cero de la variable
decena
Dim de1 As decena.1
Dim de2 As decena.2
Dim de3 As decena.3
inicio:
For i=0 To 99 Step 1
decena=i/10
'se obtiene la decena dividiendo por 10
unidad=i-decena*10
'se obtiene la unida restando i menos la decena
por 10
PORTB.0=de0
PORTB.1=de1
PORTB.2=de2
PORTB.3=de3
PORTB.4=un0
3. PORTB.5=un1
PORTB.6=un2
PORTB.7=un3
DelayMS 500
Next i
GoTo inicio
EJERCICIO: REALIZAR EL CIRCUITO ESQUEMÁTICO EN PROTEUS
LECTURA DE POTENCIÓMETRO Y VISUALIZACIÓN EN DISPLAY 7 SEGMENTOS
'programa de LECTURA DE UN POTENCIOMETRO con visualización en dysplay
'usando decodificador 7447, contando desde 00 hasta 99
'
'
Device = 16F84A
Xtal 4
TRISB=0
Dim i As Byte
Dim unidad As Byte
Dim decena As Byte
Dim un0 As unidad.0 'se define un0 como el bit cero de la variable
unidad
Dim un1 As unidad.1
Dim un2 As unidad.2
Dim un3 As unidad.3
Dim de0 As decena.0 'se define de0 como el bit cero de la variable
decena
Dim de1 As decena.1
Dim de2 As decena.2
Dim de3 As decena.3
inicio:
i= Pot PORTA.0,77
decena=i/10
'se obtiene la decena dividiendo por 10
unidad=i-decena*10
'se obtiene la unida restando i menos la decena
por 10
PORTB.0=de0
PORTB.1=de1
PORTB.2=de2
PORTB.3=de3
PORTB.4=un0
PORTB.5=un1
PORTB.6=un2
PORTB.7=un3
DelayMS 500
GoTo inicio
DIAGRAMA DEL CIRCUITO: