;**************************************************
;	Programma di prova
;	Alterna 1 e 0 sul primo bit di PORTB ogni 100ms		
;**************************************************

;direttive
	PROCESSOR       16F84A
    RADIX           HEX

;definizioni
	R1		EQU		0x20
	R2		EQU		0x21
	R3		EQU		0x22
	PORTB	EQU		0x06
	TRISB	EQU		0x06
	TRISA	EQU		0x05
	PORTA	EQU		0x05
	PORTB	EQU		0x06
	STATUS	EQU		0x03
	FSR		EQU		0x04
	INDF	EQU		0x00

;inizio programma
	ORG     0x0000			;assembla a partire dalla prima
							;locazione della memoria istruzioni
	

	bsf		STATUS,5		;selezione banco RAM 1

	movlw	0x00			;imposta tutte le linee
	movwf	TRISB			;della PORTA B come output

	bcf		STATUS,5		;selezione banco RAM 0

    loop:
	bsf		PORTB,0			;imposta a 1 il primo bit di PORTB
	call	wait			;attesa
	bcf		PORTB,0			;imposta a 0 il primo bit di PORTB
	call	wait			;attesa
	goto 	loop			;ritorna a loop:
	
;routine di attesa (circa 100ms)
	wait:
	movlw	0xBE
	movwf	R1
	longloop1:
	movlw	0xBE
	movwf	R2
	longloop2:
	decfsz	R2,1
	goto longloop2
	decfsz	R1,1
	goto longloop1
	return

;fine del programma
	END