Buena noche amigos, nuevamento me acerco a este foro con una duda. Quiero realizar la lectura de 6 señales analogas por medio de un PIC16F877A, las cuales serian
4 para medir la humedad de la tierra,
1 para medir un sensor de fuerza y
1 para medir la luz mediante un sensor en base a un fotodiodo.
(Quiero usar los puetos A y E, en el caso del E solo usar el RE0 y mientras el RE1 y RE2 que sean digitales)
empecé con las 4 primeras lecturas y para ello escribi el siguiente codigo:
DEFINE LCD_DREG PORTD 'define el puerto a usar para el LCD
DEFINE LCD_DBIT 4 'define el uso de solo 4 bits de direccion 7-6-5-4
DEFINE LCD_RSREG PORTD'UTILIZAR EL REGISTRO DE CONTROL/DATOS EN EL PUERTO D
DEFINE LCD_RSBIT 2 'Define cual pin sera el pin R/s del display
DEFINE LCD_EREG PORTD 'UTILIZAR EL ENABLE EN EL PUERTO D
DEFINE LCD_EBIT 3 'Define Pin del puerto para el Enable del LCD
DEFINE LCD_BITS 4
DEFINE LCD_LINES 4 'Define numero de lineas del Display
ADCON0=%11000000
ADCON1=%10001001 'bit 0-3 para tener 6 entradas analogas y 2 digitales Es/
'configuracion de RA0 hasta RA5 como entradas
TRISA=%111111 'El puerto A tiene 6 pines no se si ira asi o 00111111
HumT1 VAR word
HumT2 VAR word
HumT3 VAR word
HumT4 VAR word
AvgHT var word
LOOP
ADCIN PORTA.0, Humt1
humt1.highbyte=ADRESH
humt1.lowbyte=ADRESL
pause 10
ADCIN PORTA.1, Humt2
humt2.highbyte=ADRESH
Humt2.lowbyte=ADRESL
pause 10
ADCIN PORTA.2, humt3
humt3.highbyte=ADRESH
humt3.lowbyte=ADRESL
pause 10
ADCIN PORTA.3, Humt4
Humt4.highbyte=ADRESH
Humt4.lowbyte=ADRESL
pause 50
AVGHT=0
AvgHT=AVght+HUmt1
AvgHT=AVght+HUmt2
AvgHT=AVght+HUmt3
AvgHT=AVght+HUmt4
LCDOUT $fe, 1,"AN0=",dec humt1
LCDOUT $fe, $C0,"AN1=",dec humt2
LCDOUT $fe, $94,"AN2=",dec humt3
LCDOUT $fe, $D4,"AN3=",dec humt4," AVG=",dec Avght/4
PAUSE 1000
GOTO LOOP
Hasta el momento solo lo he simulado en Proteus 8 Y me muestra el mismo valor analogico para los 4 sensores. Para probar coloque 4 sensores de temperatura LM35 (al fin que lo que necesito son variaciones de tension y un LM35 puede darlas), y si muevo los valores de cada uno, no cambia nada a excepcion de cuando altero el valor del sensor en RA0, cambian los valores pero siguen todos iguales. Les adjunto el archivo de proteus.