	;Expt10.asm
        ;Project: Temperature Detection
	;List P = 16F84
	;#include <p16F84.inc>
	;__CONFIG 1Bh    ;_CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC


	ORG 0		;This is the start of memory for the program.
SetUp	BSF 03,5	;Go to Bank 1
	CLRF 06		;Make all port B output		
	MOVLW 04	;Load W with 0000 0100
	MOVWF 05	;Make RA2 input & RA3 output
	BCF 03,5	;Go to Bank 0 - the program memory area.	
	CLRF 06		;Clear display
	GOTO Main

Delay	MOVLW 02h	;Create 2mS delay
	MOVWF 1B		
DelayA	NOP
	DECFSZ 1A,1
	GOTO DelayA
	DECFSZ 1B,1
	GOTO DelayA	
	RETURN

Delay2	NOP		;Create approx 250mS delay
	DECFSZ 1A,1
	GOTO Delay2
	DECFSZ 1B,1
	GOTO Delay2
	RETURN

Delay3	MOVLW 02h	; 
	MOVWF 1A	; 
DelayB	DECFSZ 1A,1	;
	GOTO DelayB	; 
	RETURN		;

Look	CLRF 0C		;Count-down file		
	BSF 05,3	;Take cap HIGH
	CALL Delay	;Delay before looking
Look2	CALL Delay3	;Delay between looks
	DECF 0C,1	;
	BTFSC 05,2	;Is input LOW?
	GOTO Look2
Look3	MOVF 0C,0	;Put file 0C into W
	MOVWF 06	;Output to 8 LEDs	
	CALL Delay2	
	BCF 05,3	;Take cap low 
	BSF 03,5	;Go to Bank 1			
	MOVLW 00	;Load W with 0000 0000
	MOVWF 05	;Make RA2 output & RA3 output
	BCF 03,5	;Go to Bank 0 - the program memory area.	
	BCF 05,2	;Discharge capacitor
	CALL Delay2	;100mS delay
	BSF 03,5	;Go to Bank 1	
	MOVLW 04	;Load W with 0000 0100
	MOVWF 05	;Make RA2 input & RA3 output
	BCF 03,5	;Go to Bank 0 - the program memory area.	
	RETURN

Main	CALL Look
	GOTO Main

	END		;Tells assembler end of program


