Hope this one help you i little
;------------------------------------------------------
; AT90S8515:toggle PORTB0.0 PIN IN AVR SIMULATOR
; Belgitaes
.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
.ORG 0x0007
rjmp OverFlow0 ;OverFlow Temp/Cont0
; --------------------------------------------------------
; RUTINA DE RESET
; --------------------------------------------------------
RESET: cli
ldi r16,HIGH ( PILA )
out SPH,r16
ldi r16,LOW (PILA )
out SPL,r16
;*******DESDE AQUĂ VUESTRO CODIGO*****
;Configuracion De Los Puertos
;...............................................
out ddrB,r16;DDRB has been set As Output
cbr r16,0x01; Configuro Patilla 0 Del Puerto B A 0
out portB,r16; Escribe 1111 1110
;...............................................
sei ;Autorizacion Interrupcion General
;TimsK:
; |***Cuando El Bit Esta A 1 En TOIE0
;|--7--|--6---|--5---|--4---|--3---|--2--|--1--|--0--|***Se Valida La Interupcion
;|-----|------|------|------|------|-----|-----|-----|*** Timer /Counter0
;|TOIE1|OCIE1A|OCIE1B| - |TICIE1| - |TOIE0| - |** El Bit TVO0 Se Modifica
;|-----|------|------|------|------|-----|-----|-----|** En El Registro TIFR
; 0 0 0 0 0 0 1 0
; *
ldi r16,0x02
out TimsK,r16
;.............................................................................
;Contador Ascendente Incrementa Desde 0 Hasta 256
;Se Activa El Bit TOV0 De Tifr Cada Vez Que El Contador Pasa De FF A 00 ( Overflow)
;............................................................................
;256 x 8 = 2048 microsegundos
ldi r16,0xA3 ;2048/100 = 20,48 X 8 = 163,84
;163 Decimal = A3 Hexadecimal
;256 Decimal = 100 Hexadecimal - A3 = 5D
;5D = 93 x 8 = 744 microsegundos
out TcnT0,r16
;............................................................................
;TccR0:
;|--7--|--6--|--5--|--4--|--3--|--2--|--1--|--0--|** Selector Del Factor De
;|-----|-----|-----|-----|-----|-----|-----|-----|** Pré-Division Del Reloj
;| MSB | | | | |CS02 |CS01 |CS00 |** Define Prescaler
;|-----|-----|-----|-----|-----|-----|-----|-----|** Por Señal Externa Pin T0
; | 0 | 1 | 0 |** Reloj Systema /8 CLK I/O/8 (Desde El Pre-Escalador)
ldi r16,0x02
out TccR0,r16
;................................................
;Hacer Un Programa Que Tendra Un Bucle Infinito
;Que Haga Lo Que Quiera ! No Se Me Occure Nada !
;Asi Que Configuro La Salida Por Hacer Algo
;Del Puerto Para Cuando Salga Del Bucle .
;.........................................
ldi r16,0x01
;..........................................
;1Âș Vuelta Bucle Infinito
;2Âș Vuelta Bucle Salta A Stop
;.........................................
SaltoEnVacio:
tst r16
breq stop
rjmp SaltoEnVacio
OverFlow0:
out PortB,r16 ;toggle PORTB0.0 PIN IN A 1
clr r16
out TcnT0,r16 ;Contador A 0
out TimsK,r16 ;Deshabilito Interrupcion
reti ; Retorno de La Interrupcion
;****HASTA AQUĂ VUESTRO CODIGO********
STOP: rjmp STOP ;FIN DEL PROGRAMA