Desde ya les digo que como lo hice hace mucho, cuando recien empezaba, lo recontra comenté, pero yo no creo que el problema este en el código ya que en el ISIS funciona muy bien.
Codigo:
list p=16f84A ;identificar el micro usado.
include "p16F84A.inc" ;archivo con los registros definidos.
org 00h ;posición de memoria de comienzo del reset ( 0000h ).
reset ;etiqueta = posición de memoria.
goto inicio ;salto a posición de memoria donde comienza el programa.
org 10h ;posición de memoria donde comienza el programa ( 0010h ).
inicio ;etiqueta = dirección 0010h.
;-------------------------------------------
;Configurar el puerto B como salida
;--------------------------------------------
;Registro TRISB=00000000B para salidas.
bsf STATUS,RP0 ;pongo a uno el bit 5 del registro STATUS para entrar en el banco 1. ¿para poder configurar?
movlw 00000000B ;cargo w con el dato 00h = 00000000B = todos salidas.
movwf TRISB ;cargo el registro TRISB con el w para hacer el puerto B como salida.
bcf STATUS,RP0 ;pongo a cero el bit 5 del registro STATUS para entrar en el banco 0. ¿para terminar de configurar?
;----------------------------------
;PROGRAMA PRINCIPAL
;-----------------------------------
programa ;etiqueta de programa principal.
movlw 00000000B ;cargo w con el dato 00000000B
movwf PORTB ;cargo el registro PORTB con w apagando los leds.
call sg1 ;subrutina de retardo de 1 seg.
movlw 11111111B ;cargo w con el dato ffh = 11111111B.
movwf PORTB ;cargo el registro PORTB con w encendiendo los leds.
call sg1 ;subrutina del retardo de 1 seg.
goto programa ;salta al comienzo del programa.
;------------------------------------------------
;RETARDOS
;------------------------------------------------
sg1 ;etiqueta = subrutina del retardo de 1 seg.
movlw 0ffh ;cargo w con el dato ffh = 11111111B.
movwf 0ch ;cargo el registro 0ch con el w.
movwf 0dh ;cargo el registro 0dh con el w.
movlw 01h ;cargo w con el dato 01h = 00000001B.
movwf 0eh ;cargo el registro 0eh con w.
salto1 ;etiqueta del bucle de repetición.
decfsz 0ch,1 ;decremento el registro 0ch y salto si es cero depositando el resultado en 0ch.
goto salto1 ;salto a la etiqueta salto1.
decfsz 0dh,1 ;decremento el registro 0dh y salto si es cero depositando el resultado en 0dh.
goto salto1 ;salto a salto1.
decfsz 0eh,1 ;decremento el registro 0eh y salto si es cero depositando el resultado en 0eh.
goto salto1 ;salto a salto1.
return ;regreso de subrutina.
end ;fin del programa PORTB.