Autor Tema: Recepcion de datos usando la usart del PIC16f73  (Leído 1742 veces)

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

Desconectado masnancia

  • PIC10
  • *
  • Mensajes: 2
Recepcion de datos usando la usart del PIC16f73
« en: 03 de Junio de 2003, 16:57:00 »
Hola a todos:

Tengo una consulta sobre como armar un buffer con datos recibidos desde la PC via RS232, la comunicacion la pude establecer pero no logro realizar una rutina que me tome de 3 a 5 bytes y los coloque en memoria.

Acepto cualquier ayuda, desde ya muchas gracias.

Desconectado integratecno

  • PIC10
  • *
  • Mensajes: 7
RE: Recepcion de datos usando la usart del PIC16f73
« Respuesta #1 en: 16 de Octubre de 2005, 10:37:00 »
Con esto manejas 3 bytes, pero puedes darle continuidad al tamaño que necesites, espero te sirva.
ini      movf   RCREG,0       ;muev el byte recibido al buffer
      movwf  buffer
      incf   conta,F      ;incrementa contador de byte"s
         
b1      movf   conta,0
      xorlw  01h           ;contador de byte"s = 1
      btfsc  STATUS,Z
      goto   byte1         ;SI
      
b2      movf   conta,0       ;NO
      xorlw  02h           ;contador de byte"s = 2
      btfsc  STATUS,Z
      goto   byte2         ;si
   
b3      movf   conta,0       ;no
      xorlw  03h           ;contador de Byte"s = 3
      btfsc  STATUS,Z
      goto   byte3         ;si
      goto   inicio        ;no
   
byte1  movf   buffer,W      ;mueva el contenido de buffer a rx1
       movwf  rx1
       addwf  CHK,1         ;sumelo al chksum
       goto   leepto        ;vuelva a leer el puerto
       
byte2  movf   buffer,W      ;mueva el contenido de buffer a rx2
       movwf  rx2
       addwf  CHK,1         ;sumelo al chksum
       goto   leepto        ;vuelva a leer el puerto
       
byte3  movf   buffer,W      ;mueva el contenido de buffer a rx3
       movwf  rx3
       movf   rx3,0         ;mueva rx3 a w
       xorwf  CHK,0         ;rx3 = a chksum
       btfss  STATUS,Z
       goto   ci            ;NO es igual
       goto   dato1         ;SI es igual


 

anything