Informe Sistemas Microprocesados Practica 1 Avr

18
UNIVERSIDAD POLITECNICA SALESIANA ESCUELA DE ELECTRONICA INTEGRANTES CHRISTIAN IBARRA GUILLERMO ROMERO JUAN CARLOS YACELGA MATERIA SISTEMAS MICROPROCESADOS I PROFESOR ING. LUIS OÑATE TEMA INFORME DE LABORATORIO PRACTICA 1 AVR’S CURSO 6G1 FECHA 14/10/10

Transcript of Informe Sistemas Microprocesados Practica 1 Avr

Page 1: Informe Sistemas Microprocesados Practica 1 Avr

UNIVERSIDAD POLITECNICA SALESIANA ESCUELA DE ELECTRONICA

INTEGRANTES CHRISTIAN IBARRA

GUILLERMO ROMERO JUAN CARLOS YACELGA

MATERIA SISTEMAS MICROPROCESADOS I

PROFESOR ING. LUIS OÑATE

TEMA INFORME DE LABORATORIO PRACTICA 1 AVR’S

CURSO 6G1

FECHA 14/10/10

Page 2: Informe Sistemas Microprocesados Practica 1 Avr

OBJETIVO

Manejar los microcontroladores AVR’s y familiarizarnos con el manejo de entradas y salidas del microcontrolador atmega164. MARCO TEORICO

Los AVR son una familia de microcontroladores RISC de Atmel. La arquitectura de los

AVR fue concebida por dos estudiantes en el Norwegian Institute of Technology, y

posteriormente refinada y desarrollada en Atmel Norway, la empresa subsidiaria

de Atmel, fundada por los dos arquitectos del chip.

El AVR es una CPU de arquitectura Harvard. Tiene 32 registros de 8 bits. Algunas

instrucciones sólo operan en un subconjunto de estos registros. La concatenación de

los 32 registros, los registros de entrada/salida y la memoria de datos conforman un

espacio de direcciones unificado, al cual se accede a través de operaciones de

carga/almacenamiento. A diferencia de los microcontroladores PIC, el stack se ubica

en este espacio de memoria unificado, y no está limitado a un tamaño fijo.

El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C

compilado. Como este lenguaje utiliza profusamente punteros para el manejo de

variables en memoria, los tres últimos pares de registros internos del procesador, son

usados como punteros de 16 bit al espacio de memoria externa, bajo los nombres X, Y

y Z. Esto es un compromiso que se hace en arquitecturas de ocho bit desde los tiempos

de Intel 8008, ya que su tamaño de palabra nativo de 8 bit (256 localidades accedidas)

es pobre para direccionar. Por otro lado, hacer que todo el banco superior de 16

registros de 8 bit tenga un comportamiento alterno como un banco de 8 registros de

16 bit, complicaría mucho el diseño, violando la premisa original de su simplicidad.

Además, algunas instrucciones tales como 'suma inmediata' ('add immediate' en

inglés) faltan, ya que la instrucción 'resta inmediata' ('substract immediate' en inglés)

con el complemento dos puede ser usada como alternativa.

El set de instrucciones AVR está implementado físicamente y disponible en el mercado

en diferentes dispositivos, que comparten el mismo núcleo AVR pero tienen distintos

periféricos y cantidades de RAM y ROM: desde el microcontrolador de la familia Tiny

AVR ATtiny11 con 1KB de memoria flash y sin RAM (sólo los 32 registros), y 8 pines,

hasta el microcontrolador de la famila Mega AVRATmega2560 con 256KB de memoria

flash, 8KB de memoria RAM, 4KB de memoria EEPROM, conversor análogo digital de

10 bits y 16 canales, temporizadores, comparador analógico, JTAG, etc. La

compatibilidad entre los distintos modelos es preservada en un grado razonable.

Los microcontroladores AVR tienen una cañería ('pipeline' en inglés) con dos etapas

(cargar y ejecutar), que les permite ejecutar la mayoría en un ciclo de reloj, lo que los

hace relativamente rápidos entre los microcontroladores de 8-bit.

El set de instrucciones de los AVR es más regular que la de la mayoría de los

microcontroladores de 8-bit (por ejemplo, los PIC). Sin embargo, no es completamente

ortogonal:

Page 3: Informe Sistemas Microprocesados Practica 1 Avr

Los registros punteros X, Y y Z tienen capacidades de direccionamiento diferentes

entre sí (ver mas arriba por qué)

Los registros 0 al 15 tienen diferentes capacidades de direccionamiento que los

registros 16 al 31.

Las registros de I/O 0 al 31 tienen distintas características que las posiciones 32 al

63.

La instrucción CLR afecta los 'flag', mientras que la instrucción SER no lo hace, a

pesar de que parecen ser instrucciones complementarias (dejar todos los bits en 1,

y dejar todos los bits en 0 respectivamente).

Los códigos de operación 0x95C8 y 0x9004 hacen exactamente lo mismo (LPM).

Como los PIC, tiene una comunidad de seguidores (ejemplificadas por el foro de

internet AVRFreaks), principalmente debido a la existencia de herramientas de

desarrollo gratuitas o de bajo coste. Estos microcontroladores están soportados por

tarjetas de desarrollo de costo razonable, capaces de descargar el código al

microcontrolador, y por una versión de las herramientas GNU. Esto último es posible

por su uniformidad en el acceso al espacio de memoria, propiedad de la que carecen

los procesadores de memoria segmentada o por bancos, como el PIC o el 8051 y sus

derivados.

DATASHEET

Figura 1. Pines de conexión del microcontrolador ATmega 164

Page 4: Informe Sistemas Microprocesados Practica 1 Avr

DESARROLLO DE LA PRÁCTICA

TALLER 1: CONTROL DE PUERTOS 1.1 Escritura en un puerto del microcontrolador Atmel AVR. 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. Ejercicio 1 Diagrama de flujo

Inicio

Configuro el puerto D como salida

Escribo por el puerto D el valor 55 en hexadecimal

Código Este programa escribe el valor 55 hexadecimal en el puerto D. $regfile "m164pdef.dat" $crystal = 8000000 Ddrd = 255 Config Portd = Output Do Portd = &B1010_1010 Loop End

Page 5: Informe Sistemas Microprocesados Practica 1 Avr

Simulación

Figura 2.

Simulación realizada en el programa ISIS de Proteus versión 7.6 Fotografía

Figura 3. Circuito # 1 armado en el laboratorio

Page 6: Informe Sistemas Microprocesados Practica 1 Avr

Ejercicio 2 Diagrama de flujo

Inicio

Configuro el puerto D

como salida

Escribo por el puerto D.1 el valor

1 lógico Código

Este programa escribe en un pin del puerto D. $regfile "m164pdef.dat" $crystal = 8000000 Ddrd = 255 Config Portd = Output Portd = 0 Do Portd.1 = 1 Loop End

Page 7: Informe Sistemas Microprocesados Practica 1 Avr

Simulación

Figura 4.

Simulación realizada en el programa ISIS de Proteus versión 7.6 Fotografía

Figura 5.

Circuito # 2 armado en el laboratorio

Page 8: Informe Sistemas Microprocesados Practica 1 Avr

Ejercicio 3

Diagrama de flujo

Inicio

Configuro el puerto D como salida

Escribo por el puerto D el valor

240 hexadecimal Código Este programa escribe en el puerto D el valor 240 en hexadecimal. $regfile "m164pdef.dat" $crystal = 8000000 Ddrd = 255 Config Portd = Output Do Portd = 240 Loop End

Page 9: Informe Sistemas Microprocesados Practica 1 Avr

Simulación

Figura 6.

Simulación realizada en el programa ISIS de Proteus versión 7.6 Fotografía

Figura 7.

Circuito # 3 armado en el laboratorio

Page 10: Informe Sistemas Microprocesados Practica 1 Avr

1.2 lectura y escritura en puertos.

Para leer en un puerto de un microcontrolador AVR se utiliza el comando PIN, además se va a introducir el uso de variables. Ejercicio 4 Diagrama de flujo

Inicio

Configuro el puerto B

como entrada y el puerto D como salida

Defino la variable A

Escribo en el puerto D

Puerto B = A

Código Este programa escribe en el puerto D el valor ingresado por el puerto B. $regfile "m164pdef.dat" $crystal = 8000000 Ddrd = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Dim A As Byte Do A = Pinb Portd = A Loop End

Page 11: Informe Sistemas Microprocesados Practica 1 Avr

Simulación

Figura 8.

Simulación realizada en el programa ISIS de Proteus versión 7.6 Fotografía

Figura 9.

Circuito # 4 armado en el laboratorio

Page 12: Informe Sistemas Microprocesados Practica 1 Avr

1.3 Tablas de verdad

Utilizando el esquema del tema 1.2, se comprobara el uso de las funciones lógicas, and, or, xor y not. Ejercicio 5 Diagrama de flujo

Inicio

Configuro el puerto B

como entrada y el puerto D como salida

Defino la variable A,B,C,D

A = and B = or

C = xor D = not

Puerto D.0 = A Puerto D.1 = B Puerto D.2 = C Puerto D.3 = D

Page 13: Informe Sistemas Microprocesados Practica 1 Avr

Código

Este programa escribe en el puerto D el valor ingresado por el puerto B. $regfile "m164pdef.dat" $crystal = 8000000 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 = D Loop End Simulación

Figura 10.

Simulación realizada en el programa ISIS de Proteus versión 7.6

Page 14: Informe Sistemas Microprocesados Practica 1 Avr

Tablas

and

0 0 1 1

0 1 0 1

0 0 0 1

or

0 0 1 1

0 1 0 1

0 1 1 1

Xor

0 0 1 1

0 1 0 1

0 1 1 0

Not 0

1 1 0

1 0 0 1

Page 15: Informe Sistemas Microprocesados Practica 1 Avr

Fotografía

Figura 11.

Circuito # 5 armado en el laboratorio

Page 16: Informe Sistemas Microprocesados Practica 1 Avr

Ejercicio 6 Diagrama de flujo

Inicio

Configuro el puerto B como entrada y

el puerto D como salida

Defino la variable A,B,C

Defino las funciones boleanas

Puerto D.0 = C

Código Este programa escribe en el puerto D el valor ingresado por el puerto B. $regfile "m164pdef.dat" $crystal = 8000000 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

Page 17: Informe Sistemas Microprocesados Practica 1 Avr

Simulación

Figura 12.

Simulación realizada en el programa ISIS de Proteus versión 7.6 Tabla

A B C A AND B NOT C (A AND B) OR (NOT C)

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 0 0 1 1

1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 1

Page 18: Informe Sistemas Microprocesados Practica 1 Avr

Fotografía

Figura 13.

Circuito # 6 armado en el laboratorio

CONCLUSIONES

Aprendimos a programar el microcontrolador ATmega164, manejando puertos de entrada y salida.

Usamos funciones lógicas para resolver una función boleana.

BIBLIOGRAFIA

http://es.wikipedia.org/wiki/AVR

http://www.alldatasheet.com/datasheet-pdf/pdf/163109/ATMEL/ATMEGA164.html