Documente Academic
Documente Profesional
Documente Cultură
Microcontroladores
Proyecto primer parcial
Integrantes: Diego Guzmn
Jos Martnez
Sangolqu, 4 de Diciembre del 2014
UNIDADES
DECENAS
CENTENAS
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
Diagrama de flujo
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