sábado, 2 de noviembre de 2013

APRENDIENDO ENSAMBLADOR

En esta ocasión se realizara una pequeño ejemplo de como programar un microcontrolador AVR en lenguaje ensamblador, el propósito de este es conocer el funcionamiento de este tipo de programación así como de observar sus ventajas en comparación con los lenguajes de alto nivel tales como C.

El programa que se les mostrara es muy sencillo únicamente cambia de estado las salidas de los puertos B y D pero, el aprendizaje este tipo de programación es muy importante en la ingeniería sobretodo a la hora de disminuir el tamaño de un programa y reducir la carga en el microcontrolador.

DESCRIPCIÓN:

  El programa comienza de forma similar a como programamos en C, declaramos el dispositivo que estamos utilizando y la directiva .include donde agregamos el contenido del archivo a nuestro programa, en este caso incluimos el correspondiente a nuestro microcontrolador, en nuestro caso el ATMEGA48.
  Una vez realizado todo esto definimos una variable a uno de nuestros registros de propósito general
el cual nos permitirá definir salidas y cambiar el estado de nuestros puertos.
  A continuación se ingresa al label Init donde definiremos nuestras salidas, en este caso definimos como salidas todo el puerto B y D, ademas de que determinamos el valor inicial que presentaran. 
Para finalizar en la ingresamos al label start que es el equivalente a nuestro main en C, donde indicamos que el puerto B presente el numero hexadecimal 0xDD.

Alguna duda pueden ingresarla en los comentarios.

/*
 * por1.asm
 *
 *  Created: 02/11/2013 13:49:46
 *   Author: NEBURESS.KYLL
 */ 

 .device ATMEGA48
.include "C:\Program Files (x86)\Atmel\Atmel Studio6.0\extensions\Atmel\AVRAssembler\2.1.51.64\avrassembler\include\m48def.inc"

 .def temp =r16



 RJMP Init

 Init: ldi temp,0xFF
out DDRB,temp
ldi temp,0xFF
out DDRD,temp

ldi temp,0xAA
out PORTB,temp
ldi temp,0xF4
out PORTD,temp

start:
ldi    temp,0xDD
out   PORTB,temp
rjmp start

SIMULACIÓN EN PROTEUS


SIMULACIÓN EN ATMEL STUDIO IDE


No hay comentarios:

Publicar un comentario