; ARCHIVO CONTADOR.ASM
; CODIGO FUENTE PARA EL MICROCONTROLADOR PIC16F628 

; CUENTA BINARIA EN LOS LEDS. RETRASO DE 500 MS.
; VERSION PARA OSCILADOR CRISTAL 4 MHZ

; CPU configuration
; 	(It's a 16F628, XT OSCILADOR
; 	watchdog timer off, power-up timer on)

	processor 16f628
	include	  <p16f628.inc>
	__config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF


J	equ	H'20'	  
K	equ	H'21'	 


			org	0	  
	movlw           0x7		
            movwf           CMCON        
            movlw           0x0
            movwf           VRCON
inicio:		movlw	B'00000000'
			tris	PORTB		; bits del puerto B son salidas
			movlw	B'00000000'	; w := 00000000 
			movwf	PORTB		; inicializa port B =0
increment:	incf	PORTB,F
			call	retro
			goto	increment

	; RETRASO DE 0.5 SEGUNDOS

retro:		movlw	D'100'	; w := 200 decimal
			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
			return

			end	

