IFD1792 Code Listing:
;     	Digital Termometer
;		Device: PIC16f872, Xtal: 4MHz
;		Range: 0 a 150°C,	Resolution: 1°C
;		Precision: 0.4°C
PORTB    equ	0x06	;Renaming files
TRISB	   equ	0x86	;
PORTA    equ      0x05  ;
TRISA    equ      0x85  ;
PORTC    equ      0x07  ;
TRISC    equ      0x87  ;
STATUS   equ	0x03  ;
RP0      equ	5	;renaming bits
RP1	   equ	6	;
ADCON0   equ      0x1F  ;
ADCON1   equ	0x9F	;
ADRESL   equ	0x9E	;
ADRESH   equ	0x1E	;
PCL      equ      0x02  ;
      CLRW          	;W=0
      CLRF	STATUS	;STATUS=0 
      BSF	STATUS,RP0	;Selecting Bank 1
      BCF   STATUS,RP1	;
      MOVLW	0x00	      ;Move 00h to W
	MOVWF   TRISB	;Declaring PORTB as Output	
      MOVWF TRISC       ;Declaring PORTC as Output 
      MOVLW 0x0F      ;Vref+= Vdd, Vref-= Vss
	MOVWF ADCON1    ;RA0 as analog input
      MOVLW 0x3F      ;Moving Literal 3Fh to W
      MOVWF TRISA     ;Declaring PORTA as input
      BCF   STATUS,RP0;Selecting Bank 0
      MOVLW	0x01 	    ;Set ADON Bit
	MOVWF	ADCON0    ;Turning On A/D
INICIO:BSF  ADCON0, 2 ;Start Conversion       
X:	BTFSC ADCON0, 2 ;Wait for End of Conversion
      GOTO  X         ;
	MOVF  ADRESH,0  ;Moving Conversion to W  
	MOVWF   24      ;                                                                             
	MOVWF   25      ;    
	COMF    25,1    ;test result from conversion 
	MOVLW   0x97    ;to know if > 150°C 
	ADDWF   25,1    ;
	BTFSS  STATUS,0 ;Temperature > 150°C ?
	CALL   OP_TAB3  ;show error message 
	COMF    24,1    ;
	MOVLW   0x64    ;test result from conversion 
	ADDWF   24,1    ;to know if > 100°C
	BTFSS   STATUS,0;
	BSF	PORTC ,7  ;Turn on C Segment  
	BTFSS   STATUS,0;Temperature > 100°C ?
	BSF  	PORTB ,7  ;Turn on B Segment/3rd Display
      MOVF	ADRESH, 0 ;Moving ADRESH to W
	CALL 	OP_TAB    ;Conversion Table Binary-BCD
	MOVWF   22      ;Taking the 4 LSB
	MOVLW   0x0F    ;to obtain units 
	ANDWF   22,0    ;
	CALL    OP_TAB2 ;Calling Units 
	MOVWF	PORTB     ;Showing the 7-segment value
	MOVLW   0XF0    ;Taking the 4 MSB
	ANDWF   22, 0   ; to obtain tens  
	MOVWF	23	    ;Moving The Result to File 23
	RRF	23    ,1  ;
	RRF	23    ,1  ;Selecting LSB 
	RRF	23    ,1  ;
	RRF	23    ,1  ;
	MOVF	23    ,0  ;Moving File 23 To W
	CALL	OP_TAB2   ;Conversion Table BCD/7-Segments		
	MOVWF	PORTC	    ;Move 7-Segment Value to Port C
	GOTO  INICIO    ;New Conversion
OP_TAB:ADDWF   PCL,1  ;(PC +1) Binary-BCD conversion
	RETLW	0x00    ; 0°C
	RETLW 0x01    ; 1°C
	RETLW	0x02    ; 2°C
	RETLW 0x03    ; 3°C
	RETLW 0x04	  ; 4°C                               
	RETLW	0x05    ; 5°C
	RETLW	0x06    ; 6°C
	RETLW 0x07    ; 7°C
	RETLW 0x08    ; 8°C
	RETLW	0x09    ; 9°C
	RETLW	0x10    ;10°C
	RETLW 0x11    ;11°C
	RETLW	0x12    ;12°C
	RETLW 0x13	  ;13°C
	RETLW 0x14	  ;14°C
	RETLW	0x15    ;15°C
	RETLW	0x16    ;16°C
	RETLW 0x17	  ;17°C
	RETLW 0x18    ;18°C
	RETLW	0x19    ;19°C
	RETLW	0x20    ;20°C
	RETLW 0x21    ;21°C
	RETLW	0x22	  ;22°C
	RETLW 0x23    ;23°C
	RETLW 0x24    ;24°C
	RETLW	0x25    ;25°C
	RETLW	0x26    ;26°C
	RETLW 0x27	  ;27°C
	RETLW 0x28    ;28°C
	RETLW	0x29    ;29°C
	RETLW	0x30    ;30°C
	RETLW 0x31    ;31°C
	RETLW	0x32    ;32°C
	RETLW 0x33    ;33°C
	RETLW 0x34    ;34°C
	RETLW	0x35    ;35°C
	RETLW	0x36    ;36°C
	RETLW 0x37    ;37°C
	RETLW 0x38    ;38°C
	RETLW	0x39    ;39°C
	RETLW	0x40    ;40°C
	RETLW 0x41    ;41°C
	RETLW	0x42    ;42°C
	RETLW 0x43    ;43°C
	RETLW 0x44    ;44°C
	RETLW	0x45	  ;45°C
	RETLW	0x46	  ;46°C
	RETLW 0x47    ;47°C
	RETLW 0x48    ;48°C
	RETLW	0x49 	  ;49°C
	RETLW	0x50	  ;50°C
	RETLW 0x51    ;51°C
	RETLW	0x52    ;52°C
	RETLW 0x53	  ;53°C
	RETLW 0x54    ;54°C
	RETLW	0x55	  ;55°C
	RETLW	0x56	  ;56°C
	RETLW 0x57    ;57°C
	RETLW 0x58    ;58°C
	RETLW	0x59    ;59°C
	RETLW	0x60	  ;60°C
	RETLW 0x61    ;61°C
	RETLW	0x62	  ;62°C
	RETLW 0x63    ;63°C
	RETLW 0x64	  ;64°C
	RETLW	0x65	  ;65°C
	RETLW	0x66	  ;66°C
	RETLW 0x67    ;67°C
	RETLW 0x68    ;68°C
	RETLW	0x69 	  ;69°C			
	RETLW	0x70	  ;70°C
	RETLW 0x71    ;71°C
	RETLW	0x72	  ;72°C
	RETLW 0x73    ;73°C
	RETLW 0x74    ;74°C
	RETLW	0x75	  ;75°C
	RETLW	0x76	  ;76°C
	RETLW 0x77    ;77°C
	RETLW 0x78	  ;78°C
	RETLW	0x79 	  ;79°C
	RETLW	0x80	  ;80°C
	RETLW 0x81    ;81°C
	RETLW	0x82	  ;82°C
	RETLW 0x83    ;83°C
	RETLW 0x84	  ;84°C
	RETLW	0x85	  ;85°C
	RETLW	0x86	  ;86°C
	RETLW 0x87	  ;87°C
	RETLW 0x88	  ;88°C
	RETLW	0x89 	  ;89°C
	RETLW	0x90	  ;90°C
	RETLW 0x91    ;91°C
	RETLW	0x92	  ;92°C
	RETLW 0x93    ;93°C
	RETLW 0x94	  ;94°C
	RETLW	0x95	  ;95°C
	RETLW	0x96	  ;96°C
	RETLW 0x97    ;97°C
	RETLW 0x98	  ;98°C
	RETLW	0x99 	  ;99°C
	RETLW	0x00    ;0°C Values After 100
	RETLW 0x01    ; 1°C
	RETLW	0x02    ; 2°C
	RETLW 0x03    ; 3°C
	RETLW 0x04	  ; 4°C                               
	RETLW	0x05	  ; 5°C
	RETLW	0x06	  ; 6°C
	RETLW 0x07    ; 7°C
	RETLW 0x08	  ; 8°C
	RETLW	0x09 	  ; 9°C
	RETLW	0x10	  ;10°C
	RETLW 0x11    ;11°C
	RETLW	0x12	  ;12°C
	RETLW 0x13	  ;13°C
	RETLW 0x14    ;14°C
	RETLW	0x15    ;15°C
	RETLW	0x16    ;16°C
	RETLW 0x17	  ;17°C
	RETLW 0x18    ;18°C
	RETLW	0x19 	  ;19°C
	RETLW	0x20	  ;20°C
	RETLW 0x21    ;21°C
	RETLW	0x22	  ;22°C
	RETLW 0x23	  ;23°C
	RETLW 0x24    ;24°C
	RETLW	0x25	  ;25°C
	RETLW	0x26	  ;26°C
	RETLW 0x27    ;27°C
	RETLW 0x28    ;28°C
	RETLW	0x29 	  ;29°C
	RETLW	0x30	  ;30°C
	RETLW 0x31    ;31°C
	RETLW	0x32	  ;32°C
	RETLW 0x33    ;33°C
	RETLW 0x34	  ;34°C
	RETLW	0x35	  ;35°C
	RETLW	0x36	  ;36°C
	RETLW 0x37    ;37°C
	RETLW 0x38    ;38°C
	RETLW	0x39    ;39°C
	RETLW	0x40    ;40°C
	RETLW 0x41	  ;41°C
	RETLW	0x42	  ;42°C
	RETLW 0x43    ;43°C
	RETLW 0x44    ;44°C
	RETLW	0x45	  ;45°C
	RETLW	0x46	  ;46°C
	RETLW 0x47	  ;47°C
	RETLW 0x48	  ;48°C
	RETLW	0x49 	  ;49°C
	RETLW	0x50	  ;50°C
	RETLW	0x50	  ;50°C
OP_TAB2: ADDWF PCL,1  ; BCD-7 Segments
         RETLW 0x3F   ;0 Display
	 RETLW   0x06   ;	1 Display
	 RETLW   0x5B   ;2 Display
	 RETLW   0x4F   ;3 Display
	 RETLW   0x66   ;4 Display
	 RETLW   0x6D   ;5 Display
	 RETLW   0x7D   ;6 Display
	 RETLW   0x07   ;7 Display
	 RETLW   0x7F   ;8 Display
	 RETLW   0x67   ;9 Display              
OP_TAB3:MOVLW  0x79   ;Out of Range Table T>150°C
	MOVWF   PORTC   ;
	MOVLW   0x50    ;	
	MOVWF   PORTB   ;	 
	GOTO    INICIO  ;
	END	

      
        





