sábado, 28 de febrero de 2015

Manejo de tablas con el Atmega164P por David Torres Herrera



Manejo de tablas con el Atmega164P por David Torres Herrera

Visualizando mensaje en el AVR studio
El uso de tablas en los microcontroladores AVR’s es muy necesario a la hora de implementar cierto tipo de programas donde se necesita optimizar el código y así evitarnos largas jornadas de programación en assembler. Usos adecuados del manejo de tablas en assembler las podemos encontrar para sacar secuencias de números,  secuencias de encendidos, mostrar mensajes de texto por comunicación serial, etc.

En este programa se mostrara como visualizar un mensaje por medio del manejo de tablas.

.include"m164pdef.inc"    
.def   contador = r17             ; defino el registro r17 como contador


.dseg        ;se tendra variable que se almacena en la memoria de datos
.org   0x100  ;se apunta a la direccion 0x100 de la SRAM

Mensaje: .byte 24 ; definimos el tamano de la variable que mostrara el mensaje
                              ; el mensaje es "Electroncia desdeEcuador_"

.cseg
.org   0x00   ; desde aqui empieza el programa

//apunto con los punteros indicados para sacar el mensaje
inicio:
ldi    contador,25         ;cargo contador con el numero de la variable a sacar +1
ldi    xh,high(Mensaje)    ;apunto al puntero x alto y le cargo el tamano de mensaje
ldi    xl,low(mensaje)     ;apunto al puntero x bajo y le cargo el tamano de mensaje

ldi    zh,high(tabla<<1)   ;apunto cpn puntero z alto para sacar datos de la tabla
ldi    zl,low(tabla<<1)    ;apunto cpn puntero z bajo para sacar datos de la tabla

//rutina donde se saca caracter por caracter y se lo muestra
mostrar:
lpm          r16,z+ ;carga el valor del puntero z en r16
st           x+,r16 ; guarda el valor de r16 en el puntero x
dec          contador ; decrmenta contador hasta que
brne   mostrar      ; se haga cero y sale del lazo mostrar
fin:
rjmp   fin          ; se mantiene en un lazo infinito una vez acabado el programa


// las tablas simepre deben colocarse al final del programa
tabla:
.db "Electronica desde Ecuador_" ; la tabla debe contener datos pares, caso contrario
              ; el AVR studio nos completara con cero ese espacio


·        Cuando se procede a depurar un programa en el AVR studio se debe presionar play en la barra de herramientas en la parte superior del programa

·        Una vez que lo hemos hecho nos pedirá seleccionar el depurador

·        Se selecciona el simulador 
 
·        Luego se procede a pausar le depuración para así observar los resultados
 
·        Una vez hecho esto procedemos a observar los datos de la tabla en la IRAM, hay que fijarse que estos comienzan desde la localidad que nosotros le designamos que fue 0x100
 

1 comentario: