taller micros 12 ma rzo

2
1. A continuación se presenta un código escrito en el IDE de ARDUINO para el ATMEGA 328 el cual debe realizar las siguientes funciones. Por el puerto serial a 9600 baudios se envían una de las letras del alfabeto (a…z) en minúscula y por este mismo puerto se recibe la letra del alfabeto convertida a mayúscula (A…Z), en el monitor serial se debe imprimir la letra del alfabeto en minúscula y la letra del alfabeto en mayúscula, si se envía un carácter diferente al del alfabeto en minúscula se debe imprimir un mensaje de error y si se envía un carácter en mayúscula este debe permanecer sin cambio. a. ¿El código soluciona el problema planteado? b. Si el código no soluciona el problema cual es la corrección del mismo. void setup() { Serial(9600); } void loop() { char dato; if(Serial.available()>0) { dato=Serial.read(); if(dato >= 122 && dato <= 97 ) { Serial.print("El caracter recibido es: "); Serial.println(dato); dato= dato & 223; Serial.print("El caracter mayuscula es: "); Serial.println(dato); } else if(dato >= 90 && dato <= 65) { Serial.print("El caracter recibido esta en mayusculas y es: "); Serial.println(dato); } else Serial.println("Digite un caracter valido"); } } 2. A continuación se presenta un código escrito en el IDE de ARDUINO para el ATMEGA 328 el cual debe realizar las siguientes funciones. Por los pines del arduino (2,3,4,5) se conectan 4 interruptores par ingresar un numero binario de cuatro bit donde el pin2=LSB y pin5=MSB. El pin6 del arduino se conectara un interruptor para realizara la función de selección de complemento así: Si pin6=0 entonces se presentara el complemento a uno del numero ingresado por los pines (8,9,10,11) del arduino. Si pin6=1 entonces se presentara el complemento a dos del numero ingresado por los pines (8,9,10,11) del arduino. a. ¿El código soluciona el problema planteado? b. Si el código no soluciona el problema cual es la corrección del mismo. int pin_in []={2,3,4,5,6,}; int pin_out[]={8,9,10,11}; //defino pines de salida int b[]={0,0,0,0,0}; int dato_ina,dato_outa; void setup() { iniciar_in(); iniciar_out(); } void loop()

Upload: montoyaduvan

Post on 17-Jan-2016

2 views

Category:

Documents


0 download

DESCRIPTION

taller de microeconomia de la uiversidad de los llanos

TRANSCRIPT

Page 1: Taller Micros 12 Ma Rzo

1. A continuación se presenta un código escrito en el IDE de ARDUINO para el ATMEGA 328 el cual debe realizar las

siguientes funciones.

Por el puerto serial a 9600 baudios se envían una de las letras del alfabeto (a…z) en minúscula y por este mismo

puerto se recibe la letra del alfabeto convertida a mayúscula (A…Z), en el monitor serial se debe imprimir la letra del

alfabeto en minúscula y la letra del alfabeto en mayúscula, si se envía un carácter diferente al del alfabeto en

minúscula se debe imprimir un mensaje de error y si se envía un carácter en mayúscula este debe permanecer sin

cambio.

a. ¿El código soluciona el problema planteado?

b. Si el código no soluciona el problema cual es la corrección del mismo. void setup()

{

Serial(9600);

}

void loop()

{

char dato;

if(Serial.available()>0)

{

dato=Serial.read();

if(dato >= 122 && dato <= 97 )

{

Serial.print("El caracter recibido es: ");

Serial.println(dato);

dato= dato & 223;

Serial.print("El caracter mayuscula es: ");

Serial.println(dato);

}

else if(dato >= 90 && dato <= 65)

{

Serial.print("El caracter recibido esta en mayusculas y es: ");

Serial.println(dato);

}

else

Serial.println("Digite un caracter valido");

}

}

2. A continuación se presenta un código escrito en el IDE de ARDUINO para el ATMEGA 328 el cual debe realizar las

siguientes funciones.

Por los pines del arduino (2,3,4,5) se conectan 4 interruptores par ingresar un numero binario de cuatro bit donde el

pin2=LSB y pin5=MSB.

El pin6 del arduino se conectara un interruptor para realizara la función de selección de complemento así:

Si pin6=0 entonces se presentara el complemento a uno del numero ingresado por los pines (8,9,10,11) del arduino.

Si pin6=1 entonces se presentara el complemento a dos del numero ingresado por los pines (8,9,10,11) del arduino.

a. ¿El código soluciona el problema planteado?

b. Si el código no soluciona el problema cual es la corrección del mismo.

int pin_in []={2,3,4,5,6,};

int pin_out[]={8,9,10,11}; //defino pines de salida

int b[]={0,0,0,0,0};

int dato_ina,dato_outa;

void setup()

{

iniciar_in();

iniciar_out();

}

void loop()

Page 2: Taller Micros 12 Ma Rzo

{

lectura();

conviertedato(b);

if(digitalRead(6)==LOW)

{

dato_outa=dato_ina^15;

escritura(dato_outa);

}

else

{

dato_outa=(dato_ina^15)+1;

escritura(dato_outa);

}

}

void iniciar_in () //configuro pines como entradas

{

for (int p=0; p<6; p++)

{

pinMode(pin_in[p],INPUT);

}

}

void iniciar_out () //configuro pines como salidas

{

for (int p=0; p<4; p++)

{

pinMode(pin_out[p],OUTPUT);

}

}

void escritura (int datoin) // escribo un dato por el puerto

{

for(int a=0;a<4;a++)

{

digitalWrite(pin_out[a], bitRead(datoin,a));

}

}

void lectura () //leo un dato por el puerto

{

for(int a=0;a<4;a++)

{

b[a]=digitalRead(pin_in[a]);

}

}

void conviertedato(int*) // convierto de binario a decimal y separo los datos

{

dato_ina=(b[0]*pow(2,0))+(b[1]*pow(2,1))+(b[2]*pow(2,2)+(b[3]*pow(2,3)));

}

3. Expresar en formato binario de 8 bits signo-magnitud complemento dos los siguientes números:

a) 29 b)-85 c)100 d)-123

4. Representar en formato IEEE de 32 bits el numero binario 3,1416.