Upload
diegoguzman
View
218
Download
6
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