OK, I fixed the flaws as Chris and Andrew said.To read the ADRESH:ADRESL I used the following code: bsf STATUS,RP0 ;bank 1 movf ADRESL,W movwf L_byte bcf STATUS,RP0 ;bank 0 movf ADRESH,W movwf H_byte ;L_byte and H_byte are registers where the result ;is stored and then transformed to BCD using four ;additional registers-R0,R1,R2,R3.These registers ;(numbers) are displayed on the LCD but the result wasn't too encouraging - the LCD showed correspondingly 0000,0256,0512 and 0768 ,i.e. only the two bits of the ADRESH. When I used only ADRESL (H_byte=0) the LCD showed 0000 regardless of changing the voltage from 0V to 5V. So,I think the ADRESL is always empty.I don't know why! The following is the Initiation of the ADC: InitADC bsf STATUS,RP0 ;bank 1 movlw B'10000000' ;right justif. movwf ADCON1 ;all Analog clrf ADRESL bcf STATUS,RP0 ;bank 0 movlw B'11000001' ;RC osc,ch 0(RA0), movwf ADCON0 ;Conv. stopped,ADC ON clrf ADRESH return Any ideas? Bye Stefan __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu