Autor Tema: Comunicacion Serial  (Leído 2167 veces)

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

Desconectado VULCANOLOGO

  • PIC10
  • *
  • Mensajes: 13
Comunicacion Serial
« en: 21 de Junio de 2006, 22:35:27 »
Hola a todos.

Nunca crei que iba a utilizar los pics dentro de mi vida profesional, pense que al terminAr la Universidad....caso cerrado.
Ahora tengo que desarrolar interfaces para sensores volcanicos. Asi que ni modo........PICs............  :D
Mi dificultad esta en el envio de datos provenientes del conversor analogico digital al puerto serie de mi p.c.....lo del conversor lo resuelvo....solo quiero saber si  alguien  tiene alguna rutina sencilla al menos de envios de datos rs 232.....provenientes de cualquier registro del pic. Despues hablaremos cosas complicadas.......

VULCANOLOGO     

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Comunicacion Serial
« Respuesta #1 en: 22 de Junio de 2006, 03:12:16 »
Hola VULCANOLOGO, si en el buscador del foro colocas RS-232 de seguro apareceran un monton de post de los que hablan del tema, aparte de lo anterior no nos comentaste que lenguaje de programación usás y tampoco que PIC es el que deseas usar.

UN saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado VULCANOLOGO

  • PIC10
  • *
  • Mensajes: 13
Re: Comunicacion Serial
« Respuesta #2 en: 22 de Junio de 2006, 19:45:25 »
Bueno.-....siempre he utilizada ensamblador, y he tenido experiencias con el pic16F877, a si que quiero  seguir utilizando ese mismo

Saludos
« Última modificación: 22 de Junio de 2006, 19:47:55 por VULCANOLOGO »

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Comunicacion Serial
« Respuesta #3 en: 22 de Junio de 2006, 19:51:28 »
fijate aca estan tratando el tema

http://www.todopic.com.ar/foros/index.php?topic=12603.0
un saludo
Existo, aunque pienses que no pienso

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Comunicacion Serial
« Respuesta #4 en: 22 de Junio de 2006, 20:28:13 »
VULCANOLOGo dejo este ejemplillo espero que te sirva :mrgreen:

Código: ASM
  1. ;* Este programa envía repetidamente una cadena de caracteres a través
  2. ;* del puerto serie asíncrono USART, La cadena utiliza como terminador
  3. ;* un carácter "$". Se supone un oscilador a cristal Fosc=4 Mhz
  4. ;************************************************************************
  5.        Include "p16f877.inc"
  6. apun   EQU 0x20
  7. dato   EQU 0x21
  8.        org 0x0000
  9. trans  BSF STATUS,RP0 ;banco 1
  10.        BCF TXSTA,BRGH ;pone bit BRGH=0 (velocidad baja)
  11.        MOVLW b'00000110' ;valor para 9600 Bauds (Fosc=4 Mhz)
  12.        MOVWF SPBRG ;configura 9600 Bauds
  13.        BCF TXSTA,SYNC ;limpia bit SYNC (modo asíncrono)
  14.        BSF TXSTA,TXEN ;pone bit TXEN=1 (habilita transmisión)
  15.        BCF STATUS,RP0 ;regresa al banco 0
  16.        BSF RCSTA,SPEN ;pone bit SPEN=1 (habilita puerto serie)
  17. rep    CLRF apun ;inicializa apuntador
  18. cic2   CALL letrero ;obtiene el siguiente carácter apuntado
  19.        MOVWF dato ;lo guarda en dato
  20.        SUBLW "$" ;Compara con el signo "$"
  21.        BTFSC STATUS,Z ;
  22.        GOTO rep ;si es, reinicia
  23.        CALL envia ;si no es "$" envía el dato
  24.        INCF apun,1 ;apunta al siguiente carácter
  25.        GOTO cic2 ;repite
  26. ;*************************************************
  27. ;Subrutina para enviar un dato por el puerto serie
  28. ;*************************************************
  29. envia  BSF STATUS,RP0 ;banco 1
  30. esp    BTFSS TXSTA,TRMT ;checa si el buffer de transmisión
  31.        GOTO esp ;si está ocupado espera
  32.        BCF STATUS,RP0 ;regresa al banco 0
  33.        MOVF dato,W ;rescata dato a enviar
  34.        MOVWF TXREG ;lo envía
  35.        RETURN
  36. letrero:
  37.        MOVF apun,W ;carga apuntador en W
  38.        ADDWF PCL,1 ;Salta W instrucciones adelante
  39.        DT "HOLA MUNDO 4 Mhz",0x0D,0x0A,"$"
  40.        end

Saludos LabPIC

PD: Esta cadena puede ser recibida mediante la hiperterminal de windows y un cable
de comunicación serie uno a uno (es decir, un cable sin intercambio interno de
líneas).
¡¡¡Viva México cabrones!!!

Desconectado VULCANOLOGO

  • PIC10
  • *
  • Mensajes: 13
Re: Comunicacion Serial
« Respuesta #5 en: 27 de Junio de 2006, 17:52:30 »
Gracias a todos por la tencion prestada.....

Tengo una preginta LabPic.. con respecto al programita que me enviaste lo he simulado y funciona muy bien, si esta comprensible. Sin embargo tengo una duda en la directiva  DT "HOLA MUNDO 4 Mhz",0x0D,0x0A,"$", "DT" no la comprendo....Gracias


Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Comunicacion Serial
« Respuesta #6 en: 27 de Junio de 2006, 18:51:47 »
DT - Definir Tabla (Define Table)

Sintaxis
[<label>] dt <expr> [, <expr>, ..., <expr>]

Descripción
Genera una serie de instrucciones RETLW, una instrucción por cada <expr>. Cada <expr> debe de ser un valor de 8 bits. Cada caracter en un string es almacenado en su propia instrucción RETLW.

Espero y me haya explicado bien, si no es así pues no duden en hacerlo saber :).

Saludos LabPIC
« Última modificación: 27 de Junio de 2006, 19:04:59 por LabPIC »
¡¡¡Viva México cabrones!!!

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Comunicacion Serial
« Respuesta #7 en: 27 de Junio de 2006, 19:20:11 »
Con esta DT te ahorras todo el codigo siguiente:

Código: ASM
  1. letrero:
  2.      MOVF      apun,W;
  3.      ADDWF     PCL,1;
  4.      RETLW     'H';
  5.      RETLW     'O';
  6.      RETLW     'L';
  7.      RETLW     'A';
  8.      RETLW     ' ';
  9.      RETLW     "M";
  10.      RETLW     "U";
  11.      RETLW     "N";
  12.      RETLW     "D";
  13.      RETLW     "O";
  14.      RETLW     " ";
  15.      RETLW     "4";
  16.      RETLW     " ";
  17.      RETLW     "M";
  18.      RETLW     "H";
  19.      RETLW     "z";
  20.      RETLW     0x0D;
  21.      RETLW     0x0A;
  22.      RETLW     "$";
  23.      end

Insisto, si encuentran algun error los que pasen por aqui no duden en hacerlo saber.

Saludos LcbPIC :mrgreen:
¡¡¡Viva México cabrones!!!

Desconectado VULCANOLOGO

  • PIC10
  • *
  • Mensajes: 13
Re: Comunicacion Serial
« Respuesta #8 en: 27 de Junio de 2006, 20:32:15 »
Interesante.....Gracias...........Ahora imagino que esta instruccion DT es parte del ensamblador y no del set de programacion de los pic....verdad?
 
« Última modificación: 27 de Junio de 2006, 20:34:05 por VULCANOLOGO »

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Comunicacion Serial
« Respuesta #9 en: 27 de Junio de 2006, 20:36:41 »
Si claro, esta es una directiva del ensamblador, independiente del set de instrucciones de cada PIC :mrgreen:.

Saludos LabPIC
¡¡¡Viva México cabrones!!!