TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: luis1565 en 18 de Junio de 2005, 01:45:00
-
Hola a todos (as) soy nuevo en este foro y tengo un problema me facina programar en PICBasic y de proyecto final de semestre me han mandado una tarea muy especial que consiste en un termometro digital utilizando un PIC16F877 y un adc externo en mi caso ADC0809 el problema es que en la red no consigo informacion sobre este adc me gustaria que alguien me ayudara con un esquematico y un programa para poner a funcionar este dispositivo ya que no c porque pero con el pic16f84 todo se me hace mas facil y el integrado funciona correctamente si alguien puede aportar una idea mi mail es luis1565@hotmail.com pero porfavor si pueden publicarlo a tablon para el resto de los usuarios se los agradeceria debido a que no he visto que hablen de este tema en el foro que por cierto acabo de conocer y me parece super interezante continuen asi lo felicito y me agrada saber que habemos muchos locos como nos dicen la gente comun interezados en la electronica de verdad los felicito y un saludo desde venezuela
-
Hola Luis, a manera de sugerencia, porque no usas el adc que tiene el 877? en mi opinión no hace falta poner un convertidor externo pues este microcontrolador maneja esta parte muy bien. Revisa los siguientes hilos que seguramente te serviran de mucho:
http://miarroba.com/foros/ver.php?foroid=8826&temaid=2630387&marcar=lm35
http://miarroba.com/foros/ver.php?foroid=6510&temaid=3188199&marcar=lm35
Si puedes dar mas detalles de lo que tienes ya hecho sería mejor.
Saludos!
-
Como ya te dije en mi mensaje anterior tengo que utilizar el ADC0809 porque es un requerimiento de la materia gracias por responder aqui te mando el esquematico que esta echo en porteus 6.7 y el programa en PICBASIC pro ok gracias pana un saludo espero una pronta respuesta
device = 16F877
xtal = 4
LCD_TYPE = 0
LCD_DTPIN = PORTD.0
LCD_ENPIN = PORTC.2
LCD_RSPIN = PORTC.1
LCD_INTERFACE = 8
LCD_LINES = 2
DIM ADC AS BYTE
DIM I AS BYTE
ADCON1=6
OUTPUT PORTD
OUTPUT PORTC
TRISE=111
OUTPUT PORTA
INPUT PORTB
BEGIN:
PRINT AT 1,1, " BIENVENIDO "
PRINT AT 2,1, " PRECIONE TECLA "
IF PORTE.0=0 THEN "LM35
cls
PORTC.0=0
GOTO LM35
ELSEIF PORTE.1=0 THEN "LM335
cls
PORTC.0=1
GOTO LM335
ELSEIF PORTE.2=0 THEN "AMBOS
cls
GOTO AMBOS
ELSE
GOTO BEGIN
ENDIF
LM35:
GOSUB CONVER
BUCLE:
IF PORTE.1=0 THEN "LM335
PORTC.0=1
CLS
GOTO LM335
ELSEIF PORTE.2=0 THEN "AMBOS
CLS
GOTO AMBOS
ENDIF
PRINT AT 1,1, "TEMPERATURA LM35:"
PRINT AT 2,1, DEC PORTB
DELAYMS 500
GOTO LM35
LM335:
GOSUB CONVER
BUCLE1:
IF PORTE.0=0 THEN "LM35
PORTC.0=0
CLS
GOTO LM35
ELSEIF PORTE.2=0 THEN "AMBOS
CLS
GOTO AMBOS
ENDIF
PRINT AT 1,1, "LM335:"
PRINT AT 2,1, DEC ADC
GOTO LM335
AMBOS:
PORTC.0=0
GOSUB CONVER
PRINT AT 1,1, "TEMPERATURA LM35:"
PRINT AT 2,1, DEC ADC
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
PORTC.0=1
GOSUB CONVER
CLS
PRINT AT 1,1, "LM335:"
PRINT AT 2,1, DEC ADC
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
DELAYMS 500
GOSUB CHECK
CLS
GOTO AMBOS
CONVER:
PORTC.3=1
PORTA.3=0
DELAYMS 200
PORTA.3=1
PORTC.3=0 "DA EL BIT DE START AL ADC
DELAYMS 150
PORTA.2=1 "HABILITA LA SALIDA DEL ADC
DELAYMS 250
PORTA.3=0
DELAYMS 50
PORTC.3=0
DELAYMS 30
RETURN
CHECK:
IF PORTE.0=0 THEN "LM35
PORTC.0=0
CLS
GOTO LM35
ELSEIF PORTE.1=0 THEN "LM335
PORTC.0=0
CLS
GOTO LM335
ENDIF
RETURN