estoy tratando de hacer un control de temperatura con el pic 16f877 y visual basic 6.0 tengo problemas con el envio del valor de temperatura al pc (no me envia el valor). estoy ocupando l lm35.
la verdad no tengo idea si es que lo que estoy haciendo esta bien asi que agradeceria su ayuda
aqui va lo que llevo programado a ver si pueden ayudarme con esto ( esta en basic el programa que ocupe es el microcode, pero tambien sirve el pbp
la verdad no tengo idea si es que lo que estoy haciendo esta bien asi que agradeceria su ayuda
aqui va lo que llevo programado a ver si pueden ayudarme con esto ( esta en basic el programa que ocupe es el microcode, pero tambien sirve el pbp
Código:
define osc 4
@ DEVICE PROTECT_OFF,CPD_OFF,WDT_OFF,PWRT_ON,BOD_OFF
INCLUDE "modedefs.bas" ;incluyen los modos de comunicación
DEFINE ADC_BITS 10 ;Fije número de BITS del resultado (5,8,10)
DEFINE ADC_CLOCK 3 ;Fije EL CLOCK (rc = 3)
DEFINE ADC_SAMPLEUS 10 ;Fije el tiempo de muestreo en Us
DEFINE SER2_BITS 8 ; Establecer los Bits de transmisión
;ADC_SAMPLEUS es el número de microsegundos que el programa espera
;entre fijar el canal y comenzar la conversión analogica/digital.
TRISA =%1 ;el puerto A.0 es de entrada
ADCON1 = %00001110 ;el puerto A.0 es conversor los demás Digitales
dato VAR WORD ;crear variable dato para guardar
serial VAR BYTE ;variable de almacenamiento de 255
Temp VAR BYTE ;variable de almacenamiento de 255
x var byte
releF VAR portD.2 ;nombres para los pines
releC VAR portD.3
led var portD.4
SYMBOL TxD = PORTC.6
SYMBOL RxD = PORTC.7
g CON 223 ; g constante 223 este es el ASCII de grados
EEPROM 0,[20,24] ;contenido inicial de la EEPROM
inicio: ;3 parpadeos del led que indica funciona
FOR x =1 TO 3
HIGH led
PAUSE 200
LOW led
PAUSE 200
NEXT
sensar:
ADCIN 0, Temp ;leer el canal 0 (A0) y guarde en dato Temp = (AD_Value*150/77)
Temp = (Temp *150/77)
SEROUT2 TxD,84,[DEC Temp];SEROUT portc.6,T9600,[ dec dato] ;DEC dato,g,"C"
pause 100
GOTO sensar
END
Última edición por un moderador: