; File DEMOF84.ASM
; Assembly code for PIC16F84 microcontroller

; Enciende leds del puerto B con un patrón de rotación
; Oscilador Cristal de 4 Mhz. Cada LED enciende durante 0.5 seg.

; Configuración del CPU
; 16F84, Oscilador cristal 4 Mhz,
; watchdog timer off, power-up timer on)
; incluye archivo p16f84.inc

	processor 16f84
	include	  <p16f84.inc>
	__config  _XT_OSC & _WDT_OFF & _PWRTE_ON
J	equ	H'1F'	  ; localidad 1F es J
K	equ	H'1E'	  ; localidad 1E es K

; Programa

	org	0	  ; origen de memoria flash =0

	movlw	B'00000000'	; w := 00000000 
	tris	PORTB		; puerto B=0 (bits son salidas)
	movlw	B'00000001'	; 
	movwf	PORTB		; port B =1
	bcf     STATUS,C  	;carry=0
mloop:	rlf	PORTB,f		;rotate left PORT B (incluye carry)
	movlw	D'202'		;retraso antes de seguir rotación
	movwf	J	; J := w
jloop:	movwf	K	; K := w
kloop:	decfsz	K,f	; K = K-1, skip next if zero
	goto 	kloop
	decfsz	J,f	; J = J-1, skip next if zero
	goto	jloop
	goto 	mloop

	end	

