Sunteți pe pagina 1din 10

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

= 3.70
Por lo tanto el porcentaje de error ser:
% =

4 3.70
100
4

% = 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
DEC
CENT
UNI1
DEC1
CEN1
CONTADOR
CONTADOR1
CONTADOR2
CENTENAS
DECENAS
UNIDADES
DISPLAYC
DISPLAYD
DISPLAYU

INICIO

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x30
0x31
4
5
6

ORG
GOTO
ORG
BSF
MOVLW
MOVWF
BCF
GOTO

00
INICIO
05
STATUS,RP0
00H
TRISC
STATUS,RP0
SALTOINICIO

SALTOINICIO

MOVLW
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVLW
MOVWF
GOTO
MOVF
MOVWF
MOVF
MOVWF
MOVF
MOVWF
CALL
MOVF
MOVWF
MOVF
MOVWF
MOVF
MOVWF
CALL

00H
CENT
DEC
UNI
CEN1
DEC1
01H
UNI1
DESARROLLO
CENT,0
CENTENAS
DEC,0
DECENAS
UNI,0
UNIDADES
SALIDA
CEN1,0
CENTENAS
DEC1,0
DECENAS
UNI1,0
UNIDADES
SALIDA

SALTO1

MOVF
ADDWF
MOVWF
MOVF
ADDWF
MOVWF
MOVF
ADDWF
MOVWF
CALL
CALL
MOVLW
SUBWF
BTFSS
GOTO
GOTO

UNI,0
UNI1,0
UNIDADES
DEC,0
DEC1,0
DECENAS
CENT,0
CEN1,0
CENTENAS
SERIEYCONTROL
SALIDA
.3
CENTENAS,0
STATUS,C
SALTO2
FINAL

SALTO2

MOVF
MOVWF
CLRF
MOVF
MOVWF
CLRF

CEN1,0
CENT
CEN1
DEC1,0
DEC
DEC1

DESARROLLO

MOVF
MOVWF
CLRF
MOVF
MOVWF
MOVF
MOVWF
MOVF
MOVWF
GOTO

UNI1,0
UNI
UNI1
CENTENAS,0
CEN1
DECENAS,0
DEC1
UNIDADES,0
UNI1
SALTO1

MOVLW
MOVWF
GOTO

b'11111111'
PORTC
FINAL

SERIEYCONTROL
MOVLW
SUBWF
BTFSS
GOTO
GOTO
SALTO4
MOVWF
INCF
MOVLW
SUBWF
BTFSS
GOTO
GOTO
SALTO5
MOVWF
INCF
SALTO6
RETURN

.10
UNIDADES,0
STATUS,C
SALTO6
SALTO4
UNIDADES
DECENAS,1
.10
DECENAS,0
STATUS,C
SALTO6
SALTO5
DECENAS
CENTENAS,1

FINAL

SALIDA
MOVLW
MOVWF

.4
CONTADOR

MOVF
MOVWF
BSF
CALL
MOVF
MOVWF
BSF
CALL
MOVF
MOVWF
BSF
CALL

UNIDADES,0
PORTC
PORTC,DISPLAYU
RETARDO
DECENAS,0
PORTC
PORTC,DISPLAYD
RETARDO
CENTENAS,0
PORTC
PORTC,DISPLAYC
RETARDO

SALTODISP

DECFSZ
GOTO

CONTADOR,1
SALTODISP

MOVLW
MOVWF
MOVLW
MOVWF
DECF
BTFSS
GOTO
DECF
BTFSS
GOTO
RETURN
END

.255
CONTADOR1
.255
CONTADOR2
CONTADOR2,1
STATUS,Z
LAZO2
CONTADOR1,1
STATUS,Z
LAZO1

RETARDO

LAZO1
LAZO2

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

S-ar putea să vă placă și