Вы находитесь на странице: 1из 4

UNIVERSIDAD POLITCNICA SALESIANA SISTEMAS MICRO-PREOCESADOS

Fecha de envi: 14/06/2017 Fecha de entrega: 21/06/2017

Sistema de matrices 4x4


Fernndez Edison
Flores Joffre
Flores Alejandro

1. RESUMEN economa, fsica, estadstica y las diferentes


ramas de las matemticas entre las que
Los sistemas y herramientas destinadas a la destacamos las ecuaciones diferenciales, el
resolucin de problemas matemticos poseen clculo numrico y, por supuesto, el lgebra.
un complejo algoritmo que permite desarrollar Los arreglos rectangulares de nmeros como el
casi cualquier artificio. Sin embargo, siguiente:
desarrollarlo e interpretarlo a nivel de 1 5
[ ]
microprocesadores no es tarea sencilla. As 6 8
pues, a manera demostracin llana se plantea reciben el nombre de matrices. Ms
la resolucin de matrices de orden 4x4 que formalmente, dado un conjunto X, se denomina
permita visualizar su determinante por medio de matriz de n filas y m columnas a un conjunto de
una pantalla de cristal lquido LCD, y el ingreso nm elementos de X, dispuestos en un arreglo
de caracteres numricos mediante un teclado rectangular de n filas y m columnas. Las
matricial. caractersticas de los elementos del conjunto X
dependern, en cada caso, de la naturaleza del
2. PALABRAS CLAVES: teclado matricial, problema que se est estudiando. X puede ser
LCD, matrices, determinante. un conjunto de funciones, de palabras de un
alfabeto, de nmeros, etc. De aqu en adelante,
3. OBJETIVOS salvo que se especifique lo contrario, los
elementos del conjunto X sern nmeros reales
OBJETIVO GENERAL y denotaremos el conjunto de todas las matrices
de orden nm(n filas y m columnas) por Mnxm
Hallar el determinante de una matriz de En general, para representar una matriz A de
tamao 4x4, bajo mtodos algebraicos. orden nm se escribe. {1}.

00 01 02
OBJETIVOS ESPECFICO
= [10 11 12]
20 21 22
Desarrollar un algoritmo para resolver
matrices a travs de un microcontrolador.
DETERMINANTE
Se denomina determinante de una matriz
Visualizar el determinante por medio de una
cuadrada al nmero que resulta de sumar/restar
pantalla de cristal lquido.
todos los productos que pueden obtenerse
tomando un factor y slo uno de cada fila y un
Ingresar valores numricos a travs de los factor y slo
puertos del microcontrolador con un teclado uno de cada columna. Los productos
matricial. resultantes son n!, si n es el orden de la matriz
cuadrada. El signo positivo o negativo, sumar o
4. MARCO TERICO restar, depender de si las permutaciones
formadas por los primeros y segundos
MATRICES subndices de los elementos de la matriz
El concepto de matriz alcanza mltiples cuadrada son de la misma clase o de
aplicaciones tanto en la representacin y distinta clase. Dicho de otra manera, si una vez
manipulacin de datos como en el clculo fijado el primer subndice de las filas, al realizar
numrico y simblico que se deriva de los todas las permutaciones posibles de los
modelos matemticos utilizados para resolver subndices de las columnas de la matriz, se
problemas en diferentes disciplinas como, por produce un nmero k par o impar de inversiones
ejemplo, las ciencias sociales, las ingenieras, en dichas permutaciones, se sumar o restar

1
UNIVERSIDAD POLITCNICA SALESIANA SISTEMAS MICRO-PREOCESADOS

Fecha de envi: 14/06/2017 Fecha de entrega: 21/06/2017

el producto de los elementos de la matriz 9. RECOMENDACIONES


correspondiente al resto de productos para
obtener el determinante: {2}. Es indispensable el uso de MasterClear
(1) 1 . 2 . 3.. pues si el micro cae en un bucle infinito el
mismo circuito lo puede detener.
5. MATERIALES Y EQUIPO La lgica a ser utilizada varia del
programador y las caractersticas del
Pic 16F877A circuito.
Teclado matricial
Pantalla de cristal liquido
10. REFERENCIAS
Resistencias
Protoboard
[1] Montes Lozano, A (1998): "lgebra",
Cristal
Ediciones UOC, Mdulo 3: "Matrices, vectores
Capacitores
y sistemas
de ecuaciones lineales".
6. DESARROLLO Y PROCEDIMIENTO [2] F. Ced (1997): lgebra bsica
Universidad Autnoma de Barcelona
6.1. A travs del lenguaje de programacin
MIKROC realice un algoritmo para
hallar el determinante de una matriz
4x4, esta matriz debe ser ingresada a
travs del puerto C del
microcontrolador por medio de un
teclado matricial. Hallar el determinante
por cualquier mtodo del algebra
matricial y visualizarlo en una pantalla
LCD en el puerto D.

7. ANALISIS Y RESULTADOS

7.1. Algoritmo.
Anexo 1
7.2. Circuito Proteus.
Anexo 2

8. CONCLUSIONES

Un micro-controlador es capaz, adems de


resolver operaciones lgicas, resolver
operaciones matemticas, estructurando
un complejo algoritmo que pueda
interpretar los datos de entrada.
Para obtener el determinante de una matriz,
la misma debe ser del mismo tamao, es
decir nxn, y ser resuelta con ciertos
enunciados propios del algebra de
matrices.
La visualizacin de caracteres numricos
en la pantalla de cristal lquido se realiza
mediante una modificacin del cdigo ansi,
que para cada carcter el LCD lleva
programado de ante mano.

2
UNIVERSIDAD POLITCNICA SALESIANA SISTEMAS MICRO-PREOCESADOS

Fecha de envi: 14/06/2017 Fecha de entrega: 21/06/2017

Anexo 1
Algoritmo Lcd_Chr(1, 3, kp); if(kp!=35){
unsigned short kp, cnt,oldstate = 0; posa=var; Lcd_Chr(1, 3, kp);
short int } posi=var;
posa=0,posb=0,posc=0,posd=0,pose=0 } }
,posf=0,posg=0,posh=0,posi=0,posj=0, } }
posk=0,posl=0,posm=0,posn=0,poso=0 if(cnt==2){ }
,posp=0; if(kp!=65&&kp!=66&&kp!=67){ if(cnt==10){
char if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
txtcnt[6],txti[7],txtj[7],txtk[7],txtl[7],det_txt Lcd_Chr(1, 6, kp); if(kp!=35){
[7]; posb=var; Lcd_Chr(1, 6, kp);
short int var; } posj=var;
int det=0,det1=0,det2=0,det3=0,det4=0; } }
char keypadPort at PORTD; } }
sbit LCD_RS at RC0_bit; if(cnt==3){ }
sbit LCD_EN at RC1_bit; if(kp!=65&&kp!=66&&kp!=67){ if(cnt==11){
sbit LCD_D4 at RC2_bit; if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
sbit LCD_D5 at RC3_bit; Lcd_Chr(1, 9, kp); if(kp!=35){
sbit LCD_D6 at RC4_bit; posc=var; Lcd_Chr(1, 9, kp);
sbit LCD_D7 at RC5_bit; } posk=var;
sbit LCD_RS_Direction at TRISC0_bit; } }
sbit LCD_EN_Direction at TRISC1_bit; } }
sbit LCD_D4_Direction at TRISC2_bit; if(cnt==4){ }
sbit LCD_D5_Direction at TRISC3_bit; if(kp!=65&&kp!=66&&kp!=67){ if(cnt==12){
sbit LCD_D6_Direction at TRISC4_bit; if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
sbit LCD_D7_Direction at TRISC5_bit; Lcd_Chr(1, 12, kp); if(kp!=35){
void main() { posd=var; Lcd_Chr(1, 12, kp);
inicio: } posl=var;
cnt = 0; } }
Keypad_Init(); } }
Lcd_Init(); if(cnt==5){ }
Lcd_Cmd(_LCD_CLEAR); if(kp!=65&&kp!=66&&kp!=67){ if(cnt==13){
Lcd_Cmd(_LCD_CURSOR_OFF); if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
Lcd_Out(1, 1, "["); Lcd_Chr(2, 3, kp); if(kp!=35){
Lcd_Out(2, 1, "["); pose=var; Lcd_Chr(2, 3, kp);
Lcd_Out(1, 16, "]"); } posm=var;
Lcd_Out(2, 16, "]"); } }
do { } }
kp = 0; if(cnt==6){ }
var=0; if(kp!=65&&kp!=66&&kp!=67){ if(cnt==14){
do if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
kp = Keypad_Key_Click(); Lcd_Chr(2, 6, kp); if(kp!=35){
while (!kp); posf=var; Lcd_Chr(2, 6, kp);
switch (kp) { } posn=var;
case 1: kp = 49,var=1; break; // 1 } }
case 2: kp = 50,var=2; break; // 2 } }
case 3: kp = 51,var=3; break; // 3 if(cnt==7){ }
case 4: kp = 65; break; // A if(kp!=65&&kp!=66&&kp!=67){ if(cnt==15){
case 5: kp = 52,var=4; break; // 4 if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
case 6: kp = 53,var=5; break; // 5 Lcd_Chr(2, 9, kp); if(kp!=35){
case 7: kp = 54,var=6; break; // 6 posg=var; Lcd_Chr(2, 9, kp);
case 8: kp = 66; break; // B } poso=var;
case 9: kp = 55,var=7; break; // 7 } }
case 10: kp = 56,var=8; break; // 8 } }
case 11: kp = 57,var=9; break; // 9 if(cnt==8){ }
case 12: kp = 67; break; // C if(kp!=65&&kp!=66&&kp!=67){ if(cnt==16){
case 13: kp = 42; break; // * if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){
case 14: kp = 48,var=0; break; // 0 Lcd_Chr(2, 12, kp); if(kp!=35){
case 15: kp = 35; break; // # posh=var; Lcd_Chr(2, 12, kp);
case 16: kp = 68; break; // D } posp=var;
} } }
if } }
(kp!=65&&kp!=66&&kp!=67&&kp!=35) { if(cnt==9){ }
cnt++; Lcd_Cmd(_LCD_CLEAR); if(kp==42) {
oldstate = kp; // Clear display goto inicio;
} Lcd_Cmd(_LCD_CURSOR_OFF); }
/*else { // Cursor off if(cnt>=16){
cnt++; Lcd_Out(1, 1, "["); if(kp==65){
}*/ Lcd_Out(2, 1, "["); Lcd_Cmd(_LCD_CLEAR);
if(cnt==1){ Lcd_Out(1, 16, "]"); Lcd_out(1, 5, "DET:");
if(kp!=65&&kp!=66&&kp!=67){ Lcd_Out(2, 16, "]"); det1=
if(kp!=35){ if(kp!=65&&kp!=66&&kp!=67){ ((posf*posk*posp)+(posg*posl*posn)+(p

3
UNIVERSIDAD POLITCNICA SALESIANA SISTEMAS MICRO-PREOCESADOS

Fecha de envi: 14/06/2017 Fecha de entrega: 21/06/2017

osj*poso*posh))-
((posh*posk*posn)+(posg*posj*posp)+(
posl*poso*posf));
det2=
((pose*posk*posp)+(posg*posl*posm)+(
posi*poso*posh))-
((posh*posk*posm)+(posg*posi*posp)+(
posl*poso*pose));
det3=
((pose*posj*posp)+(posf*posl*posm)+(p
osi*posn*posh))-
((posh*posj*posm)+(posf*posi*posp)+(p
osl*posn*pose));
det4=
((pose*posj*poso)+(posf*posk*posm)+(
posi*posn*posg))-
((posg*posj*posm)+(posf*posi*poso)+(p
osk*posn*pose));
det=(posa*det1)-
(posb*det2)+(posc*det3)-(posd*det4);
IntToStr(det,det_txt);
Lcd_Out(2, 5,det_txt);
}
}
} while (1);
}

Anexo 2
Circuito Proteus
[Img 1 Circuito Proteus]

Вам также может понравиться