Вы находитесь на странице: 1из 25

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 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 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
 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 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

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 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

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 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

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 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

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.

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,

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.

Вам также может понравиться