Proyecto Final Microprocesadores

13
Guillermo Esquivel Jaimes Proyecto Final Temporizador Microprocesadores Claudia Verónica Carillo

description

M&M, msp430, sorting, rgb, sensor

Transcript of Proyecto Final Microprocesadores

Page 1: Proyecto Final Microprocesadores

Guillermo Esquivel Jaimes

Proyecto Final

Temporizador

Microprocesadores

Claudia Verónica Carillo

Page 2: Proyecto Final Microprocesadores

Objetivo:

El objetivo del proyecto consiste en implementar los conocimientos adquiridos en clase para presentar un programa junto a un modelo funcional físico que utilice los temas vistos en clase tales como; asignación de pines del puerto, funciones secundarias de los puertos, modos de bajo consumo, interrupciones, Timers y convertidor analógico digital.

Desarrollo:

El proyecto construido consiste en un temporizador que al cumplir el tiempo programado y designado por un push button al que se le adjuntó una interrupción por puerto, incrementa el tiempo de retroceso desplegado en el conjunto de displays de siete segmentos decodificados por medio de un circuito integrado 74LS74, con los cuales se envían desde el microprocesador en BCD, después de ser ajustado el tiempo comienza el retroceso del tiempo y al llegar los contadores a cero, un pulso en rampa generado por un temporizador comienza a incrementar la intensidad del buzzer para generar un sonido de alarma.

Esquemático:

Page 3: Proyecto Final Microprocesadores

Programa:

int dsecs =0;int mins =0;int minsd=0;volatile int flag = HIGH;int count=0;int count2=0;int secs=1;int buzz=0;

void setup(){

pinMode(18, INPUT_PULLUP);attachInterrupt(18, blink, FALLING);pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT);pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT);pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT);pinMode(13, OUTPUT); pinMode(14, OUTPUT); pinMode(15, OUTPUT);pinMode(19, OUTPUT);

}

void loop(){digitalWrite(19,LOW); if(flag) { flag = LOW; }

switch(dsecs) { case 0: cerod(); break; case 1: unod(); break; case 2: dosd(); break; case 3: tresd(); break; case 4:

Page 4: Proyecto Final Microprocesadores

cuatrod(); break; case 5: cincod(); break;}

if(mins==0 & minsd==0 & dsecs==0 & secs==0){ for(buzz=0;buzz<=250;buzz++) { analogWrite(19,buzz); delay(10); } digitalWrite(19,HIGH); delay(100000); }diezsecs();

}

//FUNCIONES

void blink(){ count = count+1; mins=count; secs=1; if(mins>9) { count2=count2+1; minsd=count2; count=0; mins=count; }

flag = HIGH;

}

void diezsecs(){

nueve();sleep(1000);displaymins();displaydecmin();

ocho();sleep(1000);displaymins();displaydecmin();

Page 5: Proyecto Final Microprocesadores

siete();sleep(1000);displaymins();displaydecmin();

seis();sleep(1000);displaymins();displaydecmin();

cinco();sleep(1000);displaymins();displaydecmin();

cuatro();sleep(1000);displaymins();displaydecmin();

tres();sleep(1000);displaymins();displaydecmin();

dos();sleep(1000);displaymins();displaydecmin();

uno();sleep(1000);displaymins();displaydecmin();

cero();sleep(1000);displaymins();displaydecmin();

dsecs=dsecs -1;

if(dsecs ==-1){ dsecs=5; mins=mins-1;}if(mins==-1){ mins=9; minsd=minsd-1;}}///////////////////////////segundosvoid cero(){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW);

Page 6: Proyecto Final Microprocesadores

digitalWrite(5, LOW);secs=0; }void uno(){ digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW);}void dos(){ digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, LOW);}

void tres(){ digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, LOW);}void cuatro(){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW);}void cinco(){ digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW);}void seis(){ digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, LOW);}void siete(){ digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, LOW);}void ocho(){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH);}void nueve()

Page 7: Proyecto Final Microprocesadores

{ digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH);}

/////////////////////////////////////decenas de segundos//void cerod(){ digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); }

void unod(){ digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW);

}void dosd(){ digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW);

}

void tresd(){ digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, LOW);

}void cuatrod(){ digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, HIGH);}void cincod(){ digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(8, HIGH);}

/////////////////////////////////////minutosvoid cerom(){ digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW);

Page 8: Proyecto Final Microprocesadores

}

void unom(){ digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW);}void dosm(){ digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW);}

void tresm(){ digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW);}void cuatrom(){ digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW);}void cincom(){ digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW);}void seism(){ digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, LOW);}void sietem(){ digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, LOW);}void ochom(){ digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH);}void nuevem(){

Page 9: Proyecto Final Microprocesadores

digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH);}

void cerodm(){ digitalWrite(13, LOW); digitalWrite(14, LOW); digitalWrite(15, LOW); }

void unodm(){ digitalWrite(13, HIGH); digitalWrite(14, LOW); digitalWrite(15, LOW);

}void dosdm(){ digitalWrite(13, LOW); digitalWrite(14, HIGH); digitalWrite(15, LOW);

}

void tresdm(){ digitalWrite(13, HIGH); digitalWrite(14, HIGH); digitalWrite(15, LOW);

}void cuatrodm(){ digitalWrite(13, LOW); digitalWrite(14, LOW); digitalWrite(15, HIGH);}void cincodm(){ digitalWrite(13, HIGH); digitalWrite(14, LOW); digitalWrite(15, HIGH);}

void displaymins(){ switch(mins) { case 0: cerom(); break; case 1: unom(); break; case 2: dosm(); break;

Page 10: Proyecto Final Microprocesadores

case 3: tresm(); break; case 4: cuatrom(); break; case 5: cincom(); break; case 6: seism(); break; case 7: sietem(); break; case 8: ochom(); break; case 9: nuevem(); break;}}

void displaydecmin(){ switch(minsd) { case 0: cerodm(); break; case 1: unodm(); break; case 2: dosdm(); break; case 3: tresdm(); break; case 4: cuatrodm(); break; case 5: cincodm(); break;}

}

Proyecto Terminado:

Page 11: Proyecto Final Microprocesadores

Conclusiones:

De este proyecto podemos concluir la importancia de los microprocesadores en el mundo real, pues son ahora la tecnología que se aplica en la industria de la mecatrónica, automatización y domótica.

Los microprocesadores tienen un papel protagónico en el control de elementos físicos y sus direcciones virtuales comunicando el mundo del software con el hardware, durante este proyecto se pudo experimentar con programación de bajo nivel, accediendo a los códigos en su forma nativa de ensamblador como programación orientada objetos en compiladores como Energia, se pudo hacer uso de la comunicación serial que cuentan los microprocesadores tanto como de los protocolos Jtag usados en el debugging del programa.De manera integral pudimos hacer uso de los conocimientos vistos a lo largo del semestre para compilarlos y someterlos a prueba con una aplicación en el mundo real.El objetivo trasciende la prueba de los conocimientos adquiridos, e invita al alumno a adaptarse a nuevos usos de las enseñanzas más básicas del microcontrolador para implementarlos en algo complejo, partiendo de la premisa que teniendo bases firmes, es posible entender los conceptos superiores.

Referencias:www.energia.nu/reference