No, vos recibis de a 1 byte.
Si vos de la PC mandas esto: "12"
recibirias 2 bytes, 0x31 y 0x32
Luego cuando recibas podes hacer que el primer numero vaya a Var_C o que ambos numeros los convertis en binario y alamacenas en Var_C
hola! gracias por tu constante ayuda!
ya entiendo lo de enviar y recibir datos! el unico problemita que tengo es que al enviar algo atraves de una tabla DT no envio todo completo
cuando lo hago "paso a paso" si funciona, y no entiendo porque! otra cosa, mi programa utiliza dos interrupciones las del periferico y el timer 0, lo que sucede es que se desborda el timer aunq no le cargo ningun valor, hasta donde entendido solo empieza a contar el timer cuando le cargo algo, pero a mi se me desborda antes de tiempo, les dejo mi configuracion inicial y el codigo de enviar datos
;------------------------------------------------------------------
;configuro inicio del programa con el vector reset/interrupcion
;*****************************************************************
org 00H
goto inicio
org 04h
goto Interrupcion
;-----------------------------------------------------------------------
; Inicia Programa
; CONFIGURO I/O
;**********************************************************************
inicio
;clrwdt
ERRORLEVEL -302
;*********************************************************************
;Configuro para envio y recepcion de datos
; Configuro puertos de entradas y salidas
;---------------------------------------------------------------------
BANKSEL ANSEL ;I/O DIGITALES
clrf ANSEL
clrf ANSELH
bcf BAUDCTL,BRG16 ;BAUD DATA PARA 8BITS
BANKSEL TRISC
movlw B'10000000'
movwf TRISC
movlw b'00000000'
movwf TRISB
movwf TRISE
clrwdt
BANKSEL TXSTA
movlw b'00100100'
movwf TXSTA
bsf PIE1,RCIE
movlw b'10000010'
movwf OPTION_REG
movlw .25
movwf SPBRG
BANKSEL RCSTA
bsf RCSTA,CREN
bsf RCSTA,SPEN
movlw b'11000000'
movwf INTCON
BANKSEL PORTB
clrf PORTB
movlw b'00000111'
movwf PORTE
cic1
call MENU ;MENU COLORES, HYPERTERMINAL
movwf dato ;lo guarda en dato
sublw "$" ;Compara con el signo "0"
btfsc STATUS,Z ;
goto rep ;si es, reinicia
call envia ;si no es "0" envía el dato
incf apun,f ;apunta al siguiente carácter
goto cic1
rep
clrf apun
clrf dato
cic2
call LISTO
movwf dato ;lo guarda en dato
sublw "$" ;Compara con el signo "0"
btfsc STATUS,Z ;
goto rep1 ;si es, reinicia
call envia ;si no es "0" envía el dato
incf apun,f ;apunta al siguiente carácter
goto cic2
rep1
clrf apun1
movlw .16
subwf COLORES16,W
btfss STATUS,Z
goto Carga_duty
movlw "$"
xorwf MOVIMIENTO,W
btfsc STATUS,Z
goto Carga_duty
goto $-8
envia
bsf STATUS,RP0 ;banco 1
esp
btfss TXSTA,TRMT ;checa si el buffer de transmisión
goto esp ;si está ocupado espera
bcf STATUS,RP0 ;regresa al banco 0
bcf PIR1,TXIF
movf dato,W ;rescata dato a enviar
movwf TXREG ;lo envía
btfss PIR1,TXIF
goto $-1
return
;----------RUTINA DE TRANSMISION DE DATOS-----------------
ENVIA ;SUBRUTINA DE ENVIO POR TRANSMISOR
BCF PIR1,TXIF
MOVWF TXREG
BTFSS PIR1,TXIF
GOTO $-1
BANKSEL TXSTA
ENVIANDO
btfsc TXSTA,TRMT
GOTO ENVIANDO
BANKSEL RCSTA
RETURN
MENU
movf apun,W ;carga apuntador en W
addwf PCL,f
DT "Menu:",0x0D
DT "Rojo=1",0x0D
DT "Verde=2",0x0D
DT "Azul=3",0x0D
DT "Amarillo=4",0x0D
DT "Agua=5",0x0D
DT "Magente=6",0x0D
DT "Orange=7",0x0D
DT "Bonito=8",0x0D
DT "Morado=9",0x0D
DT "Marrón=10",0x0D
DT "Violeta=11",0x0D
DT "Oscuro=12",0x0D
DT "Verde1=13",0x0D
DT "Rosado=14",0x0D
DT "Verde2=15",0x0D
DT "Blanco=16",0x0D
DT 0x0D,0x0D,"$"
LISTO
movf apun,W
addwf PCL,f
DT "Escoja Color",0x0D
DT 0x0D,0x0D
DT "$"