; File DEMOF88.ASM
; Assembly code for PIC16F628 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 p16f628.inc

	processor 16f88
	include	  <p16f88.inc>
	
BANCO0	MACRO	
			BCF	STATUS,RP0
			BCF	STATUS,RP1
			ENDM
BANCO1	MACRO
			BSF	STATUS,RP0
			BCF	STATUS,RP1
			ENDM

J	equ	H'20'	  
K	equ	H'21'	 
			org 0
			clrf PCLATH
			goto WEB
			org	4
WEB			BANCO0
			bcf		RCSTA,SPEN	;DESHABILITA UART
			BANCO1
			movlw	7
			movwf	CMCON
			clrf	CVRCON
			clrf	ANSEL		;DESHABILITA CONVERTIDORES A/D		
			clrf	TRISA
			clrf	TRISB
			BANCO0			 			
inicio:		clrf	PORTB
			clrf	PORTA
	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	

