Que tal , estoy realizando un sistema que mida temperatura por medio de un LM35 con el pi18F2550 en C18 , tengo un pequeño problema que en este micro no se como hacerle, necesito que me indique la temp en la LCD con decimales solo me marca números enteros. a continuacion les muestro el codigo:
Hola,
Yo hice algo como lo que tratas de hacer, pero con un 16f88. Como dice Mario, en basic es muy facil el uso de los decimales, simplemente utilizando variables del tipo Float. Este termometro fue realizado en Basic Proton y me tomo solo unos 10 minutos, en hacerlo. Cada quien programa como quiera, pero utilizando Basic mas todo lo que puedas saber de ASM, podras crear muchos programas importantes.
Dejo el codigo de ejemplo, por si a alguien le pueda servir.
Código:
'****************************************************************
'* Name : Termometro Universal.BAS *
'* Author : www.sharatronica.com *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 23/07/2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device = 16F88 ' Pic a utilizar
XTAL = 4 ' valor del oscilador
TRISA = %00011111 'pines de entrada en puerto A
TRISB = %00000000 'pines de salida en puerto B
LCD_DTPIN = PORTB.4 'Configuracion del LCD
LCD_RSPIN = PORTB.2
LCD_ENPIN = PORTB.3
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
Dim VAR1 As Word 'Variables utilizadas
Dim TEMP As Float
Dim FAREN As Float
Dim KELVIN As Float
Dim LEER As Byte
Symbol CGRAM = $64
Print $FE,$40,$06,$09,$09,$06,$00,$00,$00,$00
DelayMS 150 'retardo para encender el display
Cls
TEMP = 0 ' valores iniciales
LEER = 0
Low PORTB
Main:
ADIN_RES = 10 'configuracion del ADC
ADIN_TAD = FRC
ADIN_STIME = 50
ANSEL = %00000001
ADCON1 = %10100000
LAZO: For LEER = 0 To 5 Step 1
DelayMS 100
Next
VAR1 = ADIn 0 ' para leer el ADC
TEMP = VAR1 / 409.6
TEMP = TEMP * 100
FAREN = TEMP * 1.8 + 32
KELVIN = TEMP + 273.15
Print At 1,1,"TEMP ="," ",DEC1,TEMP,0,"C"," "
Print At 2,1,DEC1,FAREN,0,"F"," ",DEC1,KELVIN,0,"K"," " 'y minimo
GoTo LAZO 'volver a leer
End 'fin
... y una imagen de como se ve en el display

Saludos!.