Está en la página 1de 6

INSTITUTO POLITECNICO NACIONAL

UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y
CIENCIAS SOCIALES Y ADMINISTRATIVAS

Ingeniería en Informática

Dispositivos programables

Práctica 2 Decodificador secuencial
PIC18F4550

Participantes:

Profesor: Ponce Martínez Araceli

Secuencia:

Fecha de realización:

es necesario configurar un retardo basado en la frecuencia en la que se desee operar. es decir ? = ????=tiempo máquina. De acuerdo a la información del fabricante se sabe que por defecto el PIC 18F4550 trabaja a una F=1MHz y que la frecuencia en Hz=ciclos/segundos. ? ? Para el periodo ? = ????? ?? ??. para así ejecutar las instrucciones con el tiempo deseado y así también poderlo repetir cuantas veces sea necesario. por lo que podemos decir que cada instrucción de ejecuta en 0. INTRODUCCION En el PIC18F4550 para poder realizar un circuito secuencial. y se mandan al display cada una de ellas sin olvidar llamar al retardo entre cada uno de los números. RETARDO5 MOVLW D'5'. en esta ocasión se definirán cada uno de los números a mostrar y se (#DEFINE CERO B'0111111'… #DEFINE QUINCE B'1110001'). Ya después de esto se obtiene al multiplicar los 4nseg por 25000 para obtener 100ms. obteniendo que t=4nSeg. pero como el PIC18F4550 no puede manejar tantos registros se haces ciclos del tamaño del registro del PIC18F4550 en este caso como máximos tenemos 250 registros y una vez obtenidas las 100 repeticiones de las instrucciones se obtienen los 100ms y nuevamente se anidan todo este retardo en uno que lo repita 5 veces para así lograr 500ms. sirve para hacer un ciclo de repeticiones de 100ms MOVWF CONT2 RETARDO61 MOVLW D'61' se le asignan el 81 y de ahí se repetirá eso cada instrucción 81 Una vez obtenido el retardo que se necesita se procede a realizar el código necesario para mostrar el código hexadecimal.OBJETIVOS Realizar un circuito secuencial con un retardo de 500 MS.000004s. con esto se logra el medio segundo repite los 100ms 5 veces llamando otro retardo sobre retardo MOVWF CONT3 RETARDO100 MOVLW D'100'. . Para poder realizar un retardo es necesario conocer en cuanto tiempo se ejecutan las instrucciones que irán en el ciclo correspondiente. que muestre el código hexadecimal.

El display se apaga para despues mostrar el siguiente numero MOVWF PORTB CALL RETARDO_500MS MOVLW UNO MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW DOS . Los 3 contadores necesarios para el retardo CONT_2 CONT_3 ENDC #DEFINE CERO #DEFINE UNO #DEFINE DOS #DEFINE TRES #DEFINE CUATRO #DEFINE CINCO #DEFINE SEIS #DEFINE SIETE #DEFINE OCHO #DEFINE NUEVE #DEFINE DIEZ #DEFINE ONCE #DEFINE DOCE #DEFINE TRECE #DEFINE CATORCE #DEFINE QUINCE #DEFINE NADA B'0111111' . Se declara el Puerto B como salida INICIO MOVLW CERO .Desarrollo: Obteniendo el código (. Se definen cada uno de los números B'0000110' B'1011011' B'1001111' B'1100110' B'1101101' B'1111101' B'1000111' B'1111111' B'1100111' B'1110111' B'1111100' B'0111001' B'1011110' B'1111001' B'1110001' B'0000000' . PALABRA DE CONFIGURACION ORG 0X0000 CLRF PORTB .INC> CBLOCK H'0' . Se llama al retardo de 500ms MOVLW NADA . Se cita los números del hedeximal MOVWF PORTB . mediante mplab . PROGRAMA QUE MUESTRA EL CODIGO HEXADECIMAL CON 500 MS DE RETARDO LIST P=18F4550 #INCLUDE <P18F4550.Se limpia el LAT del Puerto B CLRF TRISB .se limpia el puerto B CLRF LATB .Se manda al puerto B CALL RETARDO_500MS.asm). Primera posición de memoria donde empezaran las instrucciones CONT_1 .

MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW TRES MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW CUATRO MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW CINCO MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW SEIS MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW SIETE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW OCHO MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW NUEVE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW DIEZ MOVWF PORTB CALL RETARDO_500MS MOVLW NADA .

MOVWF CONT_2 RETARDO_1MS NOP MOVLW D'81' . Decrementa al contador 2 GOTO RETARDO_1MS .Decrementa de 1 en 1 y si vale 0 se brinca ala instrucción siguiente GOTO REPETIR . Se repite 5 veces el cont _3 y por cada repetición son 100ms MOVWF CONT_3 RETARDO_100MS MOVLW D'100' . Se repite 100 veces el cont_2 y por cada repetición es un ms.Se va a la etiqueta repetir DECFSZ CONT_2 . Se repite 81 veces el cont_1 que es equivalente a un ms.no se realiza ninguna instrucción solo consume un ciclo de instrucción DECFSZ CONT_1 . Se va a inicio para otra vez mostrar el código hexadecimal RETARDO_500MS MOVLW D'05' . Se va al retardo 1 .MOVWF PORTB CALL RETARDO_500MS MOVLW ONCE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW DOCE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW TRECE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW CATORCE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS MOVLW QUINCE MOVWF PORTB CALL RETARDO_500MS MOVLW NADA MOVWF PORTB CALL RETARDO_500MS GOTO INICIO . MOVWF CONT_1 REPETIR NOP .

Se va al retardo 1 RETURN . Otro punto importante de esta práctica fue como aplicamos el retardo para poder realizar el código secuencialmente al ritmo de 500 ms. y configurar la que cubra nuestras necesidades si no está la frecuencia deseada. y como utilizamos la instrucción NOP para poder consumir un tiempo de instrucción. . Decrementa al contador 3 GOTO RETARDO_1MS .DECFSZ CONT_3 . Termina el programa CONCLUSIÓN: En esta práctica aprendimos como se construye un retardo y como obtener el tiempo de retardo que se necesita y emplearlo en un circuito en este caso el tiempo intermedio de retardo para mostrar los números en hexadecimal (500ms). Recordemos que es necesario saber a qué frecuencia está trabajando nuestro PIC18F4550 para poder obtener el tiempo en que se realiza cada instrucción. Retorna END .