Autor | Mensaje |
---|
|
| Asunto: 16F877A Problema para convertir A/D Publicado: 23 Feb, 2009 - 05:19 |
| Nuevo en el Foro

Registrado: 23 Feb, 2009
Mensajes: 6
|
| Hola
Tengo un 16F877A y estoy haciendo pruebas infructuosas para convertir un voltaje que entra por AN0 en digital, el voltaje está en un rango 4,20~5,00 v.
Cuando energizo el PIC, los 10 bits de ADRH y ADRL quedan en alto aunque cambie el voltaje de AN0.
Escribí el procedimiento de adquisición como indica el datasheet, y estoy en un punto muerto, no se por donde continuar.
El proceso que realizo es el siguiente:
ADbyte_bajo equ 0x23
ADbyte_alto equ 0x24
Dormir nop
call TestBateria
call Tmp100us ; retardo 100 useg
goto Dormir
TestBateria bcf STATUS, RP1
bsf STATUS, RP0
bsf ADCON1, PCFG3
bsf ADCON1, PCFG2
bsf ADCON1, PCFG1
bcf ADCON1, PCFG0
bcf ADCON1, ADFM
bcf STATUS, RP1
bcf STATUS, RP0
bcf ADCON0, CHS2
bcf ADCON0, CHS1
bcf ADCON0, CHS0
bcf STATUS, RP1
bsf STATUS, RP0
bsf ADCON1, ADCS2
bcf STATUS, RP1
bcf STATUS, RP0
bsf ADCON0, ADCS1
bsf ADCON0, ADCS0
bsf ADCON0, ADON
bcf PIR1, ADIF
bsf PIE1, ADIE
call Tmp25us ; retardo 25 useg
bsf ADCON0, GO_DONE
return
; atención de la int
SDI btfss PIR1, ADIF
goto SDI_Fin_AD
movlw ADRESH
movwf ADbyte_alto
movlw ADRESL
movwf ADbyte_bajo
bcf PIR1, ADIF
call EscrBatLed
retfie
ADbyte_alto y ADbyte_bajo los escribo en RC y RD (pines 21 a 30)
Muchisimas gracias por cualquier ayuda o pista.
Saludos.- |
| |
|
| |  | | Asunto: Publicado: 24 Feb, 2009 - 08:08 |
| Fanatico de la Electronica


Registrado: 14 Ago, 2005
Mensajes: 1894
|
| conectaste bien Vref- y Vfer+. la verdad que del programa no tengo ni dea el mplab lo tengo visto muy poco. tiro porlofacilos en plan chapucillas con el picbasic. pero que aun asi me parece una liada sin sentido podias poner algo para indicar lo que aces en cada paso. no me parece que este bien, el programa. |
| |
|
| |  | | Asunto: Re: 16F877A Problema para convertir A/D Publicado: 10 Mar, 2009 - 02:29 |
| Habitual

Registrado: 09 Mar, 2009
Mensajes: 89
|
| | |  | | Asunto: Re: 16F877A Problema para convertir A/D Publicado: 25 Jun, 2009 - 08:11 |
| Nuevo en el Foro

Registrado: 13 Dic, 2008
Mensajes: 43
|
| LucasBols escribió: Hola
Tengo un 16F877A y estoy haciendo pruebas infructuosas para convertir un voltaje que entra por AN0 en digital, el voltaje está en un rango 4,20~5,00 v.
Cuando energizo el PIC, los 10 bits de ADRH y ADRL quedan en alto aunque cambie el voltaje de AN0.
Escribí el procedimiento de adquisición como indica el datasheet, y estoy en un punto muerto, no se por donde continuar.
El proceso que realizo es el siguiente:
ADbyte_bajo equ 0x23
ADbyte_alto equ 0x24
Dormir nop
call TestBateria
call Tmp100us ; retardo 100 useg
goto Dormir
TestBateria bcf STATUS, RP1
bsf STATUS, RP0
bsf ADCON1, PCFG3
bsf ADCON1, PCFG2
bsf ADCON1, PCFG1
bcf ADCON1, PCFG0
bcf ADCON1, ADFM
bcf STATUS, RP1
bcf STATUS, RP0
bcf ADCON0, CHS2
bcf ADCON0, CHS1
bcf ADCON0, CHS0
bcf STATUS, RP1
bsf STATUS, RP0
bsf ADCON1, ADCS2
bcf STATUS, RP1
bcf STATUS, RP0
bsf ADCON0, ADCS1
bsf ADCON0, ADCS0
bsf ADCON0, ADON
bcf PIR1, ADIF
bsf PIE1, ADIE
call Tmp25us ; retardo 25 useg
bsf ADCON0, GO_DONE
return
; atención de la int
SDI btfss PIR1, ADIF
goto SDI_Fin_AD
; movlw ADRESH
movf ADRESH,0
movwf ADbyte_alto
; TIENES QUE AÑADIR ESTAS INSTRUCCIONES; YA QUE
; LOS REGISTRO ALTO Y BAJO DEL CONVERTIDOR ESTAN
; EN BANCOS DIFERENTES
banksel RP1
; movlw ADRESL
movf ADRESL,0
bansel RP0
movwf ADbyte_bajo
bcf PIR1, ADIF
call EscrBatLed
retfie
ADbyte_alto y ADbyte_bajo los escribo en RC y RD (pines 21 a 30)
Muchisimas gracias por cualquier ayuda o pista.
Saludos.-
Toma nota que estàn en Bancos diferentes los Registros del AD.
Saluos
Guillermo Bloem |
Ultima edición por gbloem1 el 29 Jun, 2009 - 10:52 , editado 2 veces | |
|
| |  | | Asunto: Re: 16F877A Problema para convertir A/D Publicado: 28 Jun, 2009 - 12:59 |
| Habitual

Registrado: 06 May, 2009
Mensajes: 60
|
| HOLA, PARA QUÉ ESTÁS UTILIZANDO EL A/D, PORQUE VEO QUE PARA TODO ENCIENDES Y APAGAS TU CONVERTIDOR, SI LO QUE DESEAS ES SOLO CONVENTIR UNA ENTRADA, BASTA CON QUE CREES UN CICLO Y NO ESTARLO APAGANDO Y ENCENDIENDO.
SALUDOS |
| |
|
| |  |
|
|