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 " 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" "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
Defi Defino no A B C A = Pinb.0 And Pinb.1
B = Not Pinb.2
A Or B
Portd.0 = C
CÓDIGO Regfile "m164pdef.dat" "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.