Tengo un grave problema amigos no se que hacer con un pic 16f877a estoy leyendo una entrada analogica por el AN0 todo funciona bien el lcd y entrada pero me tiene confundido la resolucion que muestra este micro tiene entradas analogas de resolucion 10 bit (0-1023)
pero cuando envio el valor de la variable al lcd me da valores desde 0-65535 algo asi como 16bit pero no lo son porque van avanzando a medida que muevo el potenciometro en el puerto analogo de 64 en 64 osea que al final son 1024 cuentas pero PORQUE MUESTRA DE 0 A 65535?
ADEMAS E REALIZADO MUCHISMAS PRUEBAS Y ME SIGUE DANDO RESULTADOS INSATISFACORIOS ADJUNTO EL CODIGO EN EL CODIGO SE VE TRANTANDO DE REFLEJAR UN VALOR DE O A 100 PERO NO HACE LO ESPERADO TAMBIEN ENVIA UN DATO POR EL PUERTO SERIE Y TAMPOCO LO HACE BIEN:
NOTA: EL POTENCIOMETRO ES DE UN MEGAOHNMIO EN EL AN0 OSEA VARIA MUY FINAMENTE. TAMBIEN E PROBADO COLOCAR # EN VES DE DEC A VER SI FUNCIONA Y ES LO MISMO.
define OSC 20
include "modedefs.bas"
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTB
Define LCD_RSBIT 0
Define LCD_EREG PORTB
Define LCD_EBIT 1
Define ADC_BITS 10
pause 1000
input portb.6
output portb.7
b1 var byte
variable var word
temp var byte
pause 500
lcdout $FE,1,"PRUEVA LCD"
gosub boton
boton:
button portb.6,0,100,10,b1,1,enviar
gosub boton
enviar:
high portb.7
pause 100
low portb.7
ADCIN 0,variable ' Lea el canal 0 a variable
pause 500
temp = (variable*100)/1023
lcdout $FE,1,dec variable," ",dec temp
serout portb.5,2,[variable]
gosub boton
end