I re-generated the code from the web with full scale reading of 80. I moved 0xff into adlow and 0x00 to adhigh. I got 019922. As my display is not ASCII, I don't convert the result of CVDEC to ASCII. I commented the lines below ; convert to ascii ; MOVLW D'48' ; ADDWF CVD00,F ; ADDWF CVD01,F ; ADDWF CVD02,F ; ADDWF CVD03,F ; ADDWF CVD04,F ; ADDWF CVD05,F ; max value a/d is 79.922 Later I started puting the ADRES valued in ADLOW and displayed CVD1, CVD2, CVD3 I got erratic results on the display when I varied the ADC input. Something like 01.0, 15.0, 02.5 on increasing the ADC input. Looks like messed up display. My hardware: PIC16F716, 8bit ADC, 3 digit scanning mux display. I get good linear results when I take the following route multiply ADRES with 0.78125 convert binary to BCD call display here is my code main: ;start the conversion call convert ;start the adc and get the result ;ADRES has the conversion result here movf ADRES,w ;we are trying the new sub from piclist CVDEC movwf ADLOW movlw 0x00 movwf ADHIGH call CVDEC ;CVD1 - hundreds ;CVD2 - Tens ;CVD3 - Units ;decimal between tens and units movf CVD01,w movwf hundreds movf CVD02,w movwf tens movf CVD03,w movwf units ;movwf ACC0 ;--somewhat working procedure ;call divide ; generats linear result ;call binary to BCD ;movf ACC0,w ;movwf bin ;call binary_to_BCD call display ;refrersh three 7seg digits goto main ;repeat allover again -- Chetan Bhargava Web: http://www.bhargavaz.net Blog: http://microz.blogspot.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist