Autor Tema: PIC16F877 y ADC0809  (Leído 2146 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado luis1565

  • PIC10
  • *
  • Mensajes: 2
PIC16F877 y ADC0809
« 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

Desconectado gesteva

  • PIC12
  • **
  • Mensajes: 52
RE: PIC16F877 y ADC0809
« Respuesta #1 en: 18 de Junio de 2005, 06:24:00 »
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!


Desconectado luis1565

  • PIC10
  • *
  • Mensajes: 2
RE: PIC16F877 y ADC0809
« Respuesta #2 en: 19 de Junio de 2005, 22:08:00 »
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



 

anything