programacion atmel

Páginas: 11 (2707 palabras) Publicado: 29 de marzo de 2014
Autor: Alberto J. Molina Cantero

Programación del microcontrolador
ATMega328P

1. Introducción y objetivos
- Utilizar el entorno de programación y depuración de microcontroladores de ATMEL AVR-STUDIO
que ya se presentó en la práctica anterior.
- Simular y depurar programas escritos en lenguaje ensamblador para el microcontrolador
ATMEGA328P que usen puertos de E/S.
- Programarrealmente el microcontrolador ATMEGA328P que se encuentra en una placa de
desarrollo llamada Arduino1 Duemilanove (Figura 1a). Para ello se utiliza la plataforma de depuración/
programación AVR-DRAGON (Figura 1b) también del fabricante ATMEL.
Las placas Arduino están diseñadas para ser programadas en un lenguaje de programación propio,
transfiriéndose los programas a través de su puerto USB. En estasesión de laboratorio no se
utilizarán estas características, es decir, se programarán directamente en ensamblador. Por ello, se
han realizado modificaciones en dichas placas. Aunque no es relevante para esta sesión de
laboratorio, se puede consultar toda la información adicional sobre esta placas en:
http://www.arduino.cc
AVR.STUDIO puede descargarse gratuitamente desde las páginas delfabricante de ATMEL en:
http://www.atmel.com

0

(a)

(b)

Figura 1: (a) Placa de desarrollo Arduino. (b) Programador/depurador AVR-Dragon.

Durante la sesión de laboratorio se debe disponer de los ficheros indicados en la tabla 1.
Nombre del fichero

Contenido

contador_0_10.asm

Programa contador de 0 a 10. A completar por el alumno.

contador_0_1000.asm

Programa contador de 0a 1000. A completar por el alumno.

conmutadores.asm

Programa para controlar dos pulsadores y dos leds. A completar por el
alumno.
Tabla 1: Ficheros necesarios para realizar la práctica

2. Estudio teórico
Se van a utilizar tres programas en lenguaje ensamblador. Estos están disponibles en el directorio
correspondiente a esta práctica en la web de la asignatura.
A continuación sepresentan algunos detalles de los mismos:
1. Programa CONTADOR de 0 a 10:
Se trata de realizar un programa contador_0_10.asm en ensamblador que cuente de 0 a 10
utilizando un registro del microcontrolador. Cuando termine la cuenta el programa debe invertir
el valor del pin PC0 y volver a empezar, es decir, volverá a contar de 0 a 10 e invertirá de nuevo
el pin PC0. Así indefinidamente.

1 Para realizar el programa correctamente se debe configurar el puerto C como salida, para ello
se propone comenzar el programa utilizando el siguiente fragmento de código (fichero
contador_0_10.asm):
; Programa contador de 0 a 10
; Cada vez que se pase por 10 se debe invertir el PINC0
.include "m328pdef.inc"
.DEF TMP=R19
LDI R19,$FF
OUT DDRC,TMP ; Configura el puerto C completo como salida
;A COMPLETAR

2. Programa CONTADOR de 0 a 1000:
Se trata de realizar un programa contador_0_1000.asm similar al anterior pero que cuente de 0
a 1000 antes de invertir el PC0. Ha de tenerse en cuenta que los registros del microcontrolador
son de 8 bits y, por tanto, la cuenta máxima que se puede realizar con un único registro es de 0
a 255.
3. Programa para controlar los CONMUTADORES:
Setrata de realizar un programa conmutadores.asm que permita manejar los puertos de
entrada/salida para poder activar ciertos leds cuando se pulsa un conmutador.
En el esquema de la Figura 2 aparecen dos leds (PC4 y PC5 - línea discontinua) y dos
conmutadores (PC2 y PC3 - línea continua) que deben operar de la siguiente forma:
- si se pulsa el conmutador conectado a PC5 debe encenderse el ledconectado a PC3 y
mantenerse encendido hasta que se vuelva a pulsar el conmutador PC5.
- si se pulsa el conmutador conectado a PC4 debe encenderse el led conectado a PC2 y
mantenerse encendido hasta que se vuelva a pulsar el conmutador PC4.

Figura 2: (a) Placa de expansión E/S para Arduino. (b) Detalle de conexión de los segmentos
del display a los pines de E/S.

2

La Tabla 2 muestra...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • atmel
  • Atmel 1
  • Atmel
  • Atmel
  • Pic Vs Atmel
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS