Vous êtes sur la page 1sur 8

UNIVERSIDAD NACIONAL DE CHIMBORAZO

FACULTAD DE INGENIERÍA

CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES

Práctica de Laboratorio

TEMA: Configurar puertos E/S

ASIGNATURA: Microprocesadores

DOCENTE: Ing. Leonardo Rentería

SEMESTRE: Sexto

INTEGRANTES:

 Valeria Andrade
 Cecilia Caisaguano
 Karla Muyulema

PERIODO ACADÉMICO

OCTUBRE 2018 – MARZO 2019


Versión: 1.0
UNIVERSIDAD NACIONAL DE
CHIMBORAZO
Revisión:
FACULTAD DE INGENIERIA
01/10/2018
PÁGINA: 1 DE 1
GUÍA DE PRÁCTICAS
PERIODO ACADÉMICO: OCTUBRE 2018-MARZO 2019
CARRERA: DOCENTE: CURSO:
Ing. Electrónica y Ing. Leonardo Rentería Sexto
Telecomunicaciones
NOMBRE DE LA LABORATORIO A UTILIZAR:
ASIGNATURA:
CÓDIGO DE LA ASIGNATURA:
Microprocesadores Electrónica

No.
Práctica No. Tema: Duración (horas) No. Grupos Estudiantes
(por Grupo)

1 Manejo de GPIO 3 6 3 (1 de 4)
Atmega
Objetivos de la Práctica:

Configurar los puertos E/S para enviar y recibir datos

Equipos, Materiales e Insumos:

Osciloscopio, Generador de funciones, multímetro, mcu atmega, arduino , pc

Procedimiento:

1. Abrir un nuevo proyecto Arduino y crear un código que active y desactive 5 leds cada 100ms.
Determinar el tamaño del código generado
2. Verificar el funcionamiento del código anterior con el uso del osciloscopio.
3. Abrir un nuevo proyecto Arduino y crear un código que encienda un LED cada vez que se presione
un botón. Determinar el tamaño del código generado.
4. Verificar el funcionamiento del código anterior con el uso del osciloscopio.
5. Repetir los pasos anteriores optimizando el código a través del manejo de registros de E/S. DDRX,
PINX y PORTX.
6. Analice los resultados
Fundamentos Teóricos:

MICROCONTROLADOR

Ilutración 1.- Microcontralador

Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las
órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea
específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de
una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.

ELEMENTOS INTERNOS EN UN MICROCONTROLADOR

Procesador o Microprocesador. Un procesador incluye al menos tres elementos, ALU, unidad de control y
registros.

 ALU. También conocida como Unidad Aritmetica y Lógica. Está unidad esta compuesta por los
circuitos electrónicos digitales del tipo combinatorios (compuertas, sumadores, multiplicadores), cuya
principal función es el realizar operaciones. Estas operaciones están divididas en tres tipos:
 Lógicas. Como las operaciones básicas de las compuertas lógicas, como la suma lógica (OR),
multiplicación lógica (AND), diferencia lógica (XOR) y negación (NOT). Una operación lógica sólo
puede tener como entradas y como salidas una respuesta lógica (0 o 1). Esto dependiendo de los
niveles de voltajes de una señal digital.
 Aritméticas. Las operaciones artiméticas son la suma, resta, multiplicación y división. Dependiendo
del procesador (8, 16, 32 o 64 bits) será la rapidez con la que se pueden hacer dichas operaciones.
 Miscelaneas. En estas operaciones caen todas las demás operaciones como la transferencia de bits
(<< >>).
 Unidad de control. La unidad de control es el conjunto de sistemas digitales secuenciales (aquellos
que tienen memoria) que permiten distribuir la lógica de las señales.
 Registros. Los registros son las memorias principales de los procesadores, ya que funcionan a la
misma velocidad que el procesador a diferencia de otras memorias un tanto más lentas (como la RAM,
FLASH o la CACHE). Los registros están construidos por Flip-Flops. Los Flip-Flops son circuitos
digitales secuenciales.
 Periféricos. Los periféricos son los circuitos digitales que nos permiten una interacción con el mundo
“exterior” al microcontrolador. Su función es la de poder habilitar o deshabilitar las salidas digitales,
leer sensores analógicos, comunicación con terminales digitales o sacar señales analógicas de una
conversión digital.
 Puertos de entrada/salida pararelos. Los puertos están relacionados al tamaño del procesador, es decir
que un puerto de 8 bits es porque el procesador es de 8 bits. Un procesador de 64 bits, tiene la
capacidad de tener un puerto de 64 bits.
 Puertos seriales. Nos permiten transformar la información digital pararela (bytes de información) en
tramas que se pueden transferir por una o varias líneas de comunicación. Existen por ejemplo: puerto
serial, i2c, SPI, USB, CAN, etc.
 Periféricos analógicos. Como los que convierten señales analógicas a digitales (ADC) o señales
digitales a analógicas (DAC) o comparadores analógicos.
 Memoria. La memoria esta dividida en tres. La memoria para el programa (FLASH), la memoria para
los datos o variables del programa (RAM) y la memoria para configuraciones o no volátil (EEPROM)

MICROPROCESADOR

Ilutración 2.- Microprocesador

La estructura tecnológica del microprocesador determinara en cuantos ciclos se efectuara la operación en el CPU
y su duración estará determinada por la frecuencia de reloj, dicha duración nunca podrá ser menor al tiempo
requerido para efectuar la tarea individual (en un ciclo) de mayor coste temporal.

Los microprocesadores contienen un oscilador de cuarzo que genera los pulsos a un ritmo constante de manera que
se pueden generar varios ciclos en un segundo, la velocidad de los microprocesadores se mide en frecuencias y
estas pueden ser megahertzios (MHz) o Gigahertzios (GHz) es decir, miles de millones o millones de ciclos por
segundo.

Para determinar la velocidad a la que trabaja la CPU podemos utilizar el indicador de frecuencia, es decir, entre
mayor frecuencia mayor velocidad para el proceso de información, pero no es el único indicador que lo determina,
también necesitamos saber la cantidad de instrucciones necesarias para realizar una tarea concreta y la cantidad de
instrucciones ejecutadas por ciclo (ICP)
ARDUINO

Ilutración 3.- Arduino

Arduino es una plataforma de prototipos electrónica de código abierto (open-source) basada en hardware y software
flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear
objetos o entornos interactivos.
Arduino puede “sentir” el entorno mediante la recepción de entradas desde una variedad de sensores y puede afectar
a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa
usando el “Arduino Programming Language” (basado en Wiring) y el “Arduino Development Environment” (basado
en Processing). Los proyectos de Arduino pueden ser autonomos o se pueden comunicar con software en ejecución
en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.).
Resultados:

Utilizar los periféricos de E/S para enviar y recibir datos a través de esos periféricos.
 Codigo Implementado para encender los 5 leds
int led1=13;
int led2=12;
int led3=11;
int led4=10;
int led5=9;
void setup() {
// put your setup code here, to run once:
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
delay(50);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
delay(50);}
El Sketch usa 4244 bytes (14%) del espacio de almacenamiento de programa.
 Codigo Implementado mediante registros

void setup (){


DDRB=0b11111000;}
void loop()
{
delay(100);
PORTB=0b11111000;
delay(100);
PORTB=0b00000000;}

El Sketch usa 3736 bytes (13%) del espacio de almacenamiento de programa.

 Codigo Implementado para encender un led mediante un boton

const int LED=10;


const int BOTON=2;
int val;
void setup(){
pinMode(LED,OUTPUT);
pinMode(BOTON,INPUT);
}
void loop(){
val=digitalRead(BOTON);
if (val==HIGH){
digitalWrite(LED,HIGH);
}
else
{
digitalWrite(LED,LOW);}}

El Sketch usa 4218 bytes (14%) del espacio de almacenamiento de programa.

 Codigo Implementado mediante registros

byte Variable; //Declaración variable


void setup(){
DDRB= B00000011; //Hablitar los 2 ultimos puertos
}
void loop(){
PORTB=B00000100; //Encender led
}

El Sketch usa 3626 bytes (12%) del espacio de almacenamiento de programa.


Ilutración 4.- Montaje del circuito Ilutración 5.- Encendido de 5 leds

Ilutración 6.- Encendido y apagado del led mediante un botón

Ilutración 8.- Señal Obtenido de los 5 leds Ilutración 9.- Señal Obtenido del led mediante botón

Ilutración 10.- Señal Obtenido al no presionar botón


Análisis

El lenguaje de programación de Arduino es de alto nivel, el mismo que nos permite realizar la programación
con mayor facilidad, el primer sketch del programa consistía en hacer que 5 Leds se prendan y se apaguen
cada 100 ms, al describirlo en el lenguaje de programación C++, se generó un código un poco extenso el cual
ocupaba un cierto tamaño, pero con la utilización de registros se pudo optimizar el código y de la misma
manera se procedió para el punto 3 de la práctica.
El resultado en el osciloscopio fue una señal tren de pulsos, la cual lleva la información en su estado alto el
Led estará encendido y en su estado bajo el Led se encontrara apagado.

Conclusiones:

 Para la realización del primer punto de la practica que requiere completar un periodo de 100 ms para
encender y apagar 5 leds se debe programar un delay de 50ms para encendido y otro delay de 50 ms
para apagado
 Al utilizar registros se optimiza el programa y por tanto se reducen las líneas de código y a su vez el
tamaño del mismo.
 Arduino proporciona un entorno de programación sencillo y potente para programar, pero además
incluye las herramientas necesarias para compilar el programa y “quemar” el programa ya compilado
en la memoria flash del microcontrolador. Además el IDE nos ofrece un sistema de gestión de librerías
y placas muy práctico. Como IDE es un software sencillo que carece de funciones avanzadas típicas
de otros IDEs, pero suficiente para programar.

Referencias bibliográficas:

 Programación de Dispositivos Embebidos en C.-Gustavo Galeano.-Alfaomega


 Manual+Programacion+Arduino.-Jose Manuel Ruiz.
 Materia Dictada en Clases

Anexos:

 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-
 ATmega328-328P_Datasheet.pdf
 http://playground.arduino.cc/Code/BitMath

Vous aimerez peut-être aussi