You are on page 1of 2

LIST p=16F872

include "P16F872.inc"
;__CONFIG _XT_OSC &_WDT_OFF &_PWRTE_OFF &_CP_OFF &_BODEN_OFF &_LVP_OFF

TEMP EQU 0X20;


THRESHOLD EQU 0X21;

org 00h;

BSF STATUS,5;
MOVLW 0X3F;
MOVWF TRISA;
MOVLW 0X00;
MOVWF TRISB;
MOVLW 0X80;
MOVWF ADCON1;
BCF STATUS,5;
MOVLW 0X41;
MOVWF ADCON0;
GOTO MAIN1

DELAY MOVLW 0XFA;


MOVWF COUNT1;
LOOP4 MOVLW 0XFA;
MOVWF COUNT2;
LOOP3 MOVLW 0X50;
MOVWF COUNT3;
LOOP2 MOVLW 0X05;
MOVWF COUNT4;
LOOP1 DECFSZ COUNT4;
GOTO LOOP1;
DECFSZ COUNT3;
GOTO LOOP2;
DECFSZ COUNT2;
GOTO LOOP3;
DECFSZ COUNT1;
GOTO LOOP4;
RETURN;

MAIN1 BSF ADCON0,2;


LOOP5 BTFSC ADCON0,2;
GOTO LOOP5;
BSF STATUS,5;
MOVF ADRESL,0;
CLRF ADRESL;
BCF STATUS,5;
MOVWF TEMP;
SUBLW 27;
BTFSS STATUS,0;
GOTO LOOP5;
BSF PortB,0; Turn on conditioner if temp greater than 27
GOTO MAIN2; goto main2 to test if temp has decreased

MAIN2 BSF ADCON0,2;


LOOP6 BTFSC ADCON0,2;
GOTO LOOP6;
BSF STATUS,5;
MOVF ADRESL,0;
CLRF ADRESL;
BCF STATUS,5;
MOVWF TEMP;
SUBLW 27;
BTFSC STATUS,0;
GOTO LOOP6;
BCF PortB,0; Turn of conditioner if temp less than 27
GOTO MAIN1; goto main1 to test if temp has increased

END;

You might also like