You are on page 1of 14

MANEJO DE DISPLAYS DE 7 SEGMENTOS

CONTADORES

El display nodo comn


En el display nodo comn, todos los nodos de los diodos LED unidos y conectados a la
fuente de alimentacin. En este caso para activar
cualquier elemento hay que poner el ctodo del
elemento a tierra a travs de una resistencia para
limitar la corriente que pasa por el elemento.
El display ctodo comn
El display ctodo comn tiene todos los nodos de los diodos LED unidos y conectados a
tierra. Para activar un segmento de estos hay que poner el
nodo del segmento a encender a Vcc (tensin de la
fuente) a travs de una resistencia para limitar el paso de la
corriente.

CONEXIN PIC DECODIFICADOR 7447 Y DISPLAY NODO COMN

CONEXIN PIC DECODIFICADOR 7448 Y DISPLAY CTODO COMN


INSTRUCCIONES Y PROGRAMAS
LAZO BUCLE FOR NEXT
Formato:
Incrementa en 1
FOR contador= valor inicial TO Valor Final
Instrucciones
NEXT <contador>; es opcional colocar el nombre de la variable contador
Incrementa en n veces
FOR contador= valor inicial TO Valor Final STEP n
Instrucciones
NEXT
Decrementa en n veces
FOR contador= valor inicial TO Valor Final STEP - numero
2

Instrucciones
NEXT
LAZO WHILE WEND
Formato:
WHILE Condicin
Instrucciones
WEND
Repetidamente ejecuta las instrucciones contenidas en el lazo WHILE WEND,
mientras la condicin WHILE es verdadera. Cuando la condicin es falsa, contina la
ejecucin hasta encontrar el WEND y finaliza el bucle. La condicin puede ser una
expresin de comparacin. Ejemplo:
i=1
WHILE i <= 10
Instrucciones
i=i+1
WEND
Nota: Se puede utilizar la instruccin INC para incrementar en 1 la variable i.
INC i
Para decrementar la variable i en 1
DEC i
LAZO DO WHILE LOOP
Formato:
DO WHILE condicin
Instrucciones
LOOP
Repetidamente ejecuta las instrucciones contenidas en el lazo DO WHILE LOOP,
mientras la condicin DO WHILE es verdadera. Cuando la condicin es falsa, contina la
ejecucin hasta encontrar el LOOP y finaliza el bucle. La condicin puede ser una
expresin de comparacin. Ejemplo:
i=1
DO WHILE i <= 10
Instrucciones
i=i+1
LOOP
LAZO REPEAT UNTIL
Formato:
REPEAT
Instrucciones...
UNTIL Condicin

REPEAT...UNTIL, siempre un grupo de instrucciones son ejecutadas mientras una


condicin especificada es falsa. Ejemplo:
i= 0
REPEAT
Instrucciones
i=i+1
UNTIL i > 7 ; condicin, repite mientas i sea menor a 7
INSTRUCCIN IF THEN
La instruccin IF THEN, sirve de condicionante. Ejecuta la operacin que sigue al
THEN, si es verdadera la condicin, o si es falsa, salta a la siguiente lnea despus del
THEN.
FORMATO GENERAL: IF condicin THEN
Existen varias formas de aplicacin a saber:
a) IF portb.0 = 0 THEN GOSUB Activar Si portb.0 = 0 ejecutar la subrutina Activar.
b) IF porta.7 = 1 THEN Si porta.7 = 1 entonces
Set de instrucciones Conjunto de instrucciones a ejecutar si la condicin es
verdadera
ENDIF
c) IF (portb.1 = 0) AND (portb.0 = 1) THEN
Condicin de comparacin lgica
Set de instrucciones
Conjunto de instrucciones a ejecutar si la condicin es
verdadera
ELSE
Set de instrucciones Conjunto de instrucciones a ejecutar si la condicin es falso
ENDIF

CONTADORES
CONTADOR ASCENDENTE 0-9 CON LAZO FOR - NEXT
TRISB = 0
N VAR BYTE
CONTADOR:
FOR N = 0 TO 9
PORTB = N
PAUSE 500
NEXT
GOTO CONTADOR
END

CONTADOR DESCENDENTE 9-0 CON LAZO FOR - NEXT


TRISB = 0
N VAR BYTE
CONTADOR:
FOR N = 9 TO 0 STEP -1
PORTB = N
PAUSE 500
NEXT N
GOTO CONTADOR
END
CONTADOR 0-9 USANDO REPEAT - UNTIL
TRISB = 0
I VAR BYTE ' CONTADOR
CONTADOR:
I= 0
REPEAT
GOSUB DISPLAY
GOSUB TIMER
I=I+1
UNTIL I > 9
GOTO CONTADOR
DISPLAY
PORTB = I
RETURN
TIMER:
PAUSE 500
RETURN
END

CONTADOR 0-9 USANDO WHILE WEND


TRISB = 0
I VAR BYTE ' CONTADOR
CONTADOR:
I= 0
WHILE I<= 9
GOSUB DISPLAY
GOSUB TIMER
I=I+1
WEND
GOTO CONTADOR
DISPLAY
PORTB = I
RETURN
TIMER:
PAUSE 500
RETURN
END
CONTADOR 0-9 USANDO IF THEN ELSE
TRISB = 0
I VAR BYTE ' CONTADOR
I= 0
CONTADOR:
IF I < 10 THEN
GOSUB DISPLAY
GOSUB TIMER
I=I+1
ELSE
I= 0
ENDIF
GOTO CONTADOR
DISPLAY
PORTB = I
RETURN
TIMER:
PAUSE 500
RETURN
END

CONTADOR 0-9 USANDO DO WHILE LOOP


TRISB = 0
I VAR BYTE ' CONTADOR
CONTADOR:
I= 0
DO WHILE I<= 9
GOSUB DISPLAY
GOSUB TIMER
I=I+1
LOOP
GOTO CONTADOR
DISPLAY
PORTB = I
RETURN
TIMER:
PAUSE 500
RETURN
END
CONTADOR 00-99 MULTIPLEXADO
TRISA = 0
TRISB= 0
CMCON = 7
N VAR BYTE
UNIDAD VAR BYTE
DECENA VAR BYTE
UNIDAD = 0
DECENA = 0
CONTADOR:
FOR DECENA = 0 TO 9
FOR UNIDAD = 0 TO 9
GOSUB DISPLAY
NEXT UNIDAD
NEXT DECENA
GOTO CONTADOR
DISPLAY:
FOR N = 1 TO 10
PORTA = UNIDAD
HIGH PORTB.0
LOW PORTB.1
PAUSE 50
7

PORTA = DECENA
HIGH PORTB.1
LOW PORTB.0
PAUSE 50
NEXT N
RETURN
END

INSTRUCCIN LOOKUP
FORMATO
LOOKUP Indice, [constante1, constante2, ......], varX
LOOKUP almacena una tabla de datos constantes de 8 bits. Si el Indice es 0, varX toma el
primer valor constante1, y as sucesivamente. Si Indice es mayor o igual que el nmero de
entradas en la lista de constantes, no se toma ninguna accin y varX permanece sin
cambios. La lista de constantes pueden ser una mezcla de nmeros y cadenas. Cada caracter
en una cadena es tratado como una constante separada con el valor del caracter ASCII. Las
variables de array con ndice variable no pueden ser utilizadas con LOOKUP, aunque es
permitido variables de array con ndice constantes.
Ejemplo:
LOOKUP n, ["ElectroMicroDigital"], m ; Si n= 1, la letra l es asignada a la
variable m
LOOKUP x, [1,6,0,5,8,N E,4,5,3], display ; Si x= 8, el nmero 4 es asignado a la
variable display. El espacio en blanco ocupa el lugar de un carcter.
Preguntas:
1. Cul es valor de m si n = 8
2. Cul debe ser el valor de x, si display vale 3.

DECODIFICACIN A 7 SEGMENTOS
PARA DISPLAY NODO COMN
Equivalencia
en Decimal

64

121

36

48

25

18

120

#
7segmentos

16

PROGRAMA: CONTADOR ASCENDENTE 0-9.


TRISB = 0
CMCON = 7
N VAR BYTE
DATO VAR BYTE
INICIO:
FOR N = 0 TO 9
LOOKUP N,[64,121,36,48,25,18,2,120,0,16],DATO
PORTB = DATO
PAUSE 300
NEXT N
GOTO INICIO
END
PROGRAMA: CONTADOR DESCENDENTE 9-0.
OSCCON = %01100110
ANSEL = 0
TRISB = 0
CMCON = 7
N VAR BYTE
DATO VAR BYTE
INICIO:
FOR N = 9 TO 0 STEP -1
LOOKUP N,[64,121,36,48,25,18,2,120,0,16],DATO
PORTB = DATO
PAUSE 300
NEXT N
GOTO INICIO
END

10

CONEXIN DEL PIC A DISPLAY DE 7 SEGMENTOS


CONTADOR MULTIPLEXADO 00 99
TRISA = 0
TRISB= 0
CMCON = 7
N VAR BYTE
M VAR BYTE
X VAR BYTE
UNIDAD VAR BYTE
DECENA VAR BYTE
CONTADOR:
FOR N = 0 TO 9
LOOKUP N,[64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14],DECENA
FOR M = 0 TO 9
LOOKUP M,[64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14],UNIDAD
GOSUB DISPLAY
NEXT M
NEXT N
GOTO CONTADOR
DISPLAY:
FOR X = 1 TO 20
HIGH PORTA.1
LOW PORTA.0
PORTB = UNIDAD
PAUSE 25
HIGH PORTA.0
LOW PORTA.1
PORTB = DECENA
PAUSE 25
11

NEXT X
RETURN
END

12

ACTIVIDADES DE CLASE
1. Compruebe el funcionamiento en el simulador de los circuitos y programas: contador
ascendente y descente sin decodificador, multiplexado 00-99. Escriba los comentarios
correspondientes en todas las instrucciones.
2. Realice un programa para un contador MOD 100 (00-99). Los displays estn
conectados en el puerto A y B respectivamente, como se indica en la figura.

DEBER
1. Compruebe el funcionamiento en el simulador de todos los circuitos y programas
presentados. Escriba los comentarios correspondientes en todas las instrucciones.
2. Realice un contador mdulo 100 (00-99), para controlar los displays conectados en el
mismo puerto como se ve en la figura.

13

3. Realice un contador ascendente mdulo 23, con los displays multiplexados, es decir
conectados en el mismo puerto, sin decodificador.

14

You might also like