Autor Tema: no puedo comunicar maq. serie sincronica  (Leído 1239 veces)

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

Desconectado cbabow

  • PIC10
  • *
  • Mensajes: 16
no puedo comunicar maq. serie sincronica
« en: 30 de Diciembre de 2004, 07:01:00 »
Hola, mi problemita es que no podemos enviar datos con la pc mediante un pic a una mauina que se cominica en forma sincronica es decir clock mas datos segun lo visto pos nosotros envia 9 byte 1 de sincronismo y luego los datos el tema es como montar los datos con el clock , que el clock entra en una pata de pic16f84 .
los datos estan cargados en bin pero en un futura seran enviados pos la PC mediante rs232. Algo estamos haciendo mal , les paso el codigo en asm para ver si alguien encuentra algo mal hay instrc. que estan anuladas debido a las modific.  pero se pueden dar cuenta de la idea.
Saludos Hernan

ESTADO   equ   0x03
PORTA   equ   0x05
PORTB   equ   0x06
BUFFER   equ   0x10
BITS   equ   0x11
BYTE1   equ   0x12
BYTE2   equ   0x13
BYTE3   equ   0x14
BYTE4   equ   0x23
BYTE5   equ   0x24
BYTE6   equ   0x25
BYTE7   equ   0x32
BYTE8   equ   0x33
TIEMPO1   equ   0x15
TIEMPO2   equ   0x16
BYTE1R   equ   0x17
BYTE2R   equ   0x18
BYTE3R   equ   0x19
BYTE4R   equ   0x20
BYTE5R   equ   0x21
BYTE6R   equ   0x22
BYTE7R   equ   0x30
BYTE8R   equ   0x31
UNI      equ   0x27      ;Usados para pasar a decimal
DEC      equ   0x28
CEN      equ   0x29
BUFFER2   equ 0x1A


      
#define   CARRY   ESTADO, 0
#define   RP0      ESTADO, 5
#define   TXM      PORTB, 0   ;Salida a maquina
#define   TXD      PORTA, 0   ;Salida RS232
#define   LED      PORTA, 1   ;Led indicador de SYNC OK
#define   CLOCK   PORTA, 3   ;Entrada de clock
#define   DATOS   PORTA, 4   ;Entrada de datos
#define   PULSA   PORTB, 1   ;Entrada de pulsador
#define   DATOM   PORTB, 0   ;Entrada de pulsador
#define   CERO   ESTADO, 2   ;Comparador de BYTES



    clrf   PORTA
   bsf      RP0
   movlw   b"00011000"
   movwf   PORTA
;   clrf   PORTB
   movlw   b"01111110"
   movwf   PORTB
   bcf      RP0
;   clrf   PORTB
;   clrf   PORTA
   bsf      TXD      ;RS232 en reposo
   bsf      TXM



CICLO


;   bsf      DATOM
   movlw   b"00000000"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"11111011"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"11111111"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"11011111"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"11111111"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"11111111"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"11111011"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"10000001"
   call   TXMAQ
;   call    ENVIAR
   movlw   b"00000011"
   call   TXMAQ
;   call    ENVIAR
   bsf      LED
   GOTO   CICLO



ENVIAR
   movwf   BUFFER      ;Envia un byte por RS232
   movlw   d"8"
   movwf   BITS
   bcf      TXD
   call   BIT
   rrf      BUFFER, 1
   btfss   CARRY
   bcf      TXD
   btfsc   CARRY
   bsf      TXD
   call   BIT
   decfsz   BITS, 1
   goto   $ -7
   bsf      TXD
   call   BIT
   call   DEL20
   return

TXMAQ

   movwf   BUFFER2      ;Envia un byte por RS232
   movlw   d"8"
   movwf   BITS
   rrf      BUFFER2, 1
   btfss   CARRY
   call   MANDA0
   btfsc   CARRY
   call   MANDA1
   decfsz   BITS, 1
   goto   $ -6

   return

MANDA0
   bcf      DATOM
;   btfsc   CLOCK
;   goto   $ -1
;   btfss   CLOCK
;   goto   $ -1
;   bsf      DATOM
   CALL   BIT2
;   bcf      DATOM
   return

MANDA1
   bsf      DATOM
;   btfsc   CLOCK
;   goto   $ -1
;   btfss   CLOCK
;   goto   $ -1
   CALL   BIT2
;   bcf      DATOM   
   return



DEL20   movlw   d"20"      ;Demora de 20 ms
      movwf   TIEMPO2
FALTA2   movlw   d"110"
      movwf   TIEMPO1
FALTA1   nop
   nop
   clrwdt
   nop
   nop
   nop
   decfsz   TIEMPO1, 1
   goto   FALTA1
   decfsz   TIEMPO2, 1
   goto   FALTA2
   return


BIT   movlw   d"166"      ;Demora de 1 bit a 1200bps
   movwf   TIEMPO1
   clrwdt
   nop
   decfsz   TIEMPO1, 1
   goto   $ -3
   return

BIT2   
   movlw   d"166"      ;Demora de 1 bit a 1024bps
   movwf   TIEMPO1
   clrwdt
   nop
   decfsz   TIEMPO1, 1
   goto   $ -3
   return

   end