Post on 16-Nov-2014
description
transcript
Universidad Politécnica Salesiana
Ingeniería Electrónica
Sistemas Microprocesados
INFORME DE LABORATORIO MICROCONTROLADOR ATMEL AVR
CONTROL DE PUERTOS EN EL MICROCONTROLADOR
ATMEGA16
Integrantes:
• Juan Villacís S.
• Gabriela Chicaiza
Ing. Luis Oñate
Periodo
Sept./2009-feb/2010
Tema:
Lectura y escritura en el microcontrolador ATMEL AVR CON ATMEGA16 con programadora externa.
Objetivo:
Utilizar los puertos del microcontrolador AVR, como interface digital al mundo exterior.
Programas un n microcontrolador AVR con un lenguaje de Programación en este caso el software Bascom AVR ver1.8.11
Aprender un nuevo lenguaje de programación y verificar sus resultados en cada uno de sus ejercicios tanto de lectura como de escritura en cada uno de sus pines.
Desarrollo de las Prácticas del laboratorio de Sist emas Microprocesador.
Para esta práctica de laboratorio debemos tener todos los elementos ya listos para su implementación ya que es de suma importancia tener práctica y saber qué es lo que nos piden.
Para eso vamos a ejecutar nuestro programa:
Vamos: Inicio/Todos los programas/BASCOM-AVR/ BASCOM-AVR/ and click
Y vamos a elaborar un nuevo programa como se muestra en la interfaz siguiente:
Descripción:
Para escribir en un puerto se debe, habilitar mediante el comando DDRX=255. Como salidas, luego se procede a escribir el valor en el puerto, Para este ejemplo.
Ver Figura: 1
1.- abrir BASCOM-AVR
fig.1
2.-procedemos a crear un nuevo proyecto.
fig.2
3.- Primero antes de nada procedemos a realizar el Diagrama de Flujo el que nos permitirá guiarnos de una forma precisa, definida, finita.
Ejercicio 1 Escribir el valor 55 hexagesimal en el puerto D
Desarrollo del ejercicio
Determinar:
Entradas:
Numero binario 10101010 o 55 en hexagesimal
Salidas:
escribir en el puerto el valor de 10101010 o 55 en hexagesimal.
Procesos:
o configurar el puerto o iniciar un lazo infinito o escribir en el puerto el valor de 10101010 o fin del lazo o fin del programa
Desarrollo del
programa
� Diagrama de Flujo
� Codificación:
fig.3
Esquemático
INICIO
FIN
Portd=55
Config Portd=Output
Ddrd=255
Simulación
Y procedemos a ejecutar el microcontrolador Atmega16 y simularlo Mediante un software.
Damos clic en el Atmega16 en proteus cargamos el código
fig.4
Buscamos en la carpeta el archivo *.hex del programa a simular.
� Ver su Simulación fig.5
Y luego procedemos a implementarlo en Hardware y software con la programadora
De AVR para el microcontrolador Atmega16. Como se muestra en la figura si siguiente figura.-
Pasar *.hex en el Microcontrolador.
Ahora después de instalar la programadora vemos su interfaz y cargamos el código en nuestro microcontrolador AVR.
PROGRAMADO
R ATMEL AVR
Microcontrolador AVR.
Primero debemos instalar los drivers del controlador y luego ejecutar el software y aparecerá la siguiente pantalla del software
fig.6
Y cargamos el programa en el microcontrolador Atmega16
fig.7
Cargamos el
programa *.hex
Software AVR
Luego de ya cargado el *.hex en nuestro AVR procedemos a ver su resultado como se muestra en la figura siguiente.
fig.8
Aquí se puede observa los resultados como se indica en la simulación y ver la flexibilidad de tener un programa que nos permita controlar nuestros pines del AVR.
2.- este programa escribe en un pin del puerto D
Desarrollo del ejercicio
Determinar:
Entradas:
Numero 55 hexagesimal
Salidas:
escribir en el puerto el valor de 55 en hexagesimal.
Procesos:
o configurar el puerto o iniciar un lazo infinito o escribir en el puerto el valor de 55 hexagesimal o fin del lazo o fin del programa
� Diagrama de Flujo
� Codificación:
INICIO
FIN
Portd=0
Portd.1=1
Config Portd=Output
Ddrd=255
Esquemático
Fig.9
Ver su Simulación
fig.10
Cargamos el Programa en el microcontrolador:
Y luego procedemos a implementarlo en Hardware y software con la programadora
De AVR para el microcontrolador Atmega16. Como se muestra en la figura si siguiente figura.-
Pasar *.hex en el Microcontrolador.
hora después de instalar la programadora vemos su interfaz y cargamos el código en nuestro microcontrolador AVR.
fig.11
Luego de ya cargado el *.hex en nuestro AVR procedemos a ver su resultado como se muestra en la figura siguiente.
• Visualizamos el resultado
fig.12
Código *.hex en el
Microcontrolador
Ejercicio 3.-
Determinar:
Entradas:
Numero binario 1111 0000
Salidas:
escribir en el puerto el valor de F0 en hexagesimal.
Procesos:
o configurar el puerto o iniciar un lazo infinito o escribir en el puerto el valor de F0 hexagesimal o fin del lazo o fin del programa
� Diagrama de Flujo
INICIO
Ddrd=240
FIN
Portd=F0
Config Portd=Output
� Codificación:
Ver su Simulación
fig.10
Cargamos el Programa en el microcontrolador:
Pasar *.hex en el Microcontrolador. Como se muestra en la fig.11
Luego de ya cargado el *.hex en nuestro AVR procedemos a ver su resultado como se muestra en la figura siguiente.
• Visualizamos el resultado
Ejercicio 4.
Lectura y escritura en puertos.
Para leer en un puerto de un microcontrolador AVR s e utiliza el comando PIN . además se va ha introducir al uso de variables.
Determinar:
Entradas:
Defino la variable A
Salidas:
Codigo binario escrito en el puerto D
Procesos:
o Definir una Variable o Guardar el valor de la Variable
o configurar el puerto o Se inicializa el puerto D como salida o Se inicializa el puerto B como entrada o Inicio de lazo infinito o Lee en la variable A los datos escritos en el puerto B o Se escribe en el puerto D los datos leidos en el puerto B o fin del lazo o fin del programa
� Diagrama de Flujo
INICIO
Defino
Variable A
FIN
A=Pinb
Config Portd=Output
Ddrb=0
Ddrd=255
Config Portb=Input
Portd=A
� Codificación:
Ver su Simulación
Cargamos el Programa en el microcontrolador:
Pasar *.hex en el Microcontrolador. Como se muestra en la fig.11
Luego de ya cargado el *.hex en nuestro AVR procedemos a ver su resultado como se muestra en la figura siguiente.
• Visualizamos el resultado
Ejercicio 5.
Tablas de Verdad.-
Utilizando el esquema del tema o ejercicio 4 se comprobara el uso de las funciones lógicas and, or, xor y not.
Determinar:
Entradas: Defino la variable A,B,C,D
Salidas: Codigo binario escrito en el puerto D
Procesos:
o Definir las Variables A,B,C,D o Guardar el valor de lasVariables o configurar el puerto o Se inicializa el puerto D como salida o Se inicializa el puerto B como entrada o Inicio de lazo infinito o Realizacion de Operaciones con funciones logicas and or Xor not o Imprimr resultados en puertos A,B,C,D o Fin del lazo o Fin del Programa.
Diagrama de Flujo
INICIO
Defino Variable A, B, C, D
FIN
A=Pinb.0 And Pinb.1
Config Portd=Output
Ddrb=0
Ddrd=255
Config Portb=Input
Pord.0=A
B=Pinb.2 Or Pinb.3
Pord.1=B
C=Pinb.4 Xor Pinb.5
Pord.2=C
D=not Pinb.6
Pord.3=C
� Codificación:
� Ver su Simulación
Como se mira la utilización del DIPSW_8 y su estado para la comprobación de la tabla de verdad.
Cargamos el Programa en el microcontrolador:
Pasar *.hex en el Microcontrolador. Como se muestra en la fig.11
Luego de ya cargado el *.hex en nuestro AVR procedemos a ver su resultado como se muestra en la figura siguiente.
• Visualizamos el resultado
Ejercicio 6.
Ejercicio Propuesto: Crear la tabla de la siguiente función booleana: (A and B) OR (Not C).
Tabla de Verdad para nuestro Programa.
ABC
(AB)+/C
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
Determinar:
Entradas: Defino la variable A,B,C
Salidas: Codigo binario escrito en el puerto D
Procesos:
o Definir las Variables A,B,C o Guardar el valor de lasVariables o configurar el puerto o Se inicializa el puerto D como salida o Se inicializa el puerto B como entrada o Inicio de lazo infinito o Realizacion de Operaciones con funciones logicas AND OR o Imprimr resultados en puertos A,B,C o Fin del lazo o Fin del Programa.
Diagrama de Flujo
INICIO
Defino Variable A, B, C,
FIN
A = Pinb.0 And Pinb.1
Config Portd=Output
Ddrb=0
Ddrd=255
Config Portb=Input
B = Not Pinb.2
C = A Or B
Portd.0 = C
� Codificación:
� Ver su Simulación
Como se mira la utilización del DIPSW_8 y su estado para la comprobación de la tabla de verdad.
Cargamos el Programa en el microcontrolador:
Pasar *.hex en el Microcontrolador. Como se muestra en la fig.11
Luego de ya cargado el *.hex en nuestro AVR procedemos a ver su resultado como se muestra en la figura siguiente.
• Visualizamos el resultado
Conclusiones:
• Tener en mente la configuración del Antmega16 y su distribución de pines en la programación.
• Llevar armado para no perder tiempo en la practica en el laboratorio • Saber la configuración para su programación tanto de entradas como de
salidas del micro.
Recomendaciones:
• Leer el datasheet e informarse de todas sus funcionalidades ya que es primordial saber bien su funcionamiento y aplicación para implementar su hardware y software.
• Al implementar el hardware externo saber la configuración con el datasheet y su conexión como se explica en la hojas guías.
• Llevar la programadora y saber instalar el software para su correcto funcionamiento en el ATMEGA16.