INFORME #01 DE AVR’S
ERICK PEÑAHERRERA JOSE BUCHELI XAVIER MUÑOZ
SEPTIEMBRE - FEBRERO 2011
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
CÓDIGO
Regfile "m164pdef.dat"
$crystal = 8000000
Ddrd = 255
Config Portd = Output
Portd = 0
Do
Portd.1 = 1
Loop
End
ESQUEMÁTICO
INICIO
Especificar el puerto D como salida
Especifico el pin que deseo como salida (Portd.1=1)
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
Defino la variable A
Puerto B como entradas
Puerto D como salida
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
Defino A, B, C, D
Puerto B como entradas
Puerto D como salida
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:
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
A B C Z 0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
INICIO
Defino A, B, C
Puerto B como entradas
Puerto D como salida
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.