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 programadora externa.
ATMEGA16
con
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 Sistemas 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.
Desarrollo del programa
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 o o o o
configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de 10101010 fin del lazo fin del programa
Diagrama de Flujo INICIO
Ddrd=255
Config Portd=Output
Portd=55
FIN
Codificación: fig.3
Esquemático
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. PROGRAMADO R ATMEL AVR
Microcontrolador AVR.
Ahora después de instalar la programadora vemos su interfaz y cargamos el código en nuestro microcontrolador AVR.
Primero debemos instalar los drivers del controlador y luego ejecutar el software y aparecerá la siguiente pantalla del software
Software AVR
fig.6
Y cargamos el programa en el microcontrolador Atmega16
Cargamos el programa *.hex
fig.7
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 o o o o
configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de 55 hexagesimal fin del lazo fin del programa
Diagrama de Flujo INICIO
Ddrd=255
Config Portd=Output
Portd=0
Portd.1=1
FIN
Codificación:
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
Código *.hex en el Microcontrolador
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
Ejercicio 3.Determinar: Entradas: Numero binario 1111 0000 Salidas: escribir en el puerto el valor de F0 en hexagesimal. Procesos: o o o o o
configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de F0 hexagesimal fin del lazo fin del programa
Diagrama de Flujo INICIO
Ddrd=240
Config Portd=Output
Portd=F0
FIN
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 se 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 o o o o o o o
configurar el puerto Se inicializa el puerto D como salida Se inicializa el puerto B como entrada Inicio de lazo infinito Lee en la variable A los datos escritos en el puerto B Se escribe en el puerto D los datos leidos en el puerto B fin del lazo fin del programa
Diagrama de Flujo INICIO
Defino Variable A
Ddrb=0
Ddrd=255
Config Portd=Output
Config Portb=Input A=Pinb Portd=A
FIN
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 o o o o o o o o o
Definir las Variables A,B,C,D Guardar el valor de lasVariables configurar el puerto Se inicializa el puerto D como salida Se inicializa el puerto B como entrada Inicio de lazo infinito Realizacion de Operaciones con funciones logicas and or Xor not Imprimr resultados en puertos A,B,C,D Fin del lazo Fin del Programa.
Diagrama de Flujo
INICIO
Defino Variable A, B, C, D
Ddrb=0 Ddrd=255 Config Portd=Output Config Portb=Input A=Pinb.0 And Pinb.1 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 FIN
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.
0 0 0 0 1 1 1 1
ABC 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
(AB)+/C 1 0 1 0 1 0 1 1
Determinar: Entradas: Defino la variable A,B,C Salidas: Codigo binario escrito en el puerto D Procesos: o o o o o o o o o o
Definir las Variables A,B,C Guardar el valor de lasVariables configurar el puerto Se inicializa el puerto D como salida Se inicializa el puerto B como entrada Inicio de lazo infinito Realizacion de Operaciones con funciones logicas AND OR Imprimr resultados en puertos A,B,C Fin del lazo Fin del Programa.
Diagrama de Flujo
INICIO
Defino Variable A, B, C,
Ddrb=0 Ddrd=255 Config Portd=Output Config Portb=Input A = Pinb.0 And Pinb.1 B = Not Pinb.2 C = A Or B Portd.0 = C FIN
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.