HOLA AMIGOS DEL FORO, NO SE PORQUE PERO NO PUDE INGRESAR AL FORO A TRAVES DE MI NOMBRE YA REGISTRADO COMO NEOSUD, PERO YA ENTRE COMO PARSUD.
ESTOY LEYENDO LOS DATOS Q SON ENVIADOS DESDE UNA PC A TRAVES DEL PROGRAMA PROCOM PLUS, PARA LO CUAL UTIULIZO UN PIC16F876A CON UN XTAL DE 20MHZ, EL PROGRAMA FUNCIONA BIEN CUANDO SE TRATA DE ENVIAR 1, 2 O 3 CARACTERES A LA VEZ ES DECIR SI ENVIO EL DATO 3 O 45 ESTE LLEGA AL PIC Q EN VERDAD LLEGAN 2 Y 3 DATOS RESPECTIVAMENTE YA Q PRESIONO LA TECLA ENTER PARA Q SE ENVIE Y ESTE CONSTITUYE UN DATO TAMBIEN, HASTA EL PROGRAMA TRABAJA BIEN PERO CUANDO ENVIO DATOS COMO 234 O 6789, EL PIC SOLO LEE LOS 3 PRIMEROS DIGITOS Y LO DEMAS NO LO RECEPCIONA, ES MAS SI DESPUES DE RECIBIR EL TERCER DATO NO LE AGREGO ALGUNAS LINEAS MAS DE LO Q TIENEN PARA LOS 2 PRIMEROS DIGITOS, EL PIC TERMINARIA NO FUNCIONANDO LA RECEPCION AUNQUE EL PIC SIGUE HACIENDO LO DEMAS SIN RECEPCIONAR LOS DATOS Q SE LE ENVIA.
ESTE PROBLEMA ME ESTA CAUSANDO DOLORES DE CABEZA Y NECESITO SOLUCIONARLO LO MAS PRONTO POSIBLE.
ACUDO A UDS YA Q DEBEN HABER PASADO POR SITUACIONES PARECIDAS, LES AGRADECERIA SI PUEDEN AYUDARME EN ESTE TEMA.
ESTE ES EL PROGRAMA Q HE REALIZADO:
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _DEBUG_OFF & _CPD_OFF
;9600 BAUDIOS
;EL PROCOM PLUSS ESTA CONFIGURADO PARA Q TABAJE A ESA VELOCIDAD Y SOLO LO UTILIZO
;PARA ENVIAR DATOS AL PIC
LIST P=16F876A, W=1
INCLUDE "P16F876A.INC"
CBLOCK 0X20
DELAY,TEMPORAL1,TEMPORAL,DIR_EE,VECES,TEMPORAL2
TEMPORAL3,TEMPORAL4,ESPIA,B_PORTA,VECES2
ENDC
ORG 0X00
GOTO INICIO
ORG 0X04
GOTO RECEPCION
ORG 0X05
INICIO
BSF STATUS,RP0
BCF STATUS,RP1
MOVLW B'0110'
MOVWF ADCON1
CLRF TRISA
CLRF TRISB
MOVLW B'10000000'
MOVWF TRISC
MOVLW B'0010'
MOVWF OPTION_REG
MOVLW .129
MOVWF SPBRG
MOVLW B'01101101'
MOVWF TXSTA
MOVLW B'11000000'
MOVWF INTCON
MOVLW B'00100000'
MOVWF PIE1
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW B'11010000'
MOVWF RCSTA
CLRF PORTB
CLRF VECES
CLRF VECES2
EMPEZAR
BCF STATUS,RP0
BSF STATUS,RP1
MOVLW B'11000000'
MOVWF INTCON
MOVLW B'00100000'
MOVWF PIE1
BCF STATUS,RP1
MOVLW 0XEF
MOVWF PORTB
CALL RETARDO_1S
GOTO EMPEZAR
;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
RECEPCION
INCF VECES2,1
MOVF VECES2,0
XORLW .1
BTFSS STATUS,Z
GOTO RX2?
GOTO RX1
RX2? MOVF VECES2,0
XORLW .2
BTFSS STATUS,Z
GOTO RX3?
GOTO RX2
RX3? MOVF VECES2,0
XORLW .3
BTFSS STATUS,Z
GOTO RX4?
GOTO RX3
RX4? MOVF VECES2,0
XORLW .4
BTFSS STATUS,Z
GOTO SALIR
GOTO RX4
RX1 BTFSS PIR1,5
GOTO RX1
NOP
MOVF RCREG,0
MOVWF TEMPORAL1
MOVLW 0XBF
MOVWF PORTB
CALL RETARDO_1S
BCF PIR1,RCIF
RETFIE
RX2 BTFSS PIR1,5
GOTO RX2
NOP
MOVF RCREG,0
MOVWF TEMPORAL2
MOVLW 0X86
MOVWF PORTB
CALL RETARDO_1S
BCF PIR1,RCIF
RETFIE
RX3 BTFSS PIR1,5
GOTO RX3
NOP
;.....................................................................................................
;TUVE Q PONER ESTAS LINEAS DE PROGRAMA SINO CUANDO ENVIO 4 DATOS LA RECEPCION QUEDA INHIBIDA AUNQUE EL
;PROGRAMA SIGUE FUNCIONANDO
BCF RCSTA,OERR
BCF RCSTA,CREN
BCF RCSTA,CREN
MOVF RCREG,0
MOVWF TEMPORAL3
CLRF RCSTA
CLRF TXREG
BSF STATUS,RP0
BCF STATUS,RP1
CLRF TXSTA
MOVLW B'01101101'
MOVWF TXSTA
BCF STATUS,RP0
MOVLW B'11010000'
MOVWF RCSTA
;.....................................................................................................
;.....................................................................................................
MOVF RCREG,0
MOVWF TEMPORAL3
MOVLW 0X87
MOVWF PORTB
CALL RETARDO_1S
BCF PIR1,RCIF
RETFIE
RX4 BTFSS PIR1,5
GOTO RX4
NOP
MOVF RCREG,0
MOVWF TEMPORAL4
MOVLW 0XE6
MOVWF PORTB
CALL RETARDO_1S
SALIR BCF PIR1,RCIF
CLRF VECES2
RETFIE
RETARDO_1MSP0
MOVLW .5
MOVWF DELAY
BUCLE2P0
CLRF TMR0
BUCLE1P0
MOVLW .10
SUBWF TMR0,0
BTFSS STATUS,Z
GOTO BUCLE1P0
DECFSZ DELAY,1
GOTO BUCLE2P0
RETURN
RETARDO_1S
BSF STATUS,RP0
MOVLW B'0101'
MOVWF OPTION_REG
BCF STATUS,RP0
MOVLW .250
MOVWF DELAY
SALTO2A
CLRF TMR0
SALTO1A
MOVLW .180
SUBWF TMR0,0
BTFSS STATUS,Z
GOTO SALTO1A
DECFSZ DELAY,1
GOTO SALTO2A
BSF STATUS,RP0
MOVLW B'0010'
MOVWF OPTION_REG
BCF STATUS,RP0
RETURN
RETARDO_1S_
BSF STATUS,RP0
MOVLW B'0101'
MOVWF OPTION_REG
BCF STATUS,RP0
MOVLW .63
MOVWF DELAY
SALTO2A_
CLRF TMR0
SALTO1A_
MOVLW .13
SUBWF TMR0,0
BTFSS STATUS,Z
GOTO SALTO1A_
DECFSZ DELAY,1
GOTO SALTO2A_
BSF STATUS,RP0
MOVLW B'0010'
MOVWF OPTION_REG
BCF STATUS,RP0
RETURN
END
ESPERO PUEDAN AYUDARME CON UN EJEMPLO Q HAYAN HECHO, NECESITO Q PUEDA RECIBIR DATOS COMO: M23456736 O HOLA, MASTER, ESCLAVO, RUYGFJKNGNDKL,ETC
SALUDOS