Informe Matrices Con Mplab

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

UNIVERSIDAD AUTÓNOMA DE BUCARAMANGA PROGRAMA DE INGENIERÍA MECATRÓNICA

INFORME LABORATORIO 1 – MICROCONTROLADORES


William Fernando Quintero Quintana U00104379 aprovechando el tiempo del ciclo de máquina. El
concepto y nombre de la arquitectura deviene de
1. INTRODUCCIÓN: la computadora
La práctica para desarrollar tiene como fin el MARK1, construida en la Universidad de
desarrollo e implementación de un programa en Harvard en 1944.
lenguaje assembler.
- PIC
2. OBJETIVO GENERAL Los PIC son una familia de microcontroladores
 Desarrollar un programa que, usando dos desarrollados y fabricados por la empresa,
matrices, sea capaz de realizar la operación de la Microchip Technologies Inc., los cuales cuentan
multiplicación entre ambas. con una tecnología tipo RISC (Reduced Instruction
Set Computer) y poseen en su arquitectura
3. OBJETIVOS ESPECÍFICOS interna características especiales que varían
- Realizar el pseudocódigo del según el modelo de PIC que deseamos utilizar.
programa.
- Realizar los diagramas de flujo Los microcontroladores PIC comúnmente más
- Realizar el código del programa en utilizados son los siguientes:
lenguaje assembler en el programa de • PIC12C508 y PIC12C509, tienen memoria de
desarrollo para probar su función. programa EPROM, oscilador interno, y son muy
utilizados en diseños de pequeños circuitos.
3. MARCO TEÓRICO • PIC16F84A, tiene memoria de programa tipo
FLASH, oscilador externo, 13 pines I/O entre
ARQUITECTURA INTERNA DE LOS otras características que estaremos estudiando
MICROCONTROLADORES. a lo largo del contenido de esta obra. Este PIC ha
los microcontroladores están formados por varios resultado ser uno de los más populares de toda
bloques. Dentro de ellos existe, como elemento la serie.
principal, la CPU, que se interconecta con sus • PIC16F87X, incluyen un gran número de
periféricos para formar lo que se conoce como mejoras en comparación con el PIC16F84,
arquitectura interna. Esta puede ser de dos tipos: debido principalmente a que cuentan con un
Von Neumann o Harvard. numero de pines I/O superior a éste, además de
otras características relevantes. Por ejemplo,
- ARQUITECTURA VON NEUMANN con esta serie de microcontroladores contamos
Fue desarrollada en 1949 por el profesor John con una mayor capacidad en cuanto a memoria
von Neumann. Según esta arquitectura, existe un de programa y memoria de datos.
bus de datos que liga la CPU con la memoria de
datos y de programa por el cual viajan datos e - LENGUAJE ENSAMBLADOR:
instrucciones. Este concepto fue muy útil. El lenguaje ensamblador, es un lenguaje de
en las primeras décadas de las computadoras, programación de bajo nivel. Consiste en un
pero al incrementarse la cantidad de datos por conjunto de nemónicos que representan
procesar, la velocidad de procesamiento se instrucciones básicas para los computadores,
redujo. Rápidamente, la arquitectura se saturó, microprocesadores, microcontroladores y otros
ya que el bus de datos debía compartirse con los circuitos integrados programables. Implementa
datos y las una representación simbólica de los códigos de
instrucciones, lo que generaba un cuello de máquina binarios y otras constantes necesarias
botella. para programar una arquitectura de procesador y
constituye la representación más directa del
- ARQUITECTURA HARVARD código máquina específico para cada arquitectura
Esta arquitectura conectó la CPU hacia su legible por un programador. Cada arquitectura de
memoria mediante dos buses distintos: uno de procesador tiene su propio lenguaje ensamblador
datos y otro de instrucciones. De este modo, el que usualmente es definida por el fabricante de
ancho del bus de instrucciones no está limitado hardware, y está basada en los nemónicos que
por el de datos, y el procesador puede recibir simbolizan los pasos de procesamiento, los
instrucciones por caminos diferentes, registros del procesador, las posiciones de
UNIVERSIDAD AUTÓNOMA DE BUCARAMANGA PROGRAMA DE INGENIERÍA MECATRÓNICA
INFORME LABORATORIO 1 – MICROCONTROLADORES
memoria y otras características del lenguaje. Un
lenguaje ensamblador es por lo tanto específico 5. DESARROLLO DE LAS MATRICES.
de cierta arquitectura de computador física. 6. FLUJOGRAMA USADO PARA LA CREACION DE
MATRICES.
PROGRAMACIÓN
Un programa es una secuencia de
instrucciones, expresiones, funciones,
comandos y declaraciones para realizar
aplicaciones en ingeniería.

4. PLANTEAMIENTO
MÉTODOS Y ACTIVIDADES
Para la practica se tomó en cuenta el trabajo
realizado de las clases el cual comienza con las
operaciones básicas que redondean la
multiplicación, la división y la potencia, que estas
fueron de ayuda para posteriormente trabajar los
vectores y por consiguiente las matrices.

PSEUDOCÓDIGO OPERACIONES BÁSICAS


MUlTIPLICACIÓN (REALIZADO EN CLASE) PSEUDO CÓDIGO MATRICES:
CLRF i LIST P=16F877A
CLRF R_M RADIX HEX
MULTI INCLUDE <P16F877A.INC>
MOVF i,W
SUBWF Y,W CBLOCK 0X60
BTFSC STATUS,Z a_ini
GOTO RESUL b_ini
MOVF R_M,W c_ini
ADDWF X,W i
AUX
MOVWF R_M
NA
INCF i
MB
GOTO MULTI.
Q ; CONTADOR
R_M ; VARIABLE GUARDA RESULDADOS
FLUJOGRAMA USADO PARA LAS OPERACIONES
X ; NUMERO A MULTIPLICAR
BÁSICAS. [para guiarme]
Y ; NUMERO A MULTIPLICAR
RESUL
ENDC

BANCO0 MACRO

BCF STATUS,RP0 ;LIMPIAMOS EL REGISTRO RP0


BCF STATUS,RP1 ;LIMPIAMOS EL REGISTRO RP1
ENDM

BANCO1 MACRO

BSF STATUS,RP0
BCF STATUS,RP1
ENDM

[Captura del diagrama compartido en drive]


UNIVERSIDAD AUTÓNOMA DE BUCARAMANGA PROGRAMA DE INGENIERÍA MECATRÓNICA
INFORME LABORATORIO 1 – MICROCONTROLADORES
ORG 0 MOVWF FSR
GOTO INICIO MOVLW d'7'
ORG 5 MOVWF INDF
MOVLW 0x2D
INICIO MOVWF FSR
MOVLW d'5'
;INICIALIZAR LOS VECTORES DE LA PRIMERA MOVWF INDF
MATRIZ
MOVLW 0x20 ; CARGAMOS EL VALOR DE 0x20 A ;INICIALIZAR LOS VECTORES DE LA SEGUNDA
W MATRIZ
MOVWF FSR; MOVEMOS W A FSR MOVLW 0x30
MOVLW d'1' ;CARGAMOS W CON EL VALOR DE MOVWF FSR
'd' MOVLW d'2'
MOVWF INDF ; SE INCREMENTA EL VALOR DE W MOVWF INDF
MOVLW 0x21 ; SE CARGA 0X21 AL VALOR DE W MOVLW 0x31
MOVWF FSR MOVWF FSR
MOVLW d'0' MOVLW d'3'
MOVWF INDF MOVWF INDF
MOVLW 0x22 MOVLW 0x32
MOVWF FSR MOVWF FSR
MOVLW d'3' MOVLW d'4'
MOVWF INDF MOVWF INDF
MOVLW 0x23 MOVLW 0x33
MOVWF FSR MOVWF FSR
MOVLW d'2' MOVLW d'5'
MOVWF INDF MOVWF INDF

MOVLW 0x25 MOVLW 0x35


MOVWF FSR MOVWF FSR
MOVLW d'2' MOVLW d'1'
MOVWF INDF MOVWF INDF
MOVLW 0x26 MOVLW 0x36
MOVWF FSR MOVWF FSR
MOVLW d'8' MOVLW d'2'
MOVWF INDF MOVWF INDF
MOVLW 0x27 MOVLW 0x37
MOVWF FSR MOVWF FSR
MOVLW d'4' MOVLW d'3'
MOVWF INDF MOVWF INDF
MOVLW 0x28 MOVLW 0x38
MOVWF FSR MOVWF FSR
MOVLW d'9' MOVLW d'4'
MOVWF INDF MOVWF INDF

MOVLW 0x2A MOVLW 0x20 ; CARGAMOS EL VALOR DE 0x20 A


MOVWF FSR W
MOVLW d'4' MOVWF a_ini ; PONEMOS a_ini ese valor de W
MOVWF INDF MOVLW 0x30
MOVLW 0x2B MOVWF b_ini
MOVWF FSR MOVLW 0x40
MOVLW d'2' MOVWF c_ini
MOVWF INDF MOVLW d'4'
MOVLW 0x2C MOVWF NA
UNIVERSIDAD AUTÓNOMA DE BUCARAMANGA PROGRAMA DE INGENIERÍA MECATRÓNICA
INFORME LABORATORIO 1 – MICROCONTROLADORES
MOVLW d'4'
MOVWF MB MULTI
;REVISAR SI LA LONGITUD DE VECTORES ES MOVF Q,W
;IGUAL SUBWF Y,W
BTFSC STATUS,Z
; MOVF NA,W ; na se mueve segun W y se lleva a GOTO SUMAR_RESULTADOS
W MOVF R_M,W
;SUBWF MB,W ; nb se le resta el valor de W ADDWF X,W
;BTFSS STATUS,Z ; si la resta anterior da cero MOVWF R_M
significa que son iguales por ende continua INCF Q
omitiendo el goto GOTO MULTI
;GOTO ERROR_VECTOR ; significa que no son
iguales hay desproporcion en el codigo SUMA_PRODUCTO
MOVF R_M,W ;W ;PONER EN FSR LA POSICIÓN
DE MEMORIA a_i
;;; SUMAR DATO A DATO C = A*B ADDWF R_C,W ;W=R_C+W ; W=R_C+R_M
MOVWF R_C ;RC=W
;PRIMERO INICIARLIZAR EL APUNTADOR i (i=0) MOVWF AUX
CLRF i
;MOVF R_M,W ;ALMACENAR W EN c_i
;LLAMAR EL VALOR DE A POSICIÓN i (W=a_i)
MOVF c_ini,W ;PONER EN FSR LA POSICIÓN DE
SUMA_VECTOR MEMORIA c_i
MOVF a_ini,W ;PONER EN FSR LA POSICIÓN DE ADDWF i,W
MEMORIA a_i MOVWF FSR ;FSR = c_ini +i;
ADDWF i,W ;FSR = a_ini +i; MOVF AUX,W ; W = Q = a_i+b_i
MOVWF FSR ;ASIGNAR DE MANERA INDIRECTA MOVWF INDF ; MEMORIA(FSR = c_i) = AUX
A W MOVF
MOVF INDF,W ; W = MEMORIA(FSR) = a_i ;SE ACABO CON TODO EL VECTOR?
MOVWF X ; AUX = W = a_i INCF i
MOVF i,W
SUBWF NA,W
;SUMAR b_ini con W BTFSS STATUS,Z
MOVF b_ini,W ;PONER EN FSR LA POSICIÓN DE GOTO SUMA_VECTOR
MEMORIA b_i
ADDWF i,W ;b_ini +i, PARA QUE LA POSICION TERMINO
VARÍE NOP
MOVWF FSR ;ASIGNAR EL VALOR DE FSR FSR = ERROR_VECTOR
b_ini +i END
MOVF INDF,W ;W = MEMORIA(FSR) = a_i,
ASIGNAR LA POSICION INDIRECTA SEGUN FSR
MOVWF Y ;AUX = W = a_i, GUARDAR EL DATO EN 7. BIBLIOGRAFÍA.
LA VARIABLE AUXILIAR [1] Fernando Valdez Perez y Ramon Pállas.
MICROCONTROLADORES. Fundamento y
;OPERACIÓN MATRICIAL aplicación. ALFAOMEGA GRUPO EDITOR S.A.
CLRF Q ;INICIALIZAR EL CONTADOR INTERNO DE 2007.
LA MULTIPLICACION
CLRF R_M ;INICIALIZAR LA VARIABLE QUE
GUARDA EL RESULTADO EN CADA ITERACIÓN

;GUARDAR EL NUM EN UNA VARIABLE AUXILIAR


PARA NO MODIFICARLO
;MOVF AUX,W

También podría gustarte