hola amigos no se si me podiran ayudar estoy haciendo un conversor analogo digital con el 16F877A ya lo he logrado mas o menos le estoy leyendo a un potenciometro de o 255 pero quiero que en el LCD me muestre lo que me arroja un canal en una escala de 0 a 500 con 2 decimales y el segundo de 0 a 30 con 2 decimales pero quisiera que se muestre 0,01 ; 0,02 ;0.03; asi hasta llegar a la escala que mencione anteriormente seria posible por si acaso posteo el codigo que he realizado para ver si me dan una mano
;==========================================================================================================
;-------------------------------* CONFIGURACION INTERNA DEL MICROCONTROLADOR *----------------------------
@devicext_osc ; oscilador externo XT
define osc 4
;==========================================================================================================
;---------------------------- * CONFIGURACION DE COMUNICACION DEL LCD *------------------------------------
define LCD_DREG PORTD
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 4
;==========================================================================================================
;-------------------------------------* DECLARACION DE VARIABLES *-----------------------------------------
P1 VAR WORD
P2 VAR WORD
P3 VAR WORD
X VAR word
Y VAR BYTE
BOTON VAR PORTB.4
BOTON1 VAR PORTB.5
BOTON2 VAR PORTB.6
BOTON3 VAR PORTB.7
BO VAR BYTE
B1 VAR BYTE
BA VAR BYTE
;========================================================================================================
;-------------------------------------------* CARATULA * ------------------------------------------------
PAUSE 200
FOR BO =144 TO 128 STEP -1
LCDOUT $FE,1
LCDOUT $FE,BO," TORNO CN "
LCDOUT $FE,$0C,B1
PAUSE 100
NEXT
LCDOUT $FE,$C0
FOR BO=0 TO 15
LOOKUP BO,[" MICROLOGIX 1100 "],B1
LCDOUT $FE,$0C,B1
PAUSE 100
NEXT
pause 1500
FOR Y = 0 TO 2
PAUSE 200
LCDOUT $FE,1,"POR FAVOR ESPERE"
LCDOUT $FE,$C0
LCDOUT $FE,$0C,"CARGANDO"
FOR BO = 0 TO 15
LOOKUP BO,["........"],B1
LCDOUT $FE,$0C,B1
PAUSE 150
NEXT
NEXT
PAUSE 300
;=======================================================================================================
;--------------------------* CONFIGURACION INTERNA DEL CONVERSOR ANALOGO DIGITAL *----------------------
ADCON1=%100
INICIO:
PAUSE 300
POTEN1:
ADCON0=%1000001
GOSUB MEDIR
P1= ADRESH
POTEN2:
ADCON0=%1001001
GOSUB MEDIR
P2=ADRESH
POTEN3:
ADCON0=%1011001
GOSUB MEDIR
P3=ADRESH
x=P1*2
;=========================================================================================================
;----------------------------* CONFIGURACION DE VISUALIZACION DE ALARMAS *--------------------------------
IF BOTON=1 THEN
LCDOUT $FE,1
LCDOUT $FE,$1,"E.LON:"
LCDOUT $FE,$88,DEC X,".",DEC2 P1, "mm"
LCDOUT $FE,$C0,"E.TRAN:"
LCDOUT $FE,$c9,DEC (P2*30)/255,".",DEC2 P2,"mm"
IF BOTON1=1 THEN
LCDOUT $FE,1
LCDOUT $FE,$1,"E.LON:"
LCDOUT $FE,$88,DEC X,".",DEC2 P1, "mm"
LCDOUT $FE,$C0,"E.TRAN:"
LCDOUT $FE,$c9,DEC (P2*30)/255,".",DEC2 P2,"mm"
IF BOTON2=1 THEN
LCDOUT $FE,1
LCDOUT $FE,$1,"E.LON:"
LCDOUT $FE,$88,DEC X,".",DEC2 P1, "mm"
LCDOUT $FE,$C0,"E.TRAN:"
LCDOUT $FE,$c9,DEC (P2*30)/255,".",DEC2 P2,"mm"
IF BOTON3=1 THEN
LCDOUT $FE,1
LCDOUT $FE,$1,"E.LON:"
LCDOUT $FE,$88,DEC X,".",DEC2 P1, "mm"
LCDOUT $FE,$C0,"E.TRAN:"
LCDOUT $FE,$c9,DEC (P2*30)/255,".",DEC2 P2,"mm"
ELSE
LCDOUT $FE,1,$82," ULTIMO DATO"
LCDOUT $FE,$C0," BORRADO"
ENDIF
ELSE
LCDOUT $FE,1,$82,"TODOS LOS DATOS"
LCDOUT $FE,$C0," BORRADOS"
ENDIF
ELSE
LCDOUT $FE,1,$82," DATO GRABADO"
LCDOUT $FE,$C0
ENDIF
ELSE
LCDOUT $FE,1,$82," MEMORIA LLENA"
LCDOUT $FE,$C0
ENDIF
GOTO INICIO
;========================================================================================================
;--------------------------* CONFIGURACION DE MUSTREO DEL CONVERSOR A/D *--------------------------------
MEDIR:
PAUSE 50
ADCON0.2=1
PAUSEUS 50
RETURN
end
la variables P1 P2 P3 son las que manejo la informacion desde el potenciometro lo que dice alarmas son para cuando me de informacion otro circuito me despliegue en el LCD ese aviso...por favor ayuda