Autor Tema: S.O.S. con Rs232  (Leído 1739 veces)

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

Desconectado baixinyo

  • PIC10
  • *
  • Mensajes: 12
S.O.S. con Rs232
« en: 09 de Agosto de 2005, 03:18:00 »
Primero agradecer a todo el mundo la ayuda que day a gente tan torpe como yo, muchas GRACIAS.

Voy directo al grano:

Tengo un equipo que me da una señal RS232 8N1, o sea, 8 bits de datos y uno de stop. De esta manera me envía 3 veces 8 bits con el bit de stop para cada uno.

Como puedo hacer esta comunicacón con el pic 16f84 o con el 16F876.

Mi nivel de inglés es 0, y ya he mirado todo lo referente del tema Rs232 en el foro y no he entendido nada, perdonad mi ignoracia.

Si me podeis ayudar porfavor, con una explicación o un programilla con explicación me harías un gran favor.

No engañaré a nadie es para el trabajo, me juego el empleo, sino consigo hacer el programa me despiden. Tengo un compañero que lo sabe hacer pero no me quiere ayudar, es el tipico prepotente que si no sabes más que el te trata de ignorate, me gustaría darle una lección.

Gracias por todo.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
RE: S.O.S. con Rs232
« Respuesta #1 en: 15 de Septiembre de 2005, 04:20:00 »
HOla. No se si llego tarde, pero es bien facil lo que necesitas.
Con los datos obtenidos que queres hacer???
Bueno, simplemente para empezar a hablar y hacerlo sin integrados auxiliares, necesitas un PIC con al menos 9 pins de entrada, para leer los datos, cosa que es bien simple. El noveno bit supongo que cuando se pone en alto o bjao, indica el fin del mensaje, o no?
Necesitas 9 pins + los pins de salidas que quieras usar. Te hago un ejemplo facilito en assembler para el 16F84A...

Ej

;Primero de todo:

;declaracion de GPR:

aux        EQU       0x0c
final       EQU       0x4E

;vectores importantes y componentes externos: pone una resistencia de 10k a la ;salida de RA0 y conectala a 5v

org     0x0000
goto   inicio

org 0x0004
goto inicio

org 0x0010

;luego:
;Configuras el puerto B del pic como entradas...

inicio       bsf   status,rp0
               movlw     0xff
               movwf    portb
               clrf          option_reg     ;activar pull ups en puerto b
               movlw    0x01
               movwf   porta               ;ra0 como entrada, las demas como salidas
               bcf          status,rp0

               clrf          porta
               clrf          0x0c

               movlw    0x0c
               movwf    FSR
               movlw    0x0d
               movwf    final

loop        btfsc       porta,0         ; esperar que el bit de stop pase a cero (si funciona
               goto        loop             ; a la inversa reemplaza btfsc por btfss...)

                movf     portb,w
                movwf  aux
                xorwf    INDF,W
                btfsc     status,Z
                goto      loop             ;el dato sigue siendo igual al anterior, no guardarlo

                incf       FSR,F
                movf     aux,w
                movwf  INDF
                movf    FSR,w
                movwf final
 
               
                goto     loop
               
leerdatos  movlw    0x0d  ;posicion del primer dato
                 movwf    FSR

                 xorwf   final,w
                 btfsc    STATUS,Z
                 retlw    0x00                                    ;no hay datos que leer
                 
proxdato   movf     INDF,w
                 nop                     ;movwf  ;???          ;me tenes que decir que hacer
                                                                          ;con los datos obtenidos!!!
                 incf       FSR,F
                 movf     FSR,w
                 xorwf    final,w
                 btfss   STATUS,z
                 goto    proxdato

ultimodato movf     INDF,W
                  nop                     ;movwf  ;???
                  retlw     0x01

bien...esopero que entiendas lo que hice. Saludos y pregunta sin miedo. chauu!RebotadoRebotadoRebotadoRebotadoRebotado
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything