10
“Universidad de las Fuerzas Armadas” Departamento de Eléctrica y Electrónica Microcontroladores Proyecto primer parcial Integrantes: Diego Guzmán José Martínez Sangolquí, 4 de Diciembre del 2014

Grupo 6 Proyecto1 2188 Uc

Embed Size (px)

DESCRIPTION

laboratorio

Citation preview

  • Universidad de las Fuerzas Armadas

    Departamento de Elctrica y Electrnica

    Microcontroladores

    Proyecto primer parcial

    Integrantes: Diego Guzmn

    Jos Martnez

    Sangolqu, 4 de Diciembre del 2014

  • Ttulo: Proyecto primer parcial Serie de Fibonacci

    Objetivo:

    General: Familiarizar los conocimientos aprendidos anteriormente con el

    microcontrolador PIC16F877A.

    Especficos:

    Identificar y facilitar la programacin de retardos en lenguaje ensamblador

    Simular e implementar la serie de Fibonacci en un circuito con

    microcontrolador PIC16F877A

    Marco terico del algoritmo de conversin utilizado

    Algoritmo iterativo: Este algoritmo se basa en realizar n sumas consecutivas para obtener la funcin

    deseada, considerando solo dos nmeros consecutivos de la sucesin de Fibonacci en cada paso

    considerando el par (, 1) para que su siguiente para que su siguiente par sea (1, 1 + )

    donde la suma 1 + = es decir que el algoritmo cumplir:

    Que para una funcin de Fibonacci :

    = 0

    1 = 1

    Para = hasta = hacemos

    = + 1

    = 1

    1 =

    El resultado se hallara en .

    Pero en nuestro caso como la salida ser multiplexada cada variable ser divida en tres partes que son

    UNIDADES

    DECENAS

    CENTENAS

    Por lo tanto se realizara el procedimiento estudiado anteriormente para :

    = 0

    = 0

    = 0

    Para :

    1 = 1

    1 = 0

    1 = 0

  • Para :

    = + 1

    = + 1

    = + 1

    Para lo cual si la suma de las unidades que cada variable sobrepasa el nmero 10 tendremos:

    = 10

    Por lo que en las decenas tendramos:

    = 1 +

    Y en el caso de que las decenas sobrepasen de 10 tendremos:

    = 10

    Por lo que en las decenas tendramos

    = 1 +

    As sucesivamente hasta completar el rango pedido de nmeros entre 0 a 377

    Diagrama de bloques

    Valores de registro de configuracin

    PortC = b00000000

  • Diagrama de flujo

  • Clculo de retardo (% error)

    Trabajando con

    1 = 255

    2 = 255

    3 = 255

    En todos los contadores tenemos que el tiempo en realizar todo el retardo ser de

    236.11

    Realizamos la regla de tres para hallar el valor de 3 en 2 :

    255 236.11

    4

    = 4.32

    Como no es un valor entero aproximamos a = 4

  • 255 236.11

    4

    = 3.70

    Por lo tanto el porcentaje de error ser:

    % =4 3.70

    4 100

    % = 7.5 %

    Programa

    ;TITULO: PROYECTO PRIMER PARCIAL ;DESCRIPCION: SERIE DE FIBONACCI ;AUTOR: DIEGO GUZMAN; JOSE MARTINEZ ;FECHA: 04/12/2014 ;CONSIDERACIONES ESPECIALES: MULTIPLEXACION DE SALIDAS

    list p=16F877A ;Tipo de procesador INCLUDE "P16F877A.Inc" ;Librerias de registros del PIC __CONFIG(0x3f71) ;Configura la palabra de control UNI EQU 0x20 DEC EQU 0x21 CENT EQU 0x22 UNI1 EQU 0x23 DEC1 EQU 0x24 CEN1 EQU 0x25 CONTADOR EQU 0x26 CONTADOR1 EQU 0x27 CONTADOR2 EQU 0x28 CENTENAS EQU 0x29 DECENAS EQU 0x30 UNIDADES EQU 0x31 DISPLAYC EQU 4 DISPLAYD EQU 5 DISPLAYU EQU 6 ORG 00 GOTO INICIO ORG 05 INICIO BSF STATUS,RP0 MOVLW 00H MOVWF TRISC BCF STATUS,RP0 GOTO SALTOINICIO

  • SALTOINICIO MOVLW 00H MOVWF CENT MOVWF DEC MOVWF UNI MOVWF CEN1 MOVWF DEC1 MOVLW 01H MOVWF UNI1 GOTO DESARROLLO DESARROLLO MOVF CENT,0 MOVWF CENTENAS MOVF DEC,0 MOVWF DECENAS MOVF UNI,0 MOVWF UNIDADES CALL SALIDA MOVF CEN1,0 MOVWF CENTENAS MOVF DEC1,0 MOVWF DECENAS MOVF UNI1,0 MOVWF UNIDADES CALL SALIDA SALTO1 MOVF UNI,0 ADDWF UNI1,0 MOVWF UNIDADES MOVF DEC,0 ADDWF DEC1,0 MOVWF DECENAS MOVF CENT,0 ADDWF CEN1,0 MOVWF CENTENAS CALL SERIEYCONTROL CALL SALIDA MOVLW .3 SUBWF CENTENAS,0 BTFSS STATUS,C GOTO SALTO2 GOTO FINAL SALTO2 MOVF CEN1,0 MOVWF CENT CLRF CEN1 MOVF DEC1,0 MOVWF DEC CLRF DEC1

  • MOVF UNI1,0 MOVWF UNI CLRF UNI1 MOVF CENTENAS,0 MOVWF CEN1 MOVF DECENAS,0 MOVWF DEC1 MOVF UNIDADES,0 MOVWF UNI1 GOTO SALTO1 FINAL MOVLW b'11111111' MOVWF PORTC GOTO FINAL SERIEYCONTROL MOVLW .10 SUBWF UNIDADES,0 BTFSS STATUS,C GOTO SALTO6 GOTO SALTO4 SALTO4 MOVWF UNIDADES INCF DECENAS,1 MOVLW .10 SUBWF DECENAS,0 BTFSS STATUS,C GOTO SALTO6 GOTO SALTO5 SALTO5 MOVWF DECENAS INCF CENTENAS,1 SALTO6 RETURN SALIDA MOVLW .4 MOVWF CONTADOR SALTODISP MOVF UNIDADES,0 MOVWF PORTC BSF PORTC,DISPLAYU CALL RETARDO MOVF DECENAS,0 MOVWF PORTC BSF PORTC,DISPLAYD CALL RETARDO MOVF CENTENAS,0 MOVWF PORTC BSF PORTC,DISPLAYC CALL RETARDO

  • DECFSZ CONTADOR,1 GOTO SALTODISP RETARDO MOVLW .255 MOVWF CONTADOR1 LAZO1 MOVLW .255 MOVWF CONTADOR2 LAZO2 DECF CONTADOR2,1 BTFSS STATUS,Z GOTO LAZO2 DECF CONTADOR1,1 BTFSS STATUS,Z GOTO LAZO1 RETURN END

    Diagrama elctrico

  • Conclusiones

    Los conocimientos obtenidos tanto en digitales como en microprocesadores, nos

    ayudan a entender de una mejor manera como trabaja el microcontrolador y para

    que nos sirve cada uno de sus pines.

    El lenguaje ensamblador se torna difcil a simple vista pero con un buen proceso

    de conocimiento del problema a implementar y una perfecta aplicacin de las 35

    instrucciones para este microprocesador.

    La programacin de retardo en lenguaje ensamblador nos ayuda a entender cmo

    funciona una subrutina y como dar una importancia a esta, teniendo que emplear

    matemtica bsica para calcular el retardo con contadores

    La multiplicacin que se implement en este circuito ayudo a reducir el uso de

    puertos a solo uno sabiendo que el numero deseado era mayor a la capacidad

    mxima