Está en la página 1de 5

1.

Tema
Manejo de puertos (Secuencia de Fibonacci)

2. Objetivos

Diseñar un programa que realice la serie de Fibonacci y que muestre el resultado de la 〖11〗^va
iteración, además implementar el circuito para mostrar el resultado por el Puerto B, mediante LEDS.

3. Marco teórico

Sucesión de Fibonacci

Leonardo de Pisa, más conocido como Fibonacci, construyo por primera vez la sucesión que lleva su
nombre:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ….

Propiedades:

 Cada término a partir del tercero, se obtiene sumando los dos anteriores.
 El coeficiente entre dos términos consecutivos de la sucesión de Fibonacci se aproxima al
número de oro.
 Los números consecutivos de Fibonacci son primos entre sí.

Regla:

La sucesión de Fibonacci se puede escribir como una regla, la cual es:

𝒙𝒏 = 𝒙𝒏−𝟏 + 𝒙𝒏−𝟐

Donde:

𝒙𝒏 es el término en posición “n”

𝒙𝒏−𝟏 es el termino anterior (n-1)

𝒙𝒏−𝟐 es el anterior a ese (n-2)

Por ejemplo el sexto término se calcularía así:


𝒙𝟔 = 𝒙𝟔−𝟏 + 𝒙𝟔−𝟐 = 𝒙𝟓 + 𝒙𝟒 = 𝟓 + 𝟑 = 𝟖

4. Diagrama de bloques

µ𝑐
8
Puerto B

16𝐹877𝐴
Salidas

Oscilador
4𝑀𝐻𝑧
5. Tabla de asignación de registros
Ítem Descripción Símbolo Valor Acción

1 Configuración TRISB 00H Configuración


de Puerto B
como salida.

2 Escritura de PORTB Escritura


datos Puerto B

3 PORTC Lectura

4 PORTB Escritura

6. Valor de registros de configuración


Ítem Símbolo Valor

1 TRISC FFH

2 TRISB 00H

RP0=1
3 STATUS
RP1=0

RP0=0
4 STATUS
RP1=0

7. Diagrama de flujo
8. Conclusiones

 Para llevar a cabo la sucesión de Fibonacci desarrollada mediante el programa de MPLABX,


no se necesita de entradas ya que al realizar el inicio de dicha sucesión esta comienza
automáticamente a desarrollarse hasta la iteración planteada, observando su resultado en
los led’s, mediante la salida del puerto b.

9. Diagrama electrónico
10. Programa
list p=16f877A ; tipo de procesador

INCLUDE "P16F877A.INC" ;libreria de registros

__CONFIG(0x3F71);

dato EQU 0x20

ORG 00 ;indica desde que dirección va a empezar a grabar las instrucciones del
programa

GOTO INICIO ;salta a inicio

ORG 05 ;indica la dirección donde va a empezar a grabar las instrucciones

INICIO bsf STATUS,RP0 ;pasa al banco 1 ; pone en 1 RP0 para seleccionar el banco

BCF STATUS,RP1 ;pone en 0 RP1 para seleccionar el banco, completa, banco1


MOVLW 0x00 ;guarda en w -> cero,

MOVWF TRISB ;mueve cero a TRISB para que el puerto B sea de salida

MOVLW 0xFF ;guarda en w -> 255,

MOVWF TRISC ;mueve cero a TRISC para que el puerto C sea de entrada

BCF STATUS,RP0 ;pasa al banco 0 ; pone en 0 RP0 para seleccionar el banco

BCF STATUS,RP1 ;pone en 0 RP1 para seleccionar el banco, completa, banco 0

LAZO MOVF PORTC,0 ;mueve el dato del puerto C, lo almacena en W

MOVWF PORTB ;mueve el contenido de W, al puerto B

GOTO LAZO ;salta a lazo

END ;finaliza el programa

También podría gustarte