Autor Tema: convertidor voltaje analogo digital rs232  (Leído 5590 veces)

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

Desconectado sergioneri

  • PIC10
  • *
  • Mensajes: 31
convertidor voltaje analogo digital rs232
« en: 07 de Julio de 2009, 03:29:04 »
hola de nuevo estoy colocando de una vez todas mis dudas, estoy realizando una practica en la que requiere una conversion de analogo digital, Tomar lectura del voltaje emitido por un receptor optico ,Las lecturas provenientes del ADC seran enviadas por el puerto serial RS232 y procesadas en LabVIEW(incluyendo un acondicionador de 0 a 5 volts)
. Para mostrar el voltaje que se esta reciviendo desde el PIC. y ya logre ke se comunique pero lo que lee son unos signos raros no numeros, ay lo estoy conectando directo el rs232 al pic16f877a y no se si ocupe ay realizar un circuito o algo o ke tenga mal conectado el rs 232, solo tengo conectados los cablesitos de tierra(pin5),recibir datos(pin2) y el de transmitir(pin3) del rs232, ojaa pudieran decirme en donde se encuentra el error saludos
« Última modificación: 07 de Julio de 2009, 03:45:15 por sergioneri »

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: convertidor voltaje analogo digital rs232
« Respuesta #1 en: 07 de Julio de 2009, 04:35:26 »
Hola Sergio!
Aqui no somos adivinos ni brujos  :D :D :D
si nos comentan que Lenguaje usa y nos pone tu codigo para estudiarlo y mas informacion, seguro que te ayudamos.
 :mrgreen:
Saludos

Desconectado sergioneri

  • PIC10
  • *
  • Mensajes: 31
Re: convertidor voltaje analogo digital rs232
« Respuesta #2 en: 07 de Julio de 2009, 13:47:01 »
a disculpa aqui esta mi codigo:

   LIST      p=16F877A      ; Tipo de procesador PIC16F877A
   #include   "P16F877A.inc"  ; Archivo de definicion de registros del micro

   ; Palabra de configuracion
   __config _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_ON & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

    org 0x00


    goto main

    org 0x04
   

main

         ;;;;;;;;;;;;;;;;;;;;;;;CONFIGURACION PARA TRASMISION;;;;;;;;;;;;;;;;;;;;;;;
;----------------------------------------------------------------------------------------------------------------

   BSF      STATUS,RP0
   BCF      STATUS,RP1    ;CAMBIAMOS AL BANCO1 BUSCANDO TXSTA

   ;-------CONFIGURACION DE TXSTA REGISTRO DE TRANSMISION-------;
   
   BCF      TXSTA,6;TRANSMISION DE 8 BITS
   
   BCF      TXSTA,4;MODO ASINCRONO
   BSF      TXSTA,2;HIGH BAUD RATE
;---------------------------------------------------------------------------------------------------------------

               ; CONFIGURACION DE PUERTOS
   
   BSF      TRISC,7;
   BSF      TRISC,6; SETS USART ON
   


   ;----------CONFIGURACION DE RCSTA REGISTRO DE RECEPCION-------;   

   BCF      STATUS,RP0;CAMBIAMOS AL BANCO 0

   BSF      RCSTA,7;CONFIGURA EL PIN RC6 COMO SALIDA SERIAL y RC6 COMO ENTRADA SERIAL
   BCF      RCSTA,6;
   BSF      RCSTA,4;HABILITA LA RECEPCION CONTINUA
   


;----------------------------------------------------------------------------------------------------------------         
   ;--------CONFIGURACION DEL BAUD RATE----------;
   BSF      STATUS,RP0;CAMBIAMOS AL BANCO 1
   MOVLW   D'25'
   MOVWF   SPBRG;CONFIGURAMOS BAUD RATE CON VALOR DE 25

;---------------------------------------------------------------------------------------------------------------
      


         ;-----------CONFIGURACION DE ADCON1-----------;
   
   BSF      ADCON1,7;RIGHT JUSTIFIED
   BSF      ADCON1,6;OSCILADOR EN fosc/16

   BCF      ADCON1,3;CONFIGURACION DE BITS DE PUERTO A
   BCF      ADCON1,2
   BCF      ADCON1,1
   BCF      ADCON1,0
;---------------------------------------------------------------------------------------------------------------
         ;-----CONFIGURACION DE PUERTOS DE ENTRADA Y SALIDA------;

   BSF      TRISA,1;CONFIGURAMOS EL PIN 0 DE PORTA COMO ENTRADA

   
;----------------------------------------------------------------------------------------------------------------
         ;------------CONFIGURACION DE ADCON0-------------;
   BCF      STATUS,RP1
   BCF      STATUS,RP0;CAMBIAMOS AL BANCO 0

   BCF      ADCON0,7;FOSC/16
   BSF      ADCON0,6;
   
   BCF      ADCON0,5;SELECCIONA CANAL AN0
   BCF      ADCON0,4
   BCF      ADCON0,3

   BSF      ADCON0,0;ENCIENDE EL A/DC


;----------------------------------------------------------------------------------------------------------------
   
CYCLE
   

   
   BSF      STATUS,RP0; CAMBIAMOS AL BANCO 1 PARA HABILITAR TX
   BSF      TXSTA,5;HABILITAR TRANSMISION***********************
   
;;;;;;;;;;;;;;;;;;;;;;;;;;;COMIENZA LA CONVERSION;;;;;;;;;;;;;;;;;;;;;;;
   BCF      STATUS,RP0
   BCF      STATUS,RP1;CAMBIAMOS AL BANCO 0

   BSF      ADCON0,2;PONE EN GO LA CONVERSION
   
   BTFSC      ADCON0,2;SI = 0, LA CONVERSION HA TERMINADO.
   GOTO $-1

;----------------------------------------------TRANSMIT 1------------------------------------------------
   
   BSF      STATUS,RP0;CAMBIAMOS AL BANCO 1
   BTFSS      TXSTA,TRMT; REVISA BANDERA DE FIN DE TRANSMISION SI 1, REG VACIO
   GOTO $-1

   
   MOVF      ADRESL,0;MOVEMOS LA CONVERSION A W

   BCF      STATUS,RP0; CAMBIAMOS AL BANCO 0
   MOVWF   TXREG; MOVEMOS LA CONVERSION AL REGISTRO DE TRASMISION
   CLRW


   
;-------------------------------------------TRANSMIT 2------------------------------------------------------
   BSF      STATUS,RP0
   BTFSS      TXSTA,TRMT; SI 1, YA TRANSMITIO, BUFFER VACIO
   GOTO $-1

   CALL  PAUSE
   
   BCF      STATUS,RP0;CAMBIAMOS AL BANCO 0 PARA MOVER LOS BIT RESTANTES DE LA CONVERSION A TXREG
   MOVF      ADRESH,0; MOVEMOS LA CONVERSION A W
   
   MOVWF   TXREG; MUEVE BITS MAS SIGNIFICATIVOS  ADRESH A TRANSMISION
   CLRW

   
   BSF      STATUS,RP0; CAMBIAMOS AL BANCO 1
   BTFSS      TXSTA,TRMT; SI 1, YA TRASMITIO, BUFFER VACIO
   GOTO $-1

   CALL PAUSE


   GOTO CYCLE
   
PAUSE
   
   BCF      STATUS,RP0
   MOVLW   0XFF
   MOVWF   0X21
   DECFSZ   0X21
   GOTO $-1
   RETURN
   
   END

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: convertidor voltaje analogo digital rs232
« Respuesta #3 en: 07 de Julio de 2009, 18:00:08 »
hola de nuevo estoy colocando de una vez todas mis dudas, estoy realizando una practica en la que requiere una conversion de analogo digital, Tomar lectura del voltaje emitido por un receptor optico ,Las lecturas provenientes del ADC seran enviadas por el puerto serial RS232 y procesadas en LabVIEW(incluyendo un acondicionador de 0 a 5 volts)
. Para mostrar el voltaje que se esta reciviendo desde el PIC. y ya logre ke se comunique pero lo que lee son unos signos raros no numeros, ay lo estoy conectando directo el rs232 al pic16f877a y no se si ocupe ay realizar un circuito o algo o ke tenga mal conectado el rs 232, solo tengo conectados los cablesitos de tierra(pin5),recibir datos(pin2) y el de transmitir(pin3) del rs232, ojaa pudieran decirme en donde se encuentra el error saludos

tu programa seria aun mas facil si lo realizaras en ccs,

Desconectado sergioneri

  • PIC10
  • *
  • Mensajes: 31
Re: convertidor voltaje analogo digital rs232
« Respuesta #4 en: 07 de Julio de 2009, 18:15:07 »
ccs? no tiene es que es para la escuela y solo nos dan la opcion de hacerlo de la forma que tengo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: convertidor voltaje analogo digital rs232
« Respuesta #5 en: 08 de Julio de 2009, 02:10:11 »
Si estas enviando el resultado directo de la conversion, el signo raro es el equivalente ASCII del valor de lectura del ADC (supongo que trabajas a 8 bits). Si quieres enviar numeros por el serial, debes primero: pasar tu numero, resultado de la conversion, a BCD y segundo: pasar cada uno de los numeros, resultado de la conversion BCD, a ASCII.

Supongamos que el ADC da una conversion de 125 (ocupa un solo registro de 8 bits). Este valor se lo pasa a BCD: 1.2.5 (ocupa 3 registros de 8bits) y por ultimo lo pasamos a ASCII '1','2','5' (ocupa 3 registros de 8 bits).

Para pasar de entero a ASCII basta con sumarle el string '0'.

Saludos
El papel lo aguanta todo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: convertidor voltaje analogo digital rs232
« Respuesta #6 en: 08 de Julio de 2009, 02:23:14 »
tu programa seria aun mas facil si lo realizaras en ccs,
:z) Ese comentario no da solución a nada  :undecided:


Aquí rutinas que te serán muy útiles para realizar lo que indica muy bien MLO_
No contesto mensajes privados, las consultas en el foro

Desconectado sergioneri

  • PIC10
  • *
  • Mensajes: 31
Re: convertidor voltaje analogo digital rs232
« Respuesta #7 en: 08 de Julio de 2009, 17:00:15 »
mmm es que no tengo problemas en el codigo sino mas bien es que no se bien conectar el rs232, como decia solo tengo conectados los cablesitos de tierra(pin5),recibir datos(pin2) y el de transmitir(pin3) del rs232, y no se aparte necesite otra cosa para lograr la conversion como un pequenio circuito o algo, esa solo era el problema ke presento

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: convertidor voltaje analogo digital rs232
« Respuesta #8 en: 08 de Julio de 2009, 19:49:38 »
Aquí tienes el circuito necesario, y en la siguiente página el circuito completo, por ejemplo para conectar a un 16F84A
No contesto mensajes privados, las consultas en el foro

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: convertidor voltaje analogo digital rs232
« Respuesta #9 en: 08 de Julio de 2009, 22:36:16 »
 :shock: :shock:

Estas conectando directamente el PIC al PC????? ufff!!!

Necesitas que el MAX232 vaya al rescate amigo ... en el link que te dio Suky esta todo muy bien explicado. Sin embargo veo que no estas enviando el valor en BCD.

Saludos
El papel lo aguanta todo

Desconectado sergioneri

  • PIC10
  • *
  • Mensajes: 31
Re: convertidor voltaje analogo digital rs232
« Respuesta #10 en: 09 de Julio de 2009, 23:00:16 »
a gracias, ya lo conecte como me dicen pero sigo teniendo lo mismo, conecte el pic al max 232 como el que circuito que tiene suky pero  me sigue marcando lo mismo,utilize ese programa llamado siow y lee pero no lee ni binario, ni nada saca en la ventana de abajo numeros asi 00 ff ee 00  ... y en la otra puros signos raros y no se que onda,no entendi el ultimo mensaje, le falta a mi codigo eso?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: convertidor voltaje analogo digital rs232
« Respuesta #11 en: 09 de Julio de 2009, 23:08:45 »
Exacto! Y unos mensajes más arriba te he dejado un link con rutinas útiles para ese caso.
No contesto mensajes privados, las consultas en el foro

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: convertidor voltaje analogo digital rs232
« Respuesta #12 en: 09 de Julio de 2009, 23:15:13 »
Si estas enviando el resultado directo de la conversion, el signo raro es el equivalente ASCII del valor de lectura del ADC (supongo que trabajas a 8 bits). Si quieres enviar numeros por el serial, debes primero: pasar tu numero, resultado de la conversion, a BCD y segundo: pasar cada uno de los numeros, resultado de la conversion BCD, a ASCII.

Supongamos que el ADC da una conversion de 125 (ocupa un solo registro de 8 bits). Este valor se lo pasa a BCD: 1.2.5 (ocupa 3 registros de 8bits) y por ultimo lo pasamos a ASCII '1','2','5' (ocupa 3 registros de 8 bits).

Para pasar de entero a ASCII basta con sumarle el string '0'.

Saludos
El papel lo aguanta todo

Desconectado sergioneri

  • PIC10
  • *
  • Mensajes: 31
Re: convertidor voltaje analogo digital rs232
« Respuesta #13 en: 11 de Julio de 2009, 21:40:46 »
mmm que raroes que el codigo que aparece en el tercer mensaje no es mio solo lo usaba para ver como funciona por que segun el amigo que me lo paso ya estaba completo esta bien , lo que le hiba preguntar a suky es que de los circuitos que me pasaste viene un codigo qu usas con el pic 16F84A y lo compile y si lo compila bien , crees que nomasuando las mismas entradas y salidas funcione para lo que necesite?(es que hago esta pregunta por que nunca e utilizado otro pic distinto al que tengo y no se que diferencia existe y pensaba hacerlo como me decian pero todavia no me queda muy claro lo del bcd)gracias a todos por su ayuda