Te deseo mucha suerte, hacer una bascula no es nada facil, tienes que determinar la sensibilidad con la que va ha trabajar tu bascula ej: 10 Kg, que es lo que generalmnte trabaja una bascula camionera.
Yo trabaje mas o menos 5 años con equipos de pesaje y lo mejor es que compres un indicador de peso y se lo adecues a la celda, intente hacer el medidor, pero es muy inestable o queda con muy poca resolucion.
sin embargo aqui pongo el codigo para el lcd. no lo pude adjuntar no se como es asi que lo pego.
		LIST 	p=16F873A 	; Se emplea el PIC 16F873A
	
 
 
;-------------------------------- ETIQUETAS DEL PROGRAMA
 
 
		INCLUDE P16F873A.INC ; Etiquetas genericas para los PIC 16f873A
RESUL 		EQU 0x20
TEMPO1 		EQU 0x21
OFFSET 		EQU 0x22
LCD_VAR 	EQU 0x23
CONTADOR	EQU	0X24
 
 
;-------------------------------- PROGRAMA PRINCIPAL 
	 ORG 	0 						; El programa comienza en la direcci¢n 0 y salta a la 
	 goto 	INICIO 					; direcci¢n 5 para sobrepasar el vector de interrupci¢n
	 ORG 	5 	
	 INCLUDE lcd_cxx.ASM
INICIO 	 
			BSF		STATUS,RP0
			MOVLW	0X06
			MOVWF	ADCON1
			BCF		STATUS,RP0
			
			call 	UP_LCD 			; Configura el PIC para el uso del LCD
	    	bsf 	STATUS,RP0	 	; Selecci¢n del banco 1
	 		movlw 	b'10000111'
	 		movwf 	OPTION_REG		;Asigna preescaler al TMR0
	 		bcf 	STATUS,RP0
	 		call 	LCD_INI 		;Inicializa el LCD
			
INICIO_1 	call 	BORRA_Y_HOME
	 		call 	DISPLAY_ON_CUR_OFF
	 		movlw 	0x80 			; Primera posici¢n de primera fila
	 		call 	LCD_REG
	 		movlw 	b'00000110' 	; Entry Mode Set. Inc de cursor
	 		call 	LCD_REG
	 		clrf 	OFFSET 			; Direcci¢n del mensaje
	 		call 	MENS
			call 	DISPLAY_ON_CUR_OFF
			movlw 	0xC0 			; Primera posici¢n de SEGUNDA fila
	 		call 	LCD_REG
	 		clrf 	OFFSET 			; Direcci¢n del mensaje
			CALL	MENS1
BUCLE 	 	goto 	BUCLE 			; El programa acaba en un bucle infinito
	
 
;RUTINA MENS: Esta rutina saca mensajes por la pantalla LCD,
;siendo el primer caracter aquel que esta  en la posici¢n apuntada
;por OFFSET, y debiendo ser el ultimo 0x00
 
 
MENS 		clrf 	RESUL 			;Inicializa contador de caracteres
MENS_1 		movf 	OFFSET,W 		;Coge el desplazamiento
			addwf 	RESUL,W 		;Calcula el caracter a coger
			call 	DATOS 			;Coge el caracter
			iorlw 	0 				;Actualiza flags
			btfsc 	STATUS,2 		;Comprueba si es el £ltimo	
			return 					;Si es el £ltimo vuelve	
			call 	LCD_DATO 		;Visualiza el caracter
			incf 	RESUL,F 		;Incrementa contador de caracteres
			movlw 	d'10'
			movwf 	TEMPO1
			goto 	MENS_1
 
;TABLA CON LOS DATOS A SACAR POR EL LCD
 
 
DATOS	 	addwf 	PCL,1
			retlw	'R'			; OFFSET = 0x00
			retlw 	'P' 		
			retlw 	'M'
			retlw 	':'
			retlw 	' '
			retlw 	' '
			retlw 	' ' 		
			retlw 	' '
			retlw 	'T'
			retlw	'E'
			retlw 	'M'
			retlw 	':'
			retlw 	' ' 	
			retlw 	' '
			retlw 	' '
			retlw 	' ' 		
			retlw 	0x00
 
 
MENS1 		clrf 	RESUL 			;Inicializa contador de caracteres
MENS_11		movf 	OFFSET,W 		;Coge el desplazamiento
			addwf 	RESUL,W 		;Calcula el caracter a coger
			call 	DATOS2 			;Coge el caracter
			iorlw 	0 				;Actualiza flags
			btfsc 	STATUS,2 		;Comprueba si es el £ltimo	
			return 					;Si es el £ltimo vuelve	
			call 	LCD_DATO 		;Visualiza el caracter
			incf 	RESUL,F 		;Incrementa contador de caracteres
			movlw 	d'10'
			movwf 	TEMPO1
			goto 	MENS_11
DATOS2	 	addwf 	PCL,1
			retlw	'0'			; OFFSET = 0x00
			retlw 	'0' 		
			retlw 	'0'
			retlw 	' '
			retlw 	'R'
			retlw 	'P' 		
			retlw 	'M'
			retlw 	' '
			retlw 	'0'
			retlw 	'0'
			retlw 	'0' 	
			retlw 	' '
			retlw 	0F
			retlw 	'C' 		
			retlw 	0x00
 
	END
Esta es la libreria
;LCD_CXX.ASM
 
 
;El conjunto de rutinas que se presentan a continuaci¢n permiten realizar
;las tareas b sicas de control del m¢dulo de visualizaci¢n LCD. Se emplean
;con los PIC 16f873a. En el programa principal se deber  reservar memoria
;para el bloque de variables que utiliza el LCD del modo:
;	LCD_VAR EQU dir_inicio_del_bloque
;BLOQUE DE ETIQUETAS
 
 
	#define ENABLE 		bsf PORTA,2 ;Activa E
	#define DISABLE 	bcf PORTA,2 ;Desactiva
	#define LEER 		bsf PORTA,1 ;Pone LCD en Modo RD
	#define ESCRIBIR 	bcf PORTA,1 ;Pone LCD en Modo WR
	#define OFF_COMANDO bcf PORTA,0 ;Desactiva RS (modo comando)
	#define ON_COMANDO 	bsf PORTA,0 ;Activa RS (modo datos)
	CBLOCK 	LCD_VAR
		LCD_TEMP_2	;Inicio de las variables. Ser  la primera direcci¢n libre
				; disponible 
		LCD_TEMP_1	
	ENDC		
 
 
;RUTINA UP_LCD: Con esta rutina se configura el PIC para que trabaje con el LCD.
 
 
UP_LCD		bsf		STATUS,RP0 	;Banco 1
	 		clrf 	PORTB 		;RB <0-7> salidas digitales
			clrf 	PORTA 		;RA <0-4> salidas digitales
	 		bcf 	STATUS,RP0 	;Banco 0
			OFF_COMANDO 		;RS=0
			DISABLE 			;E=0
			return
 
 
;RUTINA LCD_BUSY: Con esta rutina se chequea el estado del 
;flag BUSY del m¢dulo LCD, que indica, cuando est  activado, que el
;m¢dulo a£n no ha terminado el comando anterior. La rutina espera a
;que se complete cualquier comando anterior antes de retornar al
;programa principal, para poder enviar un nuevo comando.
 
 
LCD_BUSY	LEER 			;Pone el LCD en Modo RD
		bsf 	STATUS,RP0 
		movlw 	H'FF'
		movwf 	PORTB 		;Puerta B como entrada
		bcf 	STATUS,RP0 	;Selecciona el banco 0
		ENABLE				;Activa el LCD
		NOP
		NOP
		NOP
		NOP
		NOP
L_BUSY 	btfsc 	PORTB,7		;Chequea bit de Busy
		goto 	L_BUSY
		DISABLE 	 		;Desactiva LCD
		bsf 	STATUS,RP0 
		clrf 	PORTB 		;Puerta B salida
		bcf 	STATUS,RP0 
		ESCRIBIR			;Pone LCD en modo WR
		return
 
 
;RUTINA LCD_E: Se trata de una peque¤a rutina que se encarga de generar
;un impulso de 1æ s (para una frecuencia de funcionamiento de 4 Mhz)
;por la patita de salida de la Puerta A RA2, que se halla conectada
;a la se¤al E (Enable) del m¢dulo LCD. Con esta rutina se pretende activar
;al m¢dulo LCD.
 
 
LCD_E 	ENABLE			;Activa E
		NOP
		NOP
		NOP
		NOP
		NOP
		DISABLE			;Desactiva E
		return
 
 
;RUTINA LCD_DATO: Es una rutina que pasa el contenido cargado en el
;registro W, el cual contiene un car cter ASCII, a la PUERTA B, para 
;visualizarlo por el LCD o escribirlo en la CGRAM.
 
 
LCD_DATO 	OFF_COMANDO 		;Desactiva RS (modo comando)
		movwf	PORTB 		;Valor ASCII a sacar por PORTB
		call 	LCD_BUSY 	;Espera a que se libere el LCD
		ON_COMANDO 		;Activa RS (modo dato)
		call 	LCD_E 		;Genera pulso de E
 		return
 
 
;RUTINA LCD_REG: Rutina parecida a la anterior, pero el contenido de W
;ahora es el c¢digo de un comando para el LCD, que es necesario pasar
;tambi‚n a la PUERTA B para su ejecuci¢n.
 
 
LCD_REG OFF_COMANDO 		;Desactiva RS (modo comando)
		movwf 	PORTB 		;C¢digo de comando
		call 	LCD_BUSY 	;LCD libre?.
		call 	LCD_E 		;S¡. Genera pulso de E.
 		return
 
 
;RUTINA LCD_INI: Esta rutina se encarga de realizar la secuencia de 
;inicializaci¢n del m¢dulo LCD de acuerdo con los tiempos dados por 
;el fabricante (15 ms). Se especifican los valores de DL, N y F,
;as¡ como la configuraci¢n de un interfaz de 8 l¡neas con el bus
;de datos del PIC, y 2 l¡neas de 16 caracteres de 5 x 7 pixels. 
 
 
LCD_INI	movlw	0x38
		call	LCD_REG 	;C¢digo de instrucci¢n
		call	RETARDO		;Temporiza
		movlw	0x38
		call	LCD_REG		;C¢digo de instrucci¢n
		call	RETARDO		;Temporiza
		;movlw 	b'00111000'
		;call	LCD_REG		;C¢digo de instrucci¢n
		;call 	RETARDO		;Temporiza
		return
 
 
;RUTINA BORRA_Y_HOME: Borra el display y retorna el cursor a la posici¢n 0. 
 
 
BORRA_Y_HOME	movlw 	b'00000001' 	;Borra LCD y Home.
		call 	LCD_REG
		return
 
 
;RUTINA DISPLAY_ON_CUR_OFF: Control del display y cursor.
;Activa el display y desactiva es cursor
 
DISPLAY_ON_CUR_OFF	movlw b'00001100' 	;LCD on, cursor off.
			call 	LCD_REG
			return
 
 
;RUTINA LCD_DELAY: Se trata de un rutina que implementa un retardo 
;o temporizaci¢n de 5 ms XT 20 Mhz. Utiliza dos variables llamadas LCD_TEMP_1 
;y LCD_TEMP_2, que se van decrementando hasta alcanzar dicho tiempo.
 
 
RETARDO		MOVLW	.5
			MOVWF	CONTADOR		;CANTIDAD DE VECCES QUE SE REPITE EL RETARDO
RETARDOT	MOVLW	.235			;RETARDO DE 1 mS
			MOVWF	TMR0
EXPLORAR	BTFSS	INTCON,2
			GOTO	EXPLORAR
			BCF		INTCON,2
			DECFSZ	CONTADOR,F
			GOTO	RETARDOT
			RETURN