Está en la página 1de 6

REGISTROS DE DESPLAZAMIENTO Y APLICACIONES CON EL

PIC 16F877A, TECLADO, DISPLAY Y LCD


Llano Montesdeoca Edison Javier
e-mail: shaka_eddy@hotmail.com
Navarrete Socasi Juan Carlos
e-mail: jcnavarrete2@espe.edu.ec

Ingeniería Mecatrónica, 7mo. Nivel, Universidad de las Fuerzas Armadas


ESPE-Extensión Latacunga, Márquez de Maenza S/N Latacunga, Ecuador.
13 de Junio del 2016
• Se utiliza en cronómetros, en
RESUMEN: El presente documente trata cerca relojes.
de los contadores los que a su vez son circuitos
secuenciales por lo que para su conformación La conceptualización de un contador se
es necesaria la utilización de FF (flip-flops), basa en que es un circuito que genera una serie
además son circuitos en los que sus salidas de combinaciones a sus salidas de forma
siguen una secuencia fija o reciben datos de sincronizada mediante una señal de reloj
forma ordenada. El contador en anillo o también determinada o por un pulsador externo que
llamado registro de corrimiento circulante, es un cumpla las funciones de enviar señales de reloj.
contador síncrono por lo cual la entrada de uno
de los FF dependen de la salida del anterior, En si los contadores son circuitos
permitiéndonos así visualizar en la práctica el secuenciales que pueden ser generados
desplazamiento del valor de un FF a otro, el mediante compuertas lógicas o mediante la
contador Johnson o de anillo trenzado es similar utilización de FF ya sea RS, JK o D, un contador
al contador en anillo con la peculiaridad que la de n bits al tener n FF puede realizar el conteo
salida invertida del último bi-estable alimenta al desde 0 hasta 2"#$ .
primer bi-estable.
Para ello se analizara con mayor énfasis
PALABRA CLAVE: Anillo, contador, flip-flop, los siguientes contadores:
Johnson, realimentación, sincrónico.
• Contadores en Anillo.
ABSTRACT: This paper is about counters which • Contadores Johnson.
in turn are sequential circuits thus for forming
using FF (flip-flops) are required in addition are 2 DESARROLLO
circuits in which their outputs are still fixed or
sequence data orderly. The ring counter also
called circulating shift register, is a synchronous 2.1 REGISTROS DE
counter for which the input of one of the FF DESPLAZAMIENTO.
output dependent on this, thus enabling display
in practice the movement of an FF value to
another, the Johnson counter or twisted ring Los registros de desplazamiento son
counter is similar to the ring with the peculiarity circuitos donde los datos de información en la
that the inverted output of the last bi-stable feeds entrada se van desplazando a la salida del
the first bi-stable, this counter is useful when a circuito cuando son aplicados una señal de
sequence that changes only one bit at a certain sincronismo, al dejar de enviar dicha señal de
time, it takes a ring counter instead must be pre- sincronismo en la entrada, en la salida se
loaded with a 1L or 0L for viewing. mantiene la información anterior muy presente o
memorizando.
Las informaciones de entrada pueden ser
KEYWORD: Ring, counter, flip-flop, Johnson, varias entre esas están serie o paralelo, que al
feedback, synchronous. combinarlas en formas de tratar la información a
la entrada y salida obtenemos diferentes
registros como son:
1 INTRODUCCIÓN. - Entrada serie salida serie
- Entrada serie salida paralelo
El avance tecnológico ha proporcionado a - Entrada paralelo salida serie
los contadores una gran relevancia en cuanto a - Entrada paralelo salida paralelo
su aplicación en la industria estando presente el Para poder analizar estos registros de entrada
en mayor número de sistemas digitales, serie y salida serie o paralelo se analizara el
permitiendo diversas aplicaciones como: integrado 74ls164. [1]
• El control de posición del ángulo
de algunos mecanismos como
para cabezales de impresoras.
2.1.1 Registro entrada serie salida
• Posicionamiento de taladros. serie.
Figura 1. Registro de 5 bits entrada serie salida
serie maestro esclavo RS [1]

Se observa que la entrada S del primer


biestable está conectado a la entrada y está
negada a la entrada R. Con esto se consigue
que, cuando en la entrada haya un 1, el primer
biestable contendrá un 1 (Q=1, Q’=0) y los Figura 4. Registro de 5 bits entrada paralelo
demás un 0. salida paralelo biestables D con habilitación[1]

2.1.2 Registro entrada serie salida Un registro de entrada y salida paralelo a partir
de biestables D con entrada de habilitación. La
paralelo. entrada de datos es cada una de las entradas D
del biestable; la entrada de habilitación se une a
una entrada de habilitación global, de manera
que cuando se activa, permite que se lean los
datos. Hay otra entrada (control de salida) que
al activarse permite que se lean las salidas. Se
ha utilizado puertas AND, aunque también
podríamos haber utilizados puertas OR y un
Figura 2. Registro de 5 bits entrada serie salida inversor, o también buffers con entradas de alta
paralelo maestro esclavo RS [1] impedancia para las salidas. [2]
.
Se observa que la única diferencia es que se le 2.2 Funcionamiento.
añade una salida a cada una de las salidas Q
del biestable: de esta manera se pueden Para analizar este funcionamiento se va analizar
obtener todos los datos a la vez, también se los integrados 74LS164 y 74LS165.
puede obtener una salida en serie de cualquier
salida Q o Q’. [2] 2.2.1. Integrado 74LS164.[2]
2.1.3 Registro entrada paralelo
salida serie.

Figura 5. Diagrama de pines

Figura 3. Registro de 5 bits entrada paralelo


salida serie maestro esclavo RS[1]

Cuando en la entrada de selección


desplazamiento/carga', hay un 0 se realiza la
Figura 6. Diagrama lógico interno.
carga. Con el inversor este cero se convierte en
un 1 y por lo tanto las puertas NAND que hay
arriba y debajo de los biestables se convierten
en inversores de todo el circuito.

2.1.4 Registro entrada paralelo


salida paralelo.
Figura 10. Diagrama físico

2.2.3. Integrado 74LS165.[3]

Figura 7. a) Descripción de funcionamiento

Figura 11. Diagrama de pines

Figura 8. b)
2.2.2 APLICACIONES
Las aplicaciones son varias:
- Ruleta digital[4]
Figura 12. Diagrama lógico interno.

Figura 13. Descripción de funcionamiento


Figura 9. Diagrama electrónico.
3. VENTAJAS Y DESVENTAJAS

VENTAJAS

• La configuración del contador tipo anillo


sigue vigente gracias a que no es
necesaria la decodificación de las
salidas (Como sucede con los
contadores asíncronos y síncronos), la
salida decodificada es obtenida
directamente de la salida del FF que
deseemos.
• El circuito del contador tipo Johnson es
básico es en esencia el mismo que el
contador tipo anillo, el único cambio
que necesitamos hacer es en la salida
del último FF (la que cierra el anillo con
la entrada del primer FF).
• El contador en anillo es (junto con el void main(){
contador Johnson) el más rápido que int i,j;
podemos construir, presentando una byte valor;
frecuencia máxima de funcionamiento. //Variables para mascara
• La ventaja de los registros de byte const bitMask[8]={1,2,4,8,16,32,64,128};
desplazamiento es las aplicaciones en //Datos a mostrar en cada 74164
las matrices de led’s en pequeña o byte const ByteDatosSalida[10]={
gran proporción. 0b01100000,
0b11011010,
DESVENTAJAS 0b11110010,
0b01100110,
0b10110110,
• La desventaja de los contadores de 0b10111110,
anillo es que son códigos de densidad 0b11100000,
más baja. Un contador binario puede 0b11111110,
representar 2 ^ N estados, donde N es 0b11110110,
el número de bits en el código, 0b11111100
mientras que un contador de Overbeck };
puede representar sólo N estados y un while(true){
contador de Johnson puede //Ciclo de recorrido de los tres 74164
representar sólo 2N estados. while(i<10){
• Los contadores tipo Johnson está //Intercambio de variables
limitado a un número MOD que valor=ByteDatosSalida[i];
siempre será PAR. //Rrecorrido de cada bit del 74164
• En los costos de empleo para las for(j=0;j<8;j++)
matrices de led´s ya que son de mucha {
importancia para la publicidad a nivel //Clock a nivel bajo
nacional. output_low(CLK);
//Salida de dato para 74164 con aplicación de
4. APLICACIÓN CON PIC mascara "&"
output_bit(DATO,valor&bitMask[j]);
//Demora de carga de datos
La idea de este dispositivo es ingresar los bit de
delay_ms(5);
forma serial junto a un clock, de esta forma los
//Clock a nivel alto
bit ingresados serie se mostraran en la salida de
output_high(CLK);
cada flipflop de forma paralela.
//Incremento del contador del while
}
Para comprender aun más esto podemos
delay_ms(500);
visualizar el diagrama lógico del integrado.
i++;
}

i=0;

}
Figura 14. Diagrama lógico
SIMULACIÓN
Podemos ver es simplemente un array de FF
tipo D, donde el dato ingresado va pasando
secuencialmente de un FF al otro mediante un
pulso de reloj por ciclo, es decir ingresamos el
primer bit, enviamos un pulso de clock y ese bit
pasa de un FF al otro, dejando libre el primero
para ingresar el segundo bit, así sucesivamente
hasta que se completen los 8bit a mostrar.

CODIGO

#include <16F877A.h>
#FUSES NOWDT
#FUSES NOCPD Figura 15. Aplicación 01
#FUSES NOPROTECT
#FUSES NOPUT
#FUSES NOBROWNOUT 5. TECLADO 4X4 Y DISPLAY 16X2
#use delay(clock=4000000)
#define DATO PIN_b1
#define CLK PIN_b0
Las entradas a través de un pulsador son muy
habituales en los sistemas con
microcontroladores para trabajar con una mayor
información o información alfanumérica.
Funciones incorporadas en el compilador C:
Kbd_init()
Inicializa el sistema, debe ser la primera función
en el programa.
Kbd_getc()
Devuelve el valor de la tecla pulsada en función
Figura 18. Diagrama lógico
de la tabla que esta programada podemos
modificar la tabla para obtener los resultados
que nosotros deseemos. 5.1 APLICACIÓN
El archivo KBD.C está pensado para trabajar
con el portb o el protb. CODIGO
Activando o no la linea ·define use_portb_lcd
TRUE podemos seleccionar el PORTB
Las conexciones vienen dadas en el fichero #include <16F877A.h>
pero se pueden modificar: #fuses XT,NOWDT
#use delay (clock=4M)
//pines para el lcd
/*RD0 =RS
RD1= RW
RD2 =enable
RD3 =
RD4 = D4
RD5 =D5
RD6 =D6
RD7 = D7
*/
#define lcd_data_port
getenv("sfr:portd") //para los pines de
datos de LCD
#define lcd_rs_pin pin_d0
#define lcd_rw_pin pin_d1
#define lcd_enable_pin pin_d2
// por defecto la libreria del
teclado(KBD) lo asigna en el puerto D
//se lo va ha ubicar en el puerto B
Figura 16. Distribución de columnas y filas #define use_portb_kbd TRUE //
teclado asignado al puerto B
Se puede trabajar con el LCD y el tecaldo a //luego de realizar los cambios de pines
través de puertos separados o compartiendo el se asigna las librerias
mismo puerto. #include <lcd.c> // libreria lcd
Compartir puerto suele conllevar problemas si #include <kbd.c> //libreria para el
se quiere trabajar con el teclado y las teclado
interrupciones RB4/ RB7. #use standard_io(A)
#include <stdlib.h>
#rom 0x2100={'7','2','3'}
void main()
{
char k;
int i;
char data[3], clave[3];

lcd_init();
kbd_init();

Figura 17. Teclado y display en puertos port_b_pullups(true);


diferentes while(TRUE)
{
i=0;
printf(lcd_putc,"\f pulsar tecla 1 \n");
while(i<=2)
{
k=kbd_getc();
if(k!=0)
{ 7. REFERENCIAS
data[i]=k;
i++; [1] Tomas Floyd, Sistemas Digitales, Novena
printf(lcd_putc,"\f pulsar tecla Edición, 2002.
%u\n",i+1);
[2] El contador en Anillo, (1999) Disponible en:
} http://www.hpca.ual.es/vruiz/docencia/laboratori
} o_estructura/practicas.com

for(i=0;i<=2;i++)
{ [3] Contadores (2010) .Disponible en:
clave[i]=read_eeprom(i); http://personales.unican.es/manzanom/Planantig
} uo/EDigitalI/CONTG1.pdf
if((data[0]==clave[0])&&(data[1]==clave
[1])&&(data[2]==clave[2])) [4] Raúl Esteve Bosch, Fundamentos de
{ Electrónica Digital. Universidad Politécnica de
printf(lcd_putc,"\f puerta abierta"); Valencia. España, 2005
output_high(pin_A0);
delay_ms(500); [5] Contador Johnson.(2013). Disponible
output_low(pin_A0); en:http://logicadigital02.wikispaces.com/DISE%
} C3%91O+DEL+CONTADOR+JHONSON+DE+4
else +BITS
printf(lcd_putc,"\f puerta cerrada");
delay_ms(1000);
}
}

SIMULACIÓN

Figura 19. Aplicación 02

6. CONCLUSIONES:
• Un contador de anillo es un tipo de
contador compuesto por un registro de
desplazamiento de tipo circular.
• Básicamente los dos contadores son
similares físicamente lo que les
diferencia es que en el uno ingresa la
función positiva y el otro en función
negativa.
• En los contadores tipo anillo existe el
inconveniente que siempre hay que
inicializarlo bien en 1L o 0L.
• Los registros son muy usados para
almacenamiento de memorias para los
desplazamientos de textos de
diferentes maneras de desplegar el
texto en la matriz de led’s

También podría gustarte