INFORME 1 AVR

SEPTIEMBRE - FEBRERO 2011 INFORME #01 DE AVR’S ERICK PEÑAHERRERA JOSE BUCHELI XAVIER MUÑOZ DATASHEETS  dsPIC30F4013

Views 81 Downloads 10 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SEPTIEMBRE - FEBRERO 2011

INFORME #01 DE AVR’S

ERICK PEÑAHERRERA JOSE BUCHELI XAVIER MUÑOZ

DATASHEETS  dsPIC30F4013

DESARROLLO PRÁCTICO OBJETIVO: utilizar los puertos del Microcontrolador ATMEL AVR, como interface digital al mundo exterior. EJERCICIO 1 Atmel 164P AVR PROBLEMA: Este programa escribe el valor 55 hexadecimal en el puerto D ALGORITMO: Entradas: Numero binario 55h Procesos: Establecemos el puerto D como Salida. Guardo el valor 55h en una variable. Escribir el dato guardado en el puerto D. Salidas: Código binario 55h en el puerto D DIAGRAMA DE FLUJO INICIO

Especificar el puerto D como salida

ESCRIBIR EN EL PUERTO D 55(H) – 01010101(2)

CÓDIGO Regfile "m164pdef.dat" $crystal = 800000 Ddrd = 255 Config Portd = Output Do Portd = &B1010_1010 Loop End

ESQUEMÁTICO

S I M U L A C I Ó N

FOTOS

1. EJERCICIO 2 Atmel 164P AVR PROBLEMA: Este programa escribe en un pin del puerto D ALGORITMO: Entradas: Valor que escribiremos en un pin del puerto D Procesos: Especifico el puerto D como salida Especifico el pin que deseo como salida Escribimos el valor en el pin seleccionado (pin 1) Salidas: Valor en el pin 1 del puerto D

DIAGRAMA DE FLUJO INICIO

Especificar el puerto D como salida

Especifico el pin que deseo como salida (Portd.1=1)

CÓDIGO Regfile "m164pdef.dat" $crystal = 8000000 Ddrd = 255 Config Portd = Output Portd = 0 Do Portd.1 = 1 Loop End

ESQUEMÁTICO

S I M U L A C I Ó N

FOTOS

2. EJERCICIO 3 Atmel 164P AVR PROBLEMA: Para leer en un puerto de un Microcontrolador AVR se utiliza el comando PIN. Además se va a introducir al uso de las variables ALGORITMO: Entradas: Datos del dipswitch a través del Puerto B Procesos: Configuro el Puerto B como Entradas Configuro el Puerto D como Salidas Defino una variable A tipo Byte para Guardar los datos de IN (Puerto B). Leo la variable A de los datos escritos en el Puerto B Escribo en el Puerto D el valor de la Variable A Salidas: Escribir en el puerto D DIAGRAMA DE FLUJO INICIO

Puerto B como entradas

Puerto D como salida

Defino la variable A

A = pinb

Portd= A

CÓDIGO Regfile "m16def.dat" $crystal = 800000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Sim A As Byte Do A = Pinb Portd = A Loop

ESQUEMÁTICO

S I M U L A C I Ó N

FOTOS

3. EJERCICIO 4 Atmel 164P AVR PROBLEMA: Comprobar el uso de las Funciones lógicas, and, or, xor y not

ALGORITMO: Entradas: Datos del dipswitch a través del Puerto B

Procesos:

Configuro el Puerto B como Entradas Configuro el Puerto D como Salidas Defino las variables A, B, C, D Tipo Bit para Guardar los datos de IN (Puerto B). Leo las variables A, B, C y D; los datos de entrada en el Puerto B En la variable A uso la función And. Escribo la variable A en el pin 0 del puerto D En la variable B uso la función Or. Escribo la variable a en el pin 1 del puerto D En la variable C uso la función Xor. Escribo la variable A en el pin 2 del puerto D En la variable D uso la función Not. Escribo la variable D en el Pin 3 del Puerto D

Salidas:

Escribir en el puerto D

DIAGRAMA DE FLUJO INICIO Puerto B como entradas Puerto D como salida Defino A, B, C, D Leo puertos b.0, b.1 Portd.0= A Leo puertos b.2, b.3 Portd.1= B Leo puertos b.4, b.5 Portd.2= C Leo puertos b.6 Portd.3= D

CÓDIGO Regfile "m164pdef.dat" $crystal = 800000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Dim A As Bit , B As Bit , C As Bit , D As Bit Do A = Pinb.0 And Pinb.1 Portd.0 = A B = Pinb.2 Or Pinb.3 Portd.1 = B C = Pinb.4 Xor Pinb.5 Portd.2 = C D = Not Pinb.6 Portd.3 = C Loop End

ESQUEMÁTICO

S I M U L A C I Ó N

FOTOS

4. EJERCICIO 5 Atmel 164P AVR PROBLEMA: Crear una tabla de la siguiente Función Booleana: (A and B) or (not C)

Tabla de la función:

A B C Z 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 0 1 0 1 0 1 1

ALGORITMO: Entradas:

Datos del dipswitch a través del Puerto B

Procesos: Configuro el Puerto B como Entradas Configuro el Puerto D como Salidas Defino las variables A, B, C Tipo Bit para Guardar los datos de IN (Puerto B). Leo las variables A, B, C ; los datos de entrada en el Puerto B En la variable A uso la función And. En la variable B uso la función Not. En la variable C realizo la operación Or entre A y B Escribo la variable C en el pin 0 del puerto D

Salidas:

Escribir en el puerto D

DIAGRAMA DE FLUJO INICIO Puerto B como entradas Puerto D como salida Defino A, B, C A = Pinb.0 And Pinb.1 B = Not Pinb.2 A Or B Portd.0 = C

CÓDIGO Regfile "m164pdef.dat" $crystal = 800000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Dim A As Bit , B As Bit , C As Bit , D As Bit Do A = Pinb.0 And Pinb.1 B = Not Pinb.2 C = A Or B Portd.0 = C Loop End.

ESQUEMÁTICO

S I M U L A C I Ó N

FOTOS

CONCLUSIONES

Que el AVR utilizado en esta práctica el Atmega 164p, tienen una capacidad grande para control de procesos básicos y complejos, aunque en algunos programas ocupan extenso espacio de memoria es suficiente para la práctica para empezar a conocer sobre AVR. Que la elaboración de esta práctica nos sirve para comprender un poco más la teoría de los AVR y su aplicación; de ahí la importancia del mismo, pues a través de él se puede apreciar lo interesante que es la programación en nuestra vida cotidiana. El lenguaje de programación cargado en los AVR se lo realizó a través del Compilador Bascom, debido a que es un lenguaje fácil y rápido de programar, para principiantes en AVR. BIBLIOGRAFIA http://www.atmel.com/dyn/resources/prod_documents/doc7674.pdf , datasheet Atmega164p, fecha de revisión: 09/10/2010.