Está en la página 1de 11

UNIVERSIDAD NACIONAL DE CHIMBORAZO

FACULTAD DE INGENIERIA

GUÍA DE PRÁCTICAS VERSIÓN: 1


PERIODO ACADÉMICO: MAYO 2020- OCTUBRE 2020
Página 1 de 11
CARRERA: DOCENTE: SEMESTRE: DECIMO
TELECOMUNICACIONES LEONARDO RENTERIA PARALELO: A
NOMBRE DE LA ASIGNATURA: CÓDIGO DE LA LABORATORIO A UTILIZAR:
MICRORPOCESADORES Y LAB ASIGNATURA: ELECTRONICA
EET61

Práctica No.: Tema: Duración (horas) No. Grupos No. Estudiantes (por Grupo)
Puertos de entrada salida 2 9 4
2
Integrantes:

- Juan Haro
- Danilo Orna
- Cristian Manosalvas
- Javier Espinoza
- Eduardo Caicedo

Objetivos de la Práctica:
Configurar los puertos E/S para enviar y recibir datos.
Equipos, Materiales e Insumos:

- Laboratorio virtual de electrónica


- PC
- Simulador

Procedimiento:

1. Crear el siguiente circuito en el simulador.


2. Abrir un nuevo proyecto Arduino y crear un código Arduino que active y desactive los 4 leds cada 100ms.
Determinar el tamaño del código generado

Fig. 1. Circuito implementado.


Fig. 2. Opción 1 de código.

Fig. 3. Opción 2 de código.


3. Verificar el funcionamiento del código anterior con el uso del osciloscopio.

Fig. 4. Formas de onda de las señales de salida. Referentes a la opción de código 1.

Nota: Para esta opción de código se ha verificado que: El Sketch usa 1014 bytes (3%) del espacio de
almacenamiento de programa.

Fig. 5. Formas de onda de las señales de salida. Referentes a la opción de código 2.

Nota: Para esta opción de código se ha verificado que: El Sketch usa 1038 bytes (3%) del espacio de
almacenamiento de programa.
- Además, se observa en la Fig. 5 que las señales están un poco retrasadas en el tiempo, esto es debido
a que el código fue realizado con la finalidad de que los leds se enciendan de forma consecutiva.

4. Abrir un nuevo proyecto Arduino y crear un código que encienda led LED_X cada vez que se presione un
botón B_X. Determinar el tamaño del código generado.
int LED1 = 4,LED2 = 5,LED3 = 6,LED4 = 7,BOTON1=0,BOTON2=1,BOTON3=2,BOTON4=3,val1,val2,val3,val4;
void setup() {
pinMode(LED1, OUTPUT);pinMode(LED2, OUTPUT);pinMode(LED3, OUTPUT);pinMode(LED4,
OUTPUT);pinMode(BOTON1,INPUT);pinMode(BOTON2,INPUT);pinMode(BOTON3,INPUT);pinMode(BOTON4,INPUT);
}
void loop() {
val1=digitalRead(BOTON1);val2=digitalRead(BOTON2);val3=digitalRead(BOTON3);val4=digitalRead(BOTON4);
if (val1==HIGH){
digitalWrite(LED1,LOW);
}
else { digitalWrite(LED1,HIGH);
}
if (val2==HIGH){
digitalWrite(LED2,LOW);
}
else { digitalWrite(LED2,HIGH);
}
if (val3==HIGH){
digitalWrite(LED3,LOW);
}
else { digitalWrite(LED3,HIGH);
}
if (val3==HIGH){
digitalWrite(LED3,LOW);
}
else { digitalWrite(LED3,HIGH);
}
if (val4==HIGH){
digitalWrite(LED4,LOW);
}
else { digitalWrite(LED4,HIGH);
}
}

Nota: El Sketch usa 1104 bytes (3%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
Las variables Globales usan 17 bytes (0%) de la memoria dinámica, dejando 2031 bytes para las variables
locales. El máximo es 2048 bytes.
5. Verificar el funcionamiento del código anterior con el uso del osciloscopio.

Fig. 6. Formas de onda de las señales de salida. Referentes a la opción de código 3.

Esta opción de código (Fig. 6), se realizó con la finalidad de permitir que cada led se encienda cuando
se presione su botón correspondiente.
- En la Fig. 6. Se observan los pulsos que representan la activación de cada led.

6. Repetir los pasos anteriores creando un código a través del manejo de registros de E/S. DDRX, PINX y PORTX.
Fig. 7. Encender los leds, mediante el uso de registros.

En la Fig. 7. Se muestra el código a través del manejo de registros de E/S. DDRX, PINX y PORTX, que permite
encender todos los leds.

Fig. 8. Encender los leds (usando un switch), mediante el uso de registros.

En la Fig. 8. Se muestra el código a través del manejo de registros de E/S. DDRX, PINX y PORTX, que permite
encender todos los leds, cada vez que se active el switch.

7. Analice los resultados

Fig. 9. Formas de onda de las señales de salida referente al código de la Fig. 7.

Nota: El Sketch usa 644 bytes (1%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
- Las variables Globales usan 9 bytes (0%) de la memoria dinámica, dejando 2039 bytes para las
variables locales. El máximo es 2048 bytes.
Fig. 10. Formas de onda de las señales de salida referente al código de la Fig. 8.

Nota: El Sketch usa 450 bytes (1%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
• Las variables Globales usan 9 bytes (0%) de la memoria dinámica, dejando 2039 bytes para las
variables locales. El máximo es 2048 bytes.

8. Remplace los botones por switches y cree un código que permita visualizar la suma de dos números de dos
bits ingresados.
Resultados:
Utiliza los periféricos de E/S para enviar y recibir datos digitales.
Anexos:
Los registros DDR, PORT, y PIN.

Referencias bibliográficas:

- MakerElectronico. 2020. Entradas Y Salidas Digitales DDR, PORT, PIN Con ATMEGA32 -
Makerelectronico. [online] Available at: <https://www.makerelectronico.com/entradas-y-salidas-
digitales-ddr-port-pin-atmega32/> [Accessed 11 November 2020].
- Arduino.cc. 2020. Arduino - Portmanipulation. [online] Available at:
<https://www.arduino.cc/en/Reference/PortManipulation> [Accessed 11 November 2020].
- Loflin, L., 2020. Arduino Port Registers Revisited. [online] Bristolwatch.com. Available at:
<http://www.bristolwatch.com/k150/port1.htm> [Accessed 11 November 2020].
- Aprendiendo Arduino. 2020. Entradas Y Salidas Arduino. [online] Available at:
<https://aprendiendoarduino.wordpress.com/2016/11/08/entradas-y-salidas-arduino/> [Accessed
11 November 2020].
Fecha de Revisión y Aprobación: 18/05/2020

_____________________ __________________

Firma Director de Carrera Firma Docente

También podría gustarte