A ver si te vale eso
;------------------------------------------------------
; Declaraciones estandar para este micro AT90S8515:
.include "8515def.inc"
;-----------------------------------------------------------
; Definicion de constantes y variables
; --------------------------------------------------------
; Pila
.equ PILA =0x0FF
;-----------------------------------------------------
.DSEG
; MEMORIA RAM
.ORG (PILA+1)
;----------------------------------------------------
; Vectores de interrupcion
;----------------------------------------------------
.CSEG
.ORG 0x0000
rjmp RESET ; RESET
; --------------------------------------------------------
; RUTINA DE RESET
; --------------------------------------------------------
RESET: cli
ldi r16,HIGH ( PILA )
out SPH,r16
ldi r16,LOW (PILA )
out SPL,r16
;*******DESDE AQUÍ VUESTRO CODIGO*****
;---------------------------------------------------
; Llamada De La Funcion
;---------------------------------------------------
ldi zh, 0x01; Inicio Puntero Msb
ldi zl, 0x00; Inicio Puntero Lsb
ldi r16,0x4F ; O ;Cargo La Lista En Registros
ldi r17,0x6B ; K ;De Hex A Ascii
ldi r20,0x03
;----------------------------------------------------
; Envio de una cadena a la Ram desde los Registros
;----------------------------------------------------
sts $0100,r16
sts $0101,r17
clr r0
;---------------------------------------------------------
; Configuro La Uart Para 9600 Bauds Con Un Cristal De 8 Mhz
;----------------------------------------------------------
LDI R17,0x18 ;\ Transmision Activada Bit3 Y/Recepcion Activada Bit 4 en UCR
; |Para activar la recepción es necesario colocar el bit RXEN (Receive Enabled)
; |Recepcion activada bit 4 en UCR
; |La parte transmisión del USART se activa colocando el bit TxEN
;/ (transmitió a Enabled) del registro de control UCR
OUT UCR,R17 ; Salida hacia el puerto UCR (set RXEN, TXEN )
;Para fijar la velocidad tienes que pasar un valor a UBRR
;que se pueda calcular como sigue
LDI R17, 0x33 ;\ UBRR = (frecuencia cristal XTAL /(16 * baudrate)) - 1
; |Inicialisation Uart 9600 BDS Quartz = 8 Mhz
; |9600*16 = 153600
; |UBRR = 8.000.000 / (9600*16) - 1
; |UBRR = 8.000.000 / 153600) - 1 = 52,08 Decimal -1 = 51.08 Decimal
;/ = 51.08 Decimal = 33 Hexadecimal
OUT UBRR, R17
PunteroRam:
ldi zl,$00;Señalo Puntero En La Direcion $100 De La Ram
Sacar:
ld r0,z+ ;Cargo r0 Con El Dato De La Direcion
mov r17, r0
dec r20
breq stop
Mandar:
out udr, R17
rjmp Sacar
;****HASTA AQUÍ VUESTRO CODIGO********
STOP: rjmp STOP ;FIN DEL PROGRAMA
;-------------------------------------------------------------