You are on page 1of 5

Prctica No.

1: Puertos I/O

UPIITA - IPN

I N S T I T U T O P O L I T E C N I C |O N A C I O N A L
Unidad Profesional Interdisciplinaria de Ingeniera y Tecnologas Avanzadas

Microcontroladores Avanzados
Prof. Mauricio Martnez Mndez
Prctica No. 1
Puertos I/O
Bautista Alvarado Mindy Wendolyne
Gonzlez Rodrguez Jobrail

4MM5

OBJETIVO
El alumno comprobara los mtodos dados en clase para hacer la declaracin de puertos
como entradas y salidas.

INTRODUCCIN
Se empleara el software AVR Studio el cual es un programa dedicado a la programacin de
microcontroladores AVR. Se comenzara a conocer la plataforma y la interfaz, as como los
comandos bsicos como operaciones entre variables y la adquisicin de datos. Se realizara
una suma y resta de datos adquiridos a travs de los puertos y se desplegara el resultado
por una barra de leds.

INTRODUCCIN TERICA
Como sabemos para programar microcontroladores existen diversos lenguajes de
programacin, por lo cual no se pude decir que uno u otro es mejor para programar, ya
que todo depende de la habilidad del programador para utilizar los recursos del
microcontrolador y sacar el mejor provecho del compilador con el cual est trabajando.
En nuestro curso optamos por utilizar el lenguaje C, el cual destaca principalmente por lo
siguiente:

Prctica No. 1: Puertos I/O

UPIITA - IPN

C proporciona estructura, abstraccin y control de tipos de datos (aunque no tan


estrictamente como otros lenguajes de alto nivel).
Permite tambin cierto acceso de bajo nivel, similar al ensamblador, combinando
en general ciertas caractersticas de bajo nivel del ensamblador y otras ventajas
ofrecidas por los lenguajes de alto nivel.
Es ms rpido y eficiente que otros lenguajes de alto nivel usados tambin para
programar microcontroladores (C++, Basic, Java, Python, etc.) y su uso est
altamente difundido en aplicaciones profesionales. Con compiladores modernos
puede llegar a ser tan rpido como el ensamblador.
Los programas en C son ms fciles de mantener (revisar, modificar, ampliar).
Existen muchsimas libreras libremente disponibles para el uso de cualquier
programador, lo cual facilita el desarrollo de una aplicacin.
En aplicaciones profesionales de sistemas embebidos el 90 a 95% (quizs ms) de
todo el cdigo est escrito mayormente en lenguaje C y en algunos casos en C++.
Casi cualquier dispositivo embebido moderno (lavadora, telfono celular, cmara
fotogrfica/video, reproductor MP3, router, microondas, sistemas de control para
automviles o aviones, etc.) con seguridad tiene su cdigo escrito en lenguaje
C/C++.
Registros de entrada y salida
DDRX es un registro de 8 bits que almacena informacin de configuracin para los pines
del PORTX. Escribiendo un 1 en la posicin del pin en el DDRX hace que el pin fsico de
ese puerto sea un pin de salida y escribiendo un 0 hace que el pin sea de entrada.
PINX es un registro de 8 bits que almacena el valor lgico, el estado actual, de los pines
fsicos en el PORTx. As que para leer los valores en los pines del PORTx, se tienen que
leer los valores que estn en su registro PIN.
PORTX es un registro de 8 bits que almacena los valores lgicos que actualmente se
emiten en los pines fsicos del PORTX si los pines estn configurados como pines de
salida. As que para escribir valores en un puerto se escriben los valores en el registro
PORT de ese puerto.
DESARROLLO EXPERIMENTAL
Se generara un cdigo en el cual 2 de los puertos del AVR se tomaran como entradas y 2
que se tomaran como salidas, dichas entradas sern mediante dipswitch. Las salidas sern
mediante barras de led para dar el resultado de las operaciones de las entradas.

Prctica No. 1: Puertos I/O

UPIITA - IPN

En el diagrama se muestra las conexiones q se deben realizar para conectar los dipswich y
las barras de leds.
Se realiz el cdigo siguiente, en el cual se declaran primeramente los puertos usar y
despus se leern los puertos , posteriormente se procede a hacer la operacin deseada y
en alternar la salida.
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
//1 salidas
//0 entradas
DDRA = (1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) |
(1<<DDA0); //DDRA=0XFF;
DDRB = (0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) |
(0<<DDB0);
DDRC = (0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) |
(0<<DDC0);
DDRD = (1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) |
(1<<DDD0);

Prctica No. 1: Puertos I/O

UPIITA - IPN

//DECLARACION DE VARIABLES
char x;
char y;
char z;
while(1)
{
//PUERTO A ALTERNA ENTRE 0XAA Y 0X55
PORTA = 0XAA;
_delay_ms(500);
PORTA = 0X55;
_delay_ms(500);
//PUERTO B Y C LEIDOS Y SUMADO, SU RESULTADO SE DESPLIEGA EN PUERTO D
x = PINB;
y = PINC;
z = x +y;
PORTD = z;
//TODO:: Please write your application code
}
}

RESULTADOS

Prctica No. 1: Puertos I/O

UPIITA - IPN

Se utiliz la placa de desarrollo para la materia en la cual se facilita mucho el modo de


conexin y no se batalla con los cables, los puertos estn fcilmente localizables y se
pueden conectar de una manera muy sencilla con la tarjeta visualizadora.
Inicialmente se plante hacer en la proto pero se decidi q es ms sencillo si se cuenta con
la tarjeta de visualizacin as como la enteradas y las salidas.
CONCLUSIONES
El programa de AVR studio es una herramienta muy sencilla la cual nos permite una
programacin mucho mas rpida ya que contiene mascaras para los registros y te explica
el modo de llenado de las funciones. Para la declaracin de los puestos como entradas y
salidas se aprendieron varios mtodos para hacer referencia. A alguna una de las grandes
ventajas de este software es que hay una gran bibliografa en C para las cosas

You might also like