I am a very intermittent user of PICs. Last time I did anything was years ago when I made a battery voltage monitor using a PIC16C715, which has four 8-bit A/D ports on it. I am now working on a project where I need more resolution so I got a couple PIC16C733's to develop on because they have 12-bit A/D's. This is the routine I used with the old 8-bit A/D to get my analog value: ;;;;;;; SUB - READ BATTERY VOLTAGE ;;;;;;;;;;;;;;;;;;;;;;;;;;; R_BATTV movlw b'10000001' ; Configure A/D - select RA0. movwf adcon0 call D_20US ; Delay 20 microseconds. bsf adcon0,2 ; Start conversion. btfsc adcon0,2 ; Test go/done bit. goto $-1 movf adres,w ; Conv complete, get A/D result. movwf BATTV ; Write data to register. return My question regards grabbing a 12 bit A/D analog value. Before it was just grabbing one 8-bit number and copying it to a regular 8-bit register. Forgive my ignorance on this, but do I now grab the upper 4 bits and place value in one 8-bit register and the lower 8 bit value into a second 8-bit register? Thanks. M Peterson -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist