Autor Tema: Problema con comunicación serial  (Leído 1709 veces)

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

Desconectado flexjax

  • PIC10
  • *
  • Mensajes: 11
Problema con comunicación serial
« en: 10 de Diciembre de 2005, 12:56:00 »
Holap, nose que pasa con mi programa (usart, asincronico,9600 sin control de flujo) que lo unico que hace es recibir e enviar lo que recibe.. y no entiendo por que si mando una "a" llega una "q" ...�? si mando otras letras como la "w" o la "s" llegan bien.. si alguien me puede ayudar o mandar un codigo bueno para comprobar aca, ojala para un 16f873

Codigo:
#include <p16f873a.inc>

__CONFIG _CP_OFF & _HS_OSC & _PWRTE_OFF & _BODEN_OFF & _WDT_OFF & _LVP_OFF & _WRT_OFF

   CBLOCK 0x020
   HANDLE
   MOTOR
   NUMERO
   MSB
   LSB
   serial
    ENDC

_RESET code 0x0000
        goto MAIN

_INTERRUPT code 0x0004
      goto INTERRUPT

_MAIN code
MAIN

   ;Banco 0
   BCF STATUS,RP0
   BCF STATUS,RP1
   ;MOVLW (1<<GIE)|(1<<PEIE)|(1<<T0IE);int. globales, perifericos
   MOVLW (1<<GIE)|(1<<PEIE);int. globales, perifericos
    MOVWF INTCON
   MOVLW D"0"
   MOVWF HANDLE
   MOVLW 0x00   
   MOVWF NUMERO
   ;limpio los puertos
   clrf PORTA
   clrf PORTB
   clrf PORTC
   BSF PORTA,0
   movlw (1<<SPEN)|(1<<CREN);serial port enable,habilito recepcion
   movwf RCSTA
   MOVLW 0x0C
   MOVWF CCP1CON ; PWM mode

   MOVLW 0x0C
   MOVWF CCP2CON ; PWM mode
   MOVLW d"12"
   MOVWF CCPR1L ; DUTY CYCLE PWM1
   
   MOVLW d"5"
   MOVWF CCPR2L ; DUTY CYCLE PWM2

   BSF T2CON,TMR2ON ;PRENDO EL TIMER 2

   ;Banco 1
   BSF STATUS,RP0
   BCF STATUS,RP1
   ;bcf OPTION_REG,5

   MOVLW 0xA3
   MOVWF PR2
   MOVLW (1<<RCIE) ;Habilitado interrup. USART(recepci�n)
   MOVWF PIE1
   movlw 0x06 ;0000 0110
   movwf ADCON1
   ;configuro puertos
   clrf TRISA ;puerto A todos los pines salida
    clrf TRISB ;puerto B todos los pines salida
    clrf TRISC ;puerto C todos los pines salida
   bsf TRISC,7 ;Entrada recepci�n de datos
   
   
   ;configuracion del USART
;   movlw D"18"
   movlw D"129"
   movwf SPBRG
   ;movlw (1<<BRGH)|(1<<TXEN) ;High Speed, modo asincronico (default 0),
   movlw 0x24
   movwf TXSTA

   ;Banco 0
   BCF STATUS,RP0
   BCF STATUS,RP1
   

LOOP
    goto LOOP
   

_INT code
INTERRUPT

   GOTO RECEPCION

_USART CODE
RECEPCION
   
   MOVF RCREG,W
;   MOVWF CCPR1L
      addlw D"255"-"z"  ;z=122 en asci
      addlw "z"-"a"+1
      btfss STATUS,C
      addlw 0x20
      addlw "A"
      movwf TXREG

   RETFIE
   END



 

anything