;*************************
;20 LED BADGE            *
;  22-5-2010             *
;  Column Test Routine   *
;*************************


	list	p=12F629
	radix	dec
	include	"p12f629.inc"
	
		errorlevel	-302	; Dont complain about BANK 1 Registers 

	__CONFIG	_MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT  ;Internal osc.


;==========================================================================
;
;       Configuration Bits
;
;==========================================================================


D1		equ		20h	;used in  delay
D2		equ		21h	;used in  delay


;****************************************************************
;Beginning of program
;****************************************************************
		org		0x00
		nop
		nop
		nop
		nop
		nop			
SetUp	bsf		status, rp0 	;bank 1		
		call    0x3FF       	;retrieve factory calibration value 
		movwf   OSCCAL      	;update register with factory cal value 
       	movlw	b'00001000'		;Set TRIS  
		movwf	TRISIO	   	    ;GP0,1,2,4,5 outputs			
		bcf		status, rp0		;bank 0		
		movlw   07h         	;turn off Comparator 
        movwf   CMCON       	;must be placed in bank 0         					
		goto 	Main		


;****************************************************************
;* Delays 			*
;****************************************************************
	

		;250mS second delay
		
_250mS	nop
		goto	$+1		
		decfsz 	D1,1
		goto 	_250mS
		decfsz 	D2,1
		goto 	_250mS		
		retlw 	00	
		

		
        


		
Main	movlw	b'00101000'	 ;turn on first column
		movwf	GPIO
		call 	_250mS
		movlw	b'00011000'	 ;turn on second column
		movwf	GPIO
		call 	_250mS
		
		movlw	b'00001100'	 ;turn on third column
		movwf	GPIO
		call 	_250mS
		movlw	b'00001010'	 ;turn on fourth column
		movwf	GPIO
		call 	_250mS
		
		movlw	b'00001001'	 ;turn on fifth column
		movwf	GPIO
		call 	_250mS


		goto	Main
				
		
		END
		
		
		
	
		
		
		
		

