You are on page 1of 18

MANEJO DE DISPLAYS

OBJETIVO:

Analizar las formas de controlar


displays de 7 segmentos para
realizar aplicaciones de contadores.

Sixto Reinoso V

PARA REFLEXIONAR..!!!!!!!

Las personas no son


recordadas por el nmero
de veces que fracasan,
sino por el nmero de
veces que tienen xito.

Sixto Reinoso V

Thomas Alba
Edison

Display de 7 segmentos

Sixto Reinoso V

Display de 7 segmentos
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
Sixto Reinoso V
corriente.

Lazos de control
Cuando se quiere repetir un
determinado nmero de veces
algunas instrucciones se utiliza los
bucles de control que proporciona
BASIC, como son: FOR-NEXT, DO
WHILE-LOOP, WHILE-WEND, REPEATUNTIL, de entre los ms comunes.

Sixto Reinoso V

Uso de 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
Instrucciones
NEXT

Sixto Reinoso V

CONEXIN DISPLAY NODO COMN

Sixto Reinoso V

CONEXIN DISPLAY CTODO


COMN

Sixto Reinoso V

Contador ascendente 0 - 9
TRISB = 0
N VAR BYTE
PORTB=0
CONTADOR:
FOR N = 0 TO 9
PORTB=N
PAUSE 500
NEXT
GOTO CONTADOR
END

Sixto Reinoso V

Contador ascendente 0 - 9
TRISB = 0
I VAR BYTE
CONTADOR:
FOR I = 0 TO 9
GOSUB DISPLAY
GOSUB TIMER
NEXT
GOTO CONTADOR
DISPLAY:
PORTB = I
RETURN
TIMER:
PAUSE 500
RETURN
END
Sixto Reinoso V

Contador descendente 9-0


TRISB = 0
I VAR BYTE
CONTADOR:
FOR I = 9 TO 0 STEP -1
GOSUB DISPLAY
GOSUB TIMER
NEXT
GOTO CONTADOR
DISPLAY:
PORTB = I
RETURN
TIMER:
PAUSE 500
RETURN
END
Sixto Reinoso V

Circuito PIC- DISPLAY sin


decodificador

Sixto Reinoso V

Tabla de datos
Equivalencia
en Decimal

64

121

36

48

25

18

120

16

Sixto Reinoso V

# 7segmentos

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
variableno pueden ser utilizadas con LOOKUP, aunque es
permitido variables de array con ndice constantes.

Sixto Reinoso V

INSTRUCCIN LOOKUP
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:
Cul es valor de m si n= 8
Cul debe ser el valor de x, si display vale
3.
Sixto Reinoso V

Contador 0-9
N VAR BYTE
DATO VAR BYTE
TRISB =0
PROG:
FOR N = 0 TO 9
LOOKUP N,
[64,121,36,48,25,18,2,120,0,16],DATO
PORTB = DATO
PAUSE 1000
NEXT N
GOTO PROG
Sixto Reinoso V

IF THEN ELSE
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
IF condicin THEN
Instruccin
Instrucciones
IF condicin THEN
Instrucciones
ENDIF
Sixto Reinoso V

ELSE
Instrucciones
ENDIF

CONTADOR 0-9 USANDO IF THEN


ELSE

@ DEVICE
INTRC_OSC_NOCLKOUT
@ DEVICE MCLR_OFF
TRISB = 0
CMCON = 7
I VAR BYTE
DATO VAR BYTE
I= 0
CONTADOR:
IF I < 10 THEN
GOSUB DISPLAY
GOSUB TIMER
I=I+1
ELSE
I= 0
ENDIF
GOTO CONTADOR
Sixto Reinoso V

DISPLAY
LOOKUP I,
[64,121,36,48,25,18,2,120,0,16],DATO
PORTB = DATO
RETURN
TIEMPO:
PAUSE 1000
RETURN
END

You might also like