You are on page 1of 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

Ingeniera Mecatrnica, 7mo. Nivel, Universidad de las Fuerzas Armadas


ESPE-Extensin Latacunga, Mrquez de Maenza S/N Latacunga, Ecuador.
13 de Junio del 2016

RESUMEN: El presente documente trata cerca


de los contadores los que a su vez son circuitos
secuenciales por lo que para su conformacin
es necesaria la utilizacin de FF (flip-flops),
adems son circuitos en los que sus salidas
siguen una secuencia fija o reciben datos de
forma ordenada. El contador en anillo o tambin
llamado registro de corrimiento circulante, es un
contador sncrono por lo cual la entrada de uno
de los FF dependen de la salida del anterior,
permitindonos as visualizar en la prctica el
desplazamiento del valor de un FF a otro, el
contador Johnson o de anillo trenzado es similar
al contador en anillo con la peculiaridad que la
salida invertida del ltimo bi-estable alimenta al
primer bi-estable.
PALABRA CLAVE: Anillo, contador, flip-flop,
Johnson, realimentacin, sincrnico.
ABSTRACT: This paper is about counters which
in turn are sequential circuits thus for forming
using FF (flip-flops) are required in addition are
circuits in which their outputs are still fixed or
sequence data orderly. The ring counter also
called circulating shift register, is a synchronous
counter for which the input of one of the FF
output dependent on this, thus enabling display
in practice the movement of an FF value to
another, the Johnson counter or twisted ring
counter is similar to the ring with the peculiarity
that the inverted output of the last bi-stable feeds
the first bi-stable, this counter is useful when a
sequence that changes only one bit at a certain
time, it takes a ring counter instead must be preloaded with a 1L or 0L for viewing.
KEYWORD: Ring, counter, flip-flop, Johnson,
feedback, synchronous.

1 INTRODUCCIN.
El avance tecnolgico ha proporcionado a
los contadores una gran relevancia en cuanto a
su aplicacin en la industria estando presente el
en mayor nmero de sistemas digitales,
permitiendo diversas aplicaciones como:

El control de posicin del ngulo


de algunos mecanismos como
para cabezales de impresoras.

Posicionamiento de taladros.

Se utiliza en cronmetros, en
relojes.

La conceptualizacin de un contador se
basa en que es un circuito que genera una serie
de combinaciones a sus salidas de forma
sincronizada mediante una seal de reloj
determinada o por un pulsador externo que
cumpla las funciones de enviar seales de reloj.
En si los contadores son circuitos
secuenciales que pueden ser generados
mediante compuertas lgicas o mediante la
utilizacin de FF ya sea RS, JK o D, un contador
de n bits al tener n FF puede realizar el conteo
desde 0 hasta 2"#$ .
Para ello se analizara con mayor nfasis
los siguientes contadores:

Contadores en Anillo.
Contadores Johnson.

2 DESARROLLO
2.1
REGISTROS
DESPLAZAMIENTO.

DE

Los registros de desplazamiento son


circuitos donde los datos de informacin en la
entrada se van desplazando a la salida del
circuito cuando son aplicados una seal de
sincronismo, al dejar de enviar dicha seal de
sincronismo en la entrada, en la salida se
mantiene la informacin anterior muy presente o
memorizando.
Las informaciones de entrada pueden ser
varias entre esas estn serie o paralelo, que al
combinarlas en formas de tratar la informacin a
la entrada y salida obtenemos diferentes
registros como son:
Entrada serie salida serie
Entrada serie salida paralelo
Entrada paralelo salida serie
Entrada paralelo salida paralelo
Para poder analizar estos registros de entrada
serie y salida serie o paralelo se analizara el
integrado 74ls164. [1]

2.1.1 Registro entrada serie salida


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
dems un 0.

2.1.2 Registro entrada serie salida


paralelo.

Figura 2. Registro de 5 bits entrada serie salida


paralelo maestro esclavo RS [1]
Se observa que la nica diferencia es que se le
aade una salida a cada una de las salidas Q
del biestable: de esta manera se pueden
obtener todos los datos a la vez, tambin se
puede obtener una salida en serie de cualquier
salida Q o Q. [2]

Figura 4. Registro de 5 bits entrada paralelo


salida paralelo biestables D con habilitacin[1]
Un registro de entrada y salida paralelo a partir
de biestables D con entrada de habilitacin. La
entrada de datos es cada una de las entradas D
del biestable; la entrada de habilitacin se une a
una entrada de habilitacin 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 tambin
podramos haber utilizados puertas OR y un
inversor, o tambin buffers con entradas de alta
impedancia para las salidas. [2]
.

2.2 Funcionamiento.
Para analizar este funcionamiento se va analizar
los integrados 74LS164 y 74LS165.

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
seleccin
desplazamiento/carga', hay un 0 se realiza la
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 6. Diagrama lgico interno.

Figura 10. Diagrama fsico

2.2.3. Integrado 74LS165.[3]

Figura 7. a) Descripcin de funcionamiento

Figura 11. Diagrama de pines

Figura 8. b)

2.2.2 APLICACIONES
Las aplicaciones son varias:
- Ruleta digital[4]
Figura 12. Diagrama lgico interno.

Figura 9. Diagrama electrnico.

Figura 13. Descripcin de funcionamiento

3. VENTAJAS Y DESVENTAJAS
VENTAJAS

La configuracin del contador tipo anillo


sigue vigente gracias a que no es
necesaria la decodificacin de las
salidas (Como sucede con los
contadores asncronos y sncronos), la
salida
decodificada
es
obtenida
directamente de la salida del FF que
deseemos.
El circuito del contador tipo Johnson es
bsico 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


contador Johnson) el ms rpido que
podemos construir, presentando una
frecuencia mxima de funcionamiento.
La ventaja de los registros de
desplazamiento es las aplicaciones en
las matrices de leds en pequea o
gran proporcin.

DESVENTAJAS

La desventaja de los contadores de


anillo es que son cdigos de densidad
ms baja. Un contador binario puede
representar 2 ^ N estados, donde N es
el nmero de bits en el cdigo,
mientras que un contador de Overbeck
puede representar slo N estados y un
contador
de
Johnson
puede
representar slo 2N estados.
Los contadores tipo Johnson est
limitado a un nmero MOD que
siempre ser PAR.
En los costos de empleo para las
matrices de leds ya que son de mucha
importancia para la publicidad a nivel
nacional.

4. APLICACIN CON PIC


La idea de este dispositivo es ingresar los bit de
forma serial junto a un clock, de esta forma los
bit ingresados serie se mostraran en la salida de
cada flipflop de forma paralela.
Para comprender aun ms esto podemos
visualizar el diagrama lgico del integrado.

void main(){
int i,j;
byte valor;
//Variables para mascara
byte const bitMask[8]={1,2,4,8,16,32,64,128};
//Datos a mostrar en cada 74164
byte const ByteDatosSalida[10]={
0b01100000,
0b11011010,
0b11110010,
0b01100110,
0b10110110,
0b10111110,
0b11100000,
0b11111110,
0b11110110,
0b11111100
};
while(true){
//Ciclo de recorrido de los tres 74164
while(i<10){
//Intercambio de variables
valor=ByteDatosSalida[i];
//Rrecorrido de cada bit del 74164
for(j=0;j<8;j++)
{
//Clock a nivel bajo
output_low(CLK);
//Salida de dato para 74164 con aplicacin de
mascara "&"
output_bit(DATO,valor&bitMask[j]);
//Demora de carga de datos
delay_ms(5);
//Clock a nivel alto
output_high(CLK);
//Incremento del contador del while
}
delay_ms(500);
i++;
}
i=0;
}

Figura 14. Diagrama lgico

SIMULACIN

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
#FUSES NOPROTECT
#FUSES NOPUT
#FUSES NOBROWNOUT
#use delay(clock=4000000)
#define DATO PIN_b1
#define CLK PIN_b0

Figura 15. Aplicacin 01

5. TECLADO 4X4 Y DISPLAY 16X2

Las entradas a travs de un pulsador son muy


habituales
en
los
sistemas
con
microcontroladores para trabajar con una mayor
informacin o informacin alfanumrica.
Funciones incorporadas en el compilador C:
Kbd_init()
Inicializa el sistema, debe ser la primera funcin
en el programa.
Kbd_getc()
Devuelve el valor de la tecla pulsada en funcin
de la tabla que esta programada podemos
modificar la tabla para obtener los resultados
que nosotros deseemos.
El archivo KBD.C est pensado para trabajar
con el portb o el protb.
Activando o no la linea define use_portb_lcd
TRUE podemos seleccionar el PORTB
Las conexciones vienen dadas en el fichero
pero se pueden modificar:

Figura 16. Distribucin de columnas y filas


Se puede trabajar con el LCD y el tecaldo a
travs de puertos separados o compartiendo el
mismo puerto.
Compartir puerto suele conllevar problemas si
se quiere trabajar con el teclado y las
interrupciones RB4/ RB7.

Figura 18. Diagrama lgico


5.1 APLICACIN
CODIGO
#include <16F877A.h>
#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
#define use_portb_kbd TRUE //
teclado asignado al puerto B
//luego de realizar los cambios de pines
se asigna las librerias
#include <lcd.c> // libreria lcd
#include <kbd.c> //libreria para el
teclado
#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


diferentes

port_b_pullups(true);
while(TRUE)
{
i=0;
printf(lcd_putc,"\f pulsar tecla 1 \n");
while(i<=2)
{
k=kbd_getc();
if(k!=0)

{
data[i]=k;
i++;
printf(lcd_putc,"\f pulsar tecla
%u\n",i+1);

for(i=0;i<=2;i++)
{
clave[i]=read_eeprom(i);
}
if((data[0]==clave[0])&&(data[1]==clave
[1])&&(data[2]==clave[2]))
{
printf(lcd_putc,"\f puerta abierta");
output_high(pin_A0);
delay_ms(500);
output_low(pin_A0);
}
else
printf(lcd_putc,"\f puerta cerrada");
delay_ms(1000);
}
}
SIMULACIN

Figura 19. Aplicacin 02

6. CONCLUSIONES:

[1] Tomas Floyd, Sistemas Digitales, Novena


Edicin, 2002.
[2] El contador en Anillo, (1999) Disponible en:
http://www.hpca.ual.es/vruiz/docencia/laboratori
o_estructura/practicas.com

}
}

7. REFERENCIAS

Un contador de anillo es un tipo de


contador compuesto por un registro de
desplazamiento de tipo circular.
Bsicamente los dos contadores son
similares fsicamente lo que les
diferencia es que en el uno ingresa la
funcin positiva y el otro en funcin
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 leds

[3]
Contadores
(2010)
.Disponible
en:
http://personales.unican.es/manzanom/Planantig
uo/EDigitalI/CONTG1.pdf
[4] Ral Esteve Bosch, Fundamentos de
Electrnica Digital. Universidad Politcnica de
Valencia. Espaa, 2005
[5]
Contador
Johnson.(2013).
Disponible
en:http://logicadigital02.wikispaces.com/DISE%
C3%91O+DEL+CONTADOR+JHONSON+DE+4
+BITS