contadores.pdf
TRANSCRIPT
-
1
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.
-
2
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 ; 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
-
3
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
-
4
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
-
5
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
-
6
CONTADOR 0-9 USANDO WHILE WEND
TRISB = 0 I VAR BYTE ' CONTADOR
CONTADOR: I= 0 WHILE I
-
7
CONTADOR 0-9 USANDO DO WHILE LOOP
TRISB = 0 I VAR BYTE ' CONTADOR
CONTADOR: I= 0 DO WHILE I
-
8
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.
-
9
DECODIFICACIN A 7 SEGMENTOS
PARA DISPLAY NODO COMN
Equivalencia en Decimal
g f e d c b a # 7segmentos
64 1 0 0 0 0 0 0
121 1 1 1 1 0 0 1
36 0 1 1 0 0 0 0
48 0 1 1 0 0 0 0
25 0 0 1 1 0 0 1
18 0 0 1 0 0 1 0
2 0 0 0 0 0 1 0
120 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0
-
10
16 0 0 1 0 0 0 0
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
-
11
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
-
12
NEXT X RETURN END
-
13
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.
-
14
3. Realice un contador ascendente mdulo 23, con los displays multiplexados, es decir conectados en el mismo puerto, sin decodificador.