Escolar Documentos
Profissional Documentos
Cultura Documentos
UTN
OPERACIONES MATEMTICAS
INTEGRANTES
CAMPOS JOSUE
CAMPOVERDE FRANCISCO
CORDOVA FELIPE
LEMA JAVIER
ORBE JONATHAN
ENUNCIADO
El presente proyecto constara de la lectura de dos canales anlogos, los cuales se visualizaran
en displays siete segmentos, constara con botones los cuales realizaran operaciones de suma,
res, multiplicacin y divisin, visualizando su resultad en otro displays siete segmentos.
OBJETIVO GENERAL
Visualizar el resultado de las operaciones matemticas ledas en los canales analgicos.
OBJETIVO ESPECIFICO
De la prctica realizada en clase aumentar la visualizacin de la multiplicacin y
divisin.
FLUJOGRAMA BSICO
INICIO
LECTURA CANALES
ANLOGOS
FIN
CONVERSIN ADC A
MILIVOLTIOS
VISUALIZA
RESULTADO
VISUALIZACIN DE CANALES EN
DISPLAYS
REALIZAR
OPERACIONES
SI
SI
APRIETA BOT
4
DIVI
NO
SI
APRIETA BOT
3
MULT
NO
APRIETA BOT
2 RESTA
NO
APRIETA
BOT 1 SUMA
SI
VISUALIZA RESULTADO
FIN
FICA - MECATRONICA
CODIGO
1: //////////////UNIVERSIDAD TCNICA DEL NORTE////////////////////////////
2:///////////////////CIME/////////////////////////////////////////////
3: //////////////MICROCONTROLADORES AVANZADOS/////////////////////////////
4: ////////////////OPERACIONES ARITMTICAS////////////////////////////////
5:
6: int cont[10]={63,6,91,79,102,109,124,7,127,111}; // decodificacion decimal
7: int canal1, canal2;
8: float variable, cl1, cl2; //variable tipo float para obtener decimales
9: long tlong,tlong2;
10:
11: void display_c1(int cl1){ ////// funcion para el calculo de visualizacion
12:
13: unsigned short dc1;
14: unsigned short uc1;
15:
16: dc1 =(cl1)/10; ////////////decenas
17: uc1 =(cl1-dc1*10); ////////////unidades
18:
19: portb=cont[uc1]; /////activacion del display para unidades
20: portf.b1=1;
21: delay_ms(60);
22: portf=0;
23:
24: portb=cont[dc1]; /////activacion del display para decenas
25: portf.b0=1;
26: delay_ms(60);
27: portf=0;
28:
29: }
30:
31: void display_c2(int cl2){ ////// funcion para el calculo
32:
33: unsigned short dc2;
34: unsigned short uc2;
35:
36: dc2 =(cl2)/10; ////////////decenas
37: uc2 =(cl2-dc2*10); ////////////unidades
38:
39: portb=cont[uc2]; /////activacion del display para unidades
40: portf.b3=1;
41: delay_ms(60);
42: portf=0;
43:
44: portb=cont[dc2]; /////activacion del display para decenas
45: portf.b2=1;
46: delay_ms(60);
47: portf=0;
48:
49: }
50:
FICA - MECATRONICA
51: void mult( int variable){ //subrutina para visualizar las operaciones mat
52: unsigned short dm;
53: unsigned short um;
54: unsigned short cm;
55:
56: //visualizacion
57:
58: cm =(variable)/100; ////////////centenas
59: dm =(variable-cm*100)/10; ////////////decenas
60: um =(variable-cm*100-dm*10); ////////////unidades
61:
62:
63: portb=cont[um]; /////activacion del display para unidades
64: portf.b6=1;
65: delay_ms(60);
66: portf=0;
67:
68: portb=cont[dm]; /////activacion del display para decenas
69: portf.b5=1;
70: delay_ms(60);
71: portf=0;
72:
73: portb=cont[cm]; /////activacion del display para centenas
74: portf.b4=1; 7
5: delay_ms(60);
76: portf=0;
77: }
78:
79: void main( void ) {
80:
81: ADPCFG=0XFFFF; /////////entradas analogas
82: TRISB=0B1111100000000;
83: PORTB=0;
84: TRISF=0;
85: PORTF=0;
86: TRISD=0;
87: PORTD=0;
88:
89: while (1) {
90: canal1 = ADC1_read(7); // lectura del canal 7
91: canal2 = ADC1_read(8); // lectura del canal 8
92:
93: tlong = (long)canal1 * 5000; // covert adc reading to milivolts
94: tlong = tlong / 1000; // 0..1023 -> 0-5000mV
95: cl1 = tlong / 500; // extract volts digit
96: display_c1(cl1); //envio dato a visualizarse en la subrutina
97:
98: tlong2 = (long)canal2 * 5000; // covert adc reading to milivolts 99: tlong2 = tlong2 / 1000;
// 0..1023 -> 0-5000mV
100: cl2 = tlong2 / 500; // extract volts digit
101: display_c2(cl2); //envio dato a visualizarse en la subrutina
102:
FICA - MECATRONICA
FICA - MECATRONICA
CONCLUSIONES
RECOMENDACIONES
Es de mucha ayuda el contar con un multmetro para leer el voltaje que llega al Dspic y
segn la lectura, poder variar las divisiones para ajustar la visualizacin del voltaje
esperado.
Tener cuidado con los displays a ocupar, se recomienda todos ctodos o todos nodos.
Utilizar una fuente de preferencia con un amperaje superior a los 600 mA, puesto que
no podra visualizar de la manera esperada.
FICA - MECATRONICA