Autor Tema: Problema con TX/RX en un PIC16F84; Help I need somebody  (Leído 3311 veces)

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

Desconectado El_Bestia

  • PIC10
  • *
  • Mensajes: 5
Problema con TX/RX en un PIC16F84; Help I need somebody
« en: 27 de Mayo de 2004, 18:10:00 »
Hey como andan ?
tengo un pequeño problemita con la recepcion serial en un PIC16F84, estoy utilizando un programilla en assembler que me encontre en un link en esta pagina pero solamente la transmicion es la que funciona y me preguntaba si tienen algun programa que hayan probado y puedan facilitarme para hacer pruebas y ver en que me estoy equivocando

sin nad mas que decir, ahi los dejo esperando una respuesta por su parte

el programa que estoy utilizando es este:

; Programa:Comunicación asíncrona a PC vía RS232
; Autoranilo García
; Fecha:Mayo de 1999
; El programa recibe un byte por el pin RX
;para luego enviarlo por el pin TX.

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Parámetros de comunicación RS232: 9600,N,8,1
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   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                                      ;RETARDO DE 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



Desconectado huro

  • PIC10
  • *
  • Mensajes: 36
RE: Problema con TX/RX en un PIC16F84; Help I need somebody
« Respuesta #1 en: 28 de Mayo de 2004, 18:35:00 »
 He estado revisando el programa y tiene un par de errores, te falta configurar en el programa principal, despues de BANK1 lo siguiente, bsf  RX, y despues de BANK0 la instrucción  bsf   TX; El resto parece correcto.  

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Problema con TX/RX en un PIC16F84; Help I need somebody
« Respuesta #2 en: 29 de Mayo de 2004, 19:01:00 »
Hola , mira aqui
http://www.todopic.com.ar/asm/RS232/232timer.TXT

notaras que hay partes en castellano, esas las escribi yo, estan probadas y funcionan....

Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado El_Bestia

  • PIC10
  • *
  • Mensajes: 5
RE: Problema con TX/RX en un PIC16F84; Help I need somebody
« Respuesta #3 en: 29 de Mayo de 2004, 20:22:00 »
Hey muchas gracias !! lo checare lo mas rapido posible y les agracezco que hayan contestado rapido


 

anything