Autor Tema: velocidad de transmision  (Leído 1961 veces)

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

Desconectado pedrolo21

  • PIC10
  • *
  • Mensajes: 2
velocidad de transmision
« en: 16 de Junio de 2005, 12:10:00 »
hola soy nuevo en esto de los pics y en la programacion en asm y tengo q hacer una comunicacion uart con un pic 12f683 y no consigo realizarla. creo q mi fallo esta en q no consigo sincronizar la velocidad de transmision. a estoy haciendo la sincronizacion por el hyper terminal por rs232 y un max232.

me he basado  en este programa encontrado en todopic para hacer la comunicacion pero tengo unas dudas tambien del programa de donde sa sacan estos valores
TIME
   MOVLW   1
   MOVWF   RET1
T3
   MOVLW   .28------------------------> de donde sale este valor
   MOVWF   RET2

el del TIME2 es la mitad de este


 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   list p=16f84
#include <p16f84.inc>
;
;PALABRA DE CONFIGURACIÓN:
;
   __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
;
;===========================================================================
#DEFINE   BANK0   BCF   STATUS,RP0
#DEFINE   BANK1   BSF   STATUS,RP0
TRUE   EQU   1
FALSE   EQU   0
;===========================================================================
;DEFINICION DE BITS:
;
#DEFINE   RX   PORTB,0
#DEFINE   TX   PORTB,1
;
;===========================================================================
;DEFINICION DE VARIBLES
;
DATO   EQU   0x0C   ;Dato a Transmitir o Recibido RS232
RET1   EQU   0x0D   ;para retardo de bit RS232
RET2   EQU   0x0E   ;para retardo de bit RS232
CONT8   EQU   0x0F   ;Contador de bits en rutinas RX y TX
;===========================================================================
   ORG 0
   GOTO   INICIO
;===========================================================================
   ORG 4
INTERRUPCION
   BTFSS   INTCON,INTF   ;COMPROBACIÓN DE INTERRUPCION INT
   RETFIE
;
   CALL   RXDATO
   XORLW   TRUE
   BZ   TX_DATO
   BCF   INTCON,INTF   ;BORRA BANDERA INT
   RETFIE
TX_DATO
   CALL   TXDATO
   BCF   INTCON,INTF   ;BORRA BANDERA INT
   RETFIE
;***************************************************************************
;**********        RUTINAS DE COMUNICACION ASINCRONA     *******************
;***************************************************************************
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RXDATO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   BTFSS   RX
   GOTO   RXBYTE
   RETLW   FALSE
RXBYTE
   CALL   TIME2
   MOVLW   8
   MOVWF   CONT8
BIT   CALL   TIME
   RRF   DATO,F
   BCF   DATO,7
   BTFSC   RX
   BSF   DATO,7
   DECFSZ   CONT8,F
   GOTO   BIT
   CALL   TIME2
   RETLW   TRUE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TXDATO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   MOVLW   8
   MOVWF   CONT8
   BCF   TX
BIT2
   CALL   TIME
   RRF   DATO,F
   BTFSS   STATUS,C
   BCF   TX
   BTFSC   STATUS,C
   BSF   TX
DECON
   DECFSZ   CONT8,F
   GOTO   BIT2
   CALL   TIME
   BSF   TX
   CALL   TIME
   RETURN
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME2         ;RETARDO DE 52 uS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   MOVLW   1
   MOVWF   RET1
T1
   MOVLW   .14
   MOVWF   RET2
T2
   DECFSZ   RET2,F
   GOTO   T2
   DECFSZ   RET1,F
   GOTO   T1
   NOP
   RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME         ;104 uS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   MOVLW   1
   MOVWF   RET1
T3
   MOVLW   .28
   MOVWF   RET2
T4
   DECFSZ   RET2,F
   GOTO   T4
   DECFSZ   RET1
   GOTO   T3
   NOP
   NOP
   RETURN
;***************************************************************************
INICIO
;
;PROGRAMACION DE LOS PUERTOS
   BANK1
   BCF   TX         ;PROGRAMA PIN TX COMO SALIDA
   BCF   OPTION_REG,INTEDG   ;PROGRAMA INT CON FLANCO DE BAJADA
   BANK0
;
;PROGRAMACION DE LA INTERRUPCION INT(RB0)
;
   BSF   INTCON,INTE   ;HABILITA INTERRUPCIÓN INT
   BSF   INTCON,GIE   ;HABILITA INTERRUPCIONES GLOBALMENTE
;
;ESPERA LA INTERRUPCION
   GOTO   $
;
   END

bueno si me pudierais ayudar estaria muy agradecido o decirme otra manera para
sicronizar la velocidad utilizando los timers me dierais algun ejemplo os estria muy agradecido. un saludo y gracias


 

anything