Vous êtes sur la page 1sur 7

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL

CARRERA DE INGENIERA EN ELECTRNICA Y


COMUNICACIONES

VLSI

Octavo A

Informe #

Detector preestablecido de 4 bits

Integrantes

Aldaz Daro
Gavilanes Andrs
Juan Jordn
Manobanda Wilson

Fecha de Envo
31/10/2017

Fecha de Entrega
07/11/2017

Docente: Ing. Edgar Patricio Crdova Crdova

SEPTIEMBRE 2017 FEBRERO 2018

AMBATO - ECUADOR
2017
1. Tema

Detector de cdigo preestablecido de cuatro bits.

2. Objetivos
a. Objetivo General

Desarrollar el modelado de un detector de cdigo preestablecido en microcontroladores.

b. Objetivos Especficos
Analizar los parmetros bsicos que son necesarios para la configuracin del modelado
de un cdigo preestablecido en microcontroladores PIC.
Obtener una sincronizacin de reloj precisa entre el microcontrolador PIC16F887 y el
temporizador monoestable externo.
Analizar diferentes mtodos que permitan almacenar un cdigo de 4 bits en un
microcontrolador PIC para posteriormente realizar comparaciones.

3. Resumen
La presente prctica muestra el modelado de un detector de cdigo de 4 bits, el cdigo a comparar
debe ser previamente establecido, es decir, cada vez que el programa es iniciado se debe ingresar
el cdigo a ser comparado mediante el (pin_a1) y una seal de reloj para este caso el (pin_a0).
Una vez que el cdigo fue establecido se podr ingresar un nuevo cdigo de 4 bits mediante el
(pin_a2) y la seal de reloj, se realiza una comparacin entre ambos cdigos; si el dato ingresado
es igual al dato que guardamos la salida del (pin_c4) se activa en alto (cdigo correcto), caso
contrario se activara el (pin_c5) indicando que el cdigo ingresado es incorrecto.
Si el cdigo ingresado es incorrecto, se podr ingresar un nuevo cdigo para poder ser comparado
con cdigo preestablecido en el inicio del programa, solamente cuando el programa sea reseteado
se podr preestablecer un nuevo cdigo.

4. Introduccin

En la lgica secuencial las salidas estn determinadas no slo por las entradas sino tambin
por la secuencia de entradas que condujeron al estado existente, las que precedieron. En
otras palabras el circuito posee memoria, la salida en cualquier momento est determinada
por las entradas presentes y por la informacin almacenada en los elementos de memoria. La
informacin almacenada en la memoria determina el estado del circuito. La mayora de los
sistemas digitales requieren la funcin de almacenamiento, cuyo objetivo es mantener los
datos binarios durante un periodo de tiempo. Algunos dispositivos de almacenamiento se usan
para almacenamiento temporal y otros para almacenamiento permanente y pueden
memorizar un bit o un grupo de bits.

5. Fundamentacin Terica

Registros de desplazamiento.

Los registros de desplazamiento estn formados por un conjunto de flip-flops, y son muy importantes
en las aplicaciones que precisan almacenar y transferir datos dentro de un sistema digital.
Un registro es un circuito digital con dos funciones bsicas, almacenamiento y movimiento de
datos. Se diferencian de las memorias, en que el tiempo de almacenamiento es menor. La
capacidad de desplazamiento de un registro es la que permite el movimiento de los datos de una etapa
a otra dentro del registro.
Los dos tipos de registros de desplazamiento son serie y paralelo. En un registro paralelo los bits se
almacenan simultneamente a partir de lneas paralelas, mientras que en un registro de
desplazamiento serie, los bits se almacenan de uno a uno.
Estos dos tipos se emplean, entre otras cosas, para transformar palabras de informacin en paralelo
a una sucesin de bits sobre una lnea, es decir, datos serie (registro de desplazamiento
paralelo-serie), o una sucesin de datos en serie en una palabra de datos en paralelo (registro
de desplazamiento serie- paralelo).

Figura 1: Funcionamiento de un registro de desplazamiento

REGISTRO SERIE-PARALELO
Es aqul que convierte un string (cadena) de datos binarios en formato serie a un formato paralelo
donde dichos datos se encuentran sincronizados con una seal de reloj externa.
Un uso popular es dentro de la parte de recepcin de un modem de comunicaciones donde la seal
recibida es un tren de bits los cuales deben ser pasados a un formato paralelo a fin de poder ser
procesados convenientemente por un microprocesador, el cual slo trabaja con seales binarias en
dicho formato paralelo.
Est basado en una cadena de Flip-Flops tipo D. Si el RD es de N bits, el string de bits se hace
entrar por el primero FF y luego de N ciclos de reloj se tiene en las N salidas de los FFs el dato
ya convertido a paralelo.

REGISTRO SERIE-PARALELO
Es aqul que convierte un string (cadena) de datos binarios en formato serie a un formato paralelo
donde dichos datos se encuentran sincronizados con una seal de reloj externa.
Un uso popular es dentro de la parte de recepcin de un modem de comunicaciones donde la seal
recibida es un tren de bits los cuales deben ser pasados a un formato paralelo a fin de poder ser
procesados convenientemente por un microprocesador, el cual slo trabaja con seales binarias en
dicho formato paralelo.
Est basado en una cadena de Flip-Flops tipo D. Si el RD es de N bits, el string de bits se hace
entrar por el primero FF y luego de N ciclos de reloj se tiene en las N salidas de los FFs el datoya
convertido a paralelo.

6. Materiales y Equipos
MODELADO DE MQUINAS SECUENCIALES

PIC 16F887. Fuente de 5V DC.


DIP-Switch Quemador de PIC.
1 C.I 555 Software PIC C
10 resistencias de Compiler.
220. Software PICkit.
7. Diagramas y Esquemas

Figura 2: Sistema de deteccin de cdigo preestablecido


Figura 3: Almacenamiento e ingreso del dato a comparar.

Figura 4: Indicador del dato errneo ingresado

Figura 5: Indicador del dato correcto ingresado


8. Desarrollo

1. Diseamos el modelado de sistema de cdigo preestablecido ingresando el dato (pin_a1)


en forma serial en un registro de desplazamiento.
2. Enviamos el dato (pin_a2) para proseguir a comparar el dato que se va a ingresar
nuevamente por el pin_a1 del microcontrolador.
3. Comparamos el dato guardado con el dato ingresado (pin_a3), si el dato ingresado es igual
al dato que guardamos la salida del pin_c4 se activa en alto, caso contrario se activara el
pin_c5 indicando que el cdigo ingresado es incorrecto.
4. Analizamos los parmetros necesarios para la programacin del modelado de la maquina
secuencial como: fusibles, frecuencia de operacin, configuracin de puertos de I/O, etc.
5. Desarrollo del cdigo en PIC C Compiler en Mealy y Moore
6. Simulacin e implementacin de los modelados de mquinas secuenciales.

Cdigo:

#include <16f887.h> X=input(pin_a1);


#fuses XT,NOWDT output_bit(pin_b1,X);
#use delay(clock=4000000)
#use standard_io(a) delay_ms(tiempo);
#use standard_io(b)
#use standard_io(c) X=input(pin_a1);
#use standard_io(d) output_bit(pin_b2,X);
#use standard_io(e) Q2=X;
delay_ms(tiempo);
// detector de cdigo de cuatro bits
previamente establecido.
int1 clock, X,A,B,C,D,Q0,Q1,Q2,Q3,Y; X=input(pin_a1);
int16 tiempo; output_bit(pin_b3,X);
void main () Q3=X;
{ output_high(pin_d1);
set_tris_d (0b00000000); //salidas delay_ms(tiempo);
set_tris_c (0b00000000); //salidas
set_tris_b (0b00000000); //salidas pregunta:
set_tris_a (0b11111111); //entradas
if(input(pin_a2)==1 && clock==1)
//Lectura de cdigo de entrada
//A=input(pin_b0); {
//B=input(pin_b1); conteo:
//C=input(pin_b2); if (clock==0)

output_d(0b00000000); X=input(pin_a1);
output_c(0b00000000); output_bit(pin_c0,X);
output_b(0b00000000); A=X;
delay_ms(tiempo);
tiempo=3000;
while (true) X=input(pin_a1);
{ output_bit(pin_c1,X);
tiempo=3000; B=X;
clock=0; delay_ms(tiempo);
delay_ms(tiempo);
clock=1; X=input(pin_a1);
X=input(pin_a1); output_bit(pin_c2,X);
output_bit(pin_b0,X); C=X;
Q0=X; delay_ms(tiempo);
delay_ms(tiempo);
Q1=X;
X=input(pin_a1); output_low(pin_c4);
output_bit(pin_c3,X); output_high(pin_c5);
D=X; delay_ms(500);
output_high(pin_d1); output_low(pin_c5);
delay_ms(tiempo); goto conteo;
activar: }
if (input(pin_a3)==1 && clock==1)
{ //compara el dato almacenado con el ingreso goto activar;
if(Q0==A && Q1==B && Q2==C && }
Q3==D ) else{goto activar;}
{ goto pregunta;
//activa la salida del dato correcto }
output_high(pin_c4);
output_low(pin_c5);
delay_ms(500); else
output_low(pin_c4); goto pregunta;
goto conteo;
} }

else{ //activa la salida de dato erroneo }

9. Anlisis de Resultados
El programa funciona de manera adecuada, nicamente se generaron inconvenientes en el momento
del ingreso del cdigo que deba ser comparado, esto se debi a que la seal de reloj externa no estaba
en sincrona con la seal interna del microcontrolador PIC 16F887; una vez superado este
inconveniente se logr un correcto funcionamiento.
El programa tiene la capacidad de comparar dos cdigos de 4 bits cada uno e indicar si los cdigos
son iguales o no mediante la activacin de dos salidas, una para indicar que los cdigos son iguales y
otra para indicar que no lo son.

10. Conclusiones
El compilador Pic C Compliler es una herramienta poderosa que permite programar
microcontroladores PIC reduciendo el tiempo de programacin y complejidad en los
algoritmos.
Para el caso exclusivo de esta prctica no es necesario declarar compuertas nand ya que no
necesitamos flip-flops, para ver si los cdigos son iguales basta con realizar comparaciones
entre los dos cdigos.
Para que la comparacin de los cdigos sea ms fcil de realizar se guarda cada cdigo en un
vector, y la comparacin se realiza entre vectores.

11. Recomendaciones
Configurar una seal de reloj externa de tal manera que este en sincrona con el reloj interno del
microcontrolador PIC 16F887 para evitar errores en el momento del ingreso de los cdigos y en el
funcionamiento en general del programa.
Tomar en cuenta la definicin de estados

12. Bibliografa

[1] Sistemas Digitales. R. Tocci, N. Widmer, G. Moss. Ed. Prentice Hall.


[2] Diseo Digital. M. Morris Mano. Ed. Prentice Hall. 3ra edicin.
[3] Diseo de Sistemas Digitales. John Vyemura. Ed. Thomson.
[4] Diseo Lgico. Antonio Ruiz, Alberto Espinosa. Ed. McGraw-Hill.

Vous aimerez peut-être aussi