IFD1792 Code Listing:
;     	Digital Termometer
;		Device: PIC16f872, Xtal: 4MHz
;		Range: 0 a 150C,	Resolution: 1C
;		Precision: 0.4C
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 > 150C 
	ADDWF   25,1    ;
	BTFSS  STATUS,0 ;Temperature > 150C ?
	CALL   OP_TAB3  ;show error message 
	COMF    24,1    ;
	MOVLW   0x64    ;test result from conversion 
	ADDWF   24,1    ;to know if > 100C
	BTFSS   STATUS,0;
	BSF	PORTC ,7  ;Turn on C Segment  
	BTFSS   STATUS,0;Temperature > 100C ?
	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    ; 0C
	RETLW 0x01    ; 1C
	RETLW	0x02    ; 2C
	RETLW 0x03    ; 3C
	RETLW 0x04	  ; 4C                               
	RETLW	0x05    ; 5C
	RETLW	0x06    ; 6C
	RETLW 0x07    ; 7C
	RETLW 0x08    ; 8C
	RETLW	0x09    ; 9C
	RETLW	0x10    ;10C
	RETLW 0x11    ;11C
	RETLW	0x12    ;12C
	RETLW 0x13	  ;13C
	RETLW 0x14	  ;14C
	RETLW	0x15    ;15C
	RETLW	0x16    ;16C
	RETLW 0x17	  ;17C
	RETLW 0x18    ;18C
	RETLW	0x19    ;19C
	RETLW	0x20    ;20C
	RETLW 0x21    ;21C
	RETLW	0x22	  ;22C
	RETLW 0x23    ;23C
	RETLW 0x24    ;24C
	RETLW	0x25    ;25C
	RETLW	0x26    ;26C
	RETLW 0x27	  ;27C
	RETLW 0x28    ;28C
	RETLW	0x29    ;29C
	RETLW	0x30    ;30C
	RETLW 0x31    ;31C
	RETLW	0x32    ;32C
	RETLW 0x33    ;33C
	RETLW 0x34    ;34C
	RETLW	0x35    ;35C
	RETLW	0x36    ;36C
	RETLW 0x37    ;37C
	RETLW 0x38    ;38C
	RETLW	0x39    ;39C
	RETLW	0x40    ;40C
	RETLW 0x41    ;41C
	RETLW	0x42    ;42C
	RETLW 0x43    ;43C
	RETLW 0x44    ;44C
	RETLW	0x45	  ;45C
	RETLW	0x46	  ;46C
	RETLW 0x47    ;47C
	RETLW 0x48    ;48C
	RETLW	0x49 	  ;49C
	RETLW	0x50	  ;50C
	RETLW 0x51    ;51C
	RETLW	0x52    ;52C
	RETLW 0x53	  ;53C
	RETLW 0x54    ;54C
	RETLW	0x55	  ;55C
	RETLW	0x56	  ;56C
	RETLW 0x57    ;57C
	RETLW 0x58    ;58C
	RETLW	0x59    ;59C
	RETLW	0x60	  ;60C
	RETLW 0x61    ;61C
	RETLW	0x62	  ;62C
	RETLW 0x63    ;63C
	RETLW 0x64	  ;64C
	RETLW	0x65	  ;65C
	RETLW	0x66	  ;66C
	RETLW 0x67    ;67C
	RETLW 0x68    ;68C
	RETLW	0x69 	  ;69C			
	RETLW	0x70	  ;70C
	RETLW 0x71    ;71C
	RETLW	0x72	  ;72C
	RETLW 0x73    ;73C
	RETLW 0x74    ;74C
	RETLW	0x75	  ;75C
	RETLW	0x76	  ;76C
	RETLW 0x77    ;77C
	RETLW 0x78	  ;78C
	RETLW	0x79 	  ;79C
	RETLW	0x80	  ;80C
	RETLW 0x81    ;81C
	RETLW	0x82	  ;82C
	RETLW 0x83    ;83C
	RETLW 0x84	  ;84C
	RETLW	0x85	  ;85C
	RETLW	0x86	  ;86C
	RETLW 0x87	  ;87C
	RETLW 0x88	  ;88C
	RETLW	0x89 	  ;89C
	RETLW	0x90	  ;90C
	RETLW 0x91    ;91C
	RETLW	0x92	  ;92C
	RETLW 0x93    ;93C
	RETLW 0x94	  ;94C
	RETLW	0x95	  ;95C
	RETLW	0x96	  ;96C
	RETLW 0x97    ;97C
	RETLW 0x98	  ;98C
	RETLW	0x99 	  ;99C
	RETLW	0x00    ;0C Values After 100
	RETLW 0x01    ; 1C
	RETLW	0x02    ; 2C
	RETLW 0x03    ; 3C
	RETLW 0x04	  ; 4C                               
	RETLW	0x05	  ; 5C
	RETLW	0x06	  ; 6C
	RETLW 0x07    ; 7C
	RETLW 0x08	  ; 8C
	RETLW	0x09 	  ; 9C
	RETLW	0x10	  ;10C
	RETLW 0x11    ;11C
	RETLW	0x12	  ;12C
	RETLW 0x13	  ;13C
	RETLW 0x14    ;14C
	RETLW	0x15    ;15C
	RETLW	0x16    ;16C
	RETLW 0x17	  ;17C
	RETLW 0x18    ;18C
	RETLW	0x19 	  ;19C
	RETLW	0x20	  ;20C
	RETLW 0x21    ;21C
	RETLW	0x22	  ;22C
	RETLW 0x23	  ;23C
	RETLW 0x24    ;24C
	RETLW	0x25	  ;25C
	RETLW	0x26	  ;26C
	RETLW 0x27    ;27C
	RETLW 0x28    ;28C
	RETLW	0x29 	  ;29C
	RETLW	0x30	  ;30C
	RETLW 0x31    ;31C
	RETLW	0x32	  ;32C
	RETLW 0x33    ;33C
	RETLW 0x34	  ;34C
	RETLW	0x35	  ;35C
	RETLW	0x36	  ;36C
	RETLW 0x37    ;37C
	RETLW 0x38    ;38C
	RETLW	0x39    ;39C
	RETLW	0x40    ;40C
	RETLW 0x41	  ;41C
	RETLW	0x42	  ;42C
	RETLW 0x43    ;43C
	RETLW 0x44    ;44C
	RETLW	0x45	  ;45C
	RETLW	0x46	  ;46C
	RETLW 0x47	  ;47C
	RETLW 0x48	  ;48C
	RETLW	0x49 	  ;49C
	RETLW	0x50	  ;50C
	RETLW	0x50	  ;50C
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>150C
	MOVWF   PORTC   ;
	MOVLW   0x50    ;	
	MOVWF   PORTB   ;	 
	GOTO    INICIO  ;
	END	

      
        





