Ensamblador - Fibonacci

 
Vista:

Fibonacci

Publicado por Antonio (1 intervención) el 04/04/2008 21:14:54
Quetal si alguien pudiese ayudarme con un programa de la SERIE DE FIBONACCI en mplab con la pic PIC16F84A la verdad no tengo mucha nocion de este lenguaje por su atencion gracias

yamvoooy toquen metal
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Fibonacci

Publicado por MSH (120 intervenciones) el 05/04/2008 17:35:28
Hay una rutina sencilla que viene en el libro del microcontrolador PIC16F84 de RA-MA editorial

; Los términos de la secuencia de Fibonacci son: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
; En esta secuencia cada número es la suma de los dos términos que le preceden. Por ejemplo,
; el término que sigue al 55 será 34 + 55= 89.
;
; Obtener el último término de la secuencia de Fibonacci menor de 256 y sacar ese valor
; por el puerto de salida.
;
; ZONA DE DATOS **********************************************************************

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>

CBLOCK 0x0C
Penultimo ; Ocupa la posición 0x0C de RAM.
Ultimo ; Ocupa la posición 0x0D de RAM.
Suma ; Ocupa la posición 0x0E de RAM.
ENDC

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
clrf Penultimo ; Asigna 0 al penúltimo término de Fibonacci y
movlw .1 ; 1 al último. Son las "semillas".
SigueSumando
movwf Ultimo ; Asigna (W) al (Ultimo) término de Fibonacci.
addwf Penultimo,W ; Suma términos último y penúltimo.
movwf Suma ; (Suma)=(Penultimo)+(Ultimo).
btfsc STATUS,C ; ¿C=0?, ¿(W)<256?
goto Fin ; No, por tanto ha excedido del máximo y sale.
movf Ultimo,W ; Sí, por tanto el (Ultimo) pasa al (Penultimo).
movwf Penultimo
movf Suma,W ; Y la (Suma) al (Ultimo).
goto SigueSumando
Fin movfw Ultimo ; En (Ultimo) el término de Fibonacci buscado.
movwf PORTB ; Resultado se visualiza por el puerto de salida.
sleep

END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar