bueno es mi primer duda que me surge desde hace mucho tiempo quiero comunicar dos pic mediante radiofrecuencia usando la comunicacion serial en el transmisor tengo el siguiente codigo al simularlo no termina la transmision necesito ayuda para que me digan si algo esta mal, en la parte de la sintaxis,en la configuracion de los puertos o en el programa o si no puede simularse en el mplab
Código:
LIST P=16F877A
INCLUDE<P16F877A.INC>
;BITS DE CONFIGURACION
__CONFIG _LVP_OFF& _XT_OSC& _WDT_OFF& _PWRTE_ON& _CP_OFF& _BODEN_OFF& _DEBUG_OFF
ERRORLEVEL 0, -302
org 0x00
nop
nop
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
clrf TRISA ;PORTA salida
movlw b'00000001'
movwf TRISB ;bit 0 como entrada
clrf TRISC ;PORTC salida
clrf TRISD ;PORTD salida
clrf TRISE
bcf TRISC,6 ;RC6/TX salida, pin de transmisión
bsf TRISC,7 ;RC7/Rx entrada, pin de recepción
movlw d'25' ;2400 baud rate Xtal=4Mhz
movwf SPBRG
bcf TXSTA,BRGH ;Selección de baja velocidad
bcf TXSTA,SYNC ;Modo asíncrono
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
bsf RCSTA,SPEN ;habilita el puerto serie
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
bcf TXSTA,TX9 ;8 bits de datos a transmitir
bsf TXSTA,TXEN ;Activa la transmisión serial, TXIF = 1
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
movlw b'01010101'
movwf 0x20
boton
btfss PORTB,0
goto boton
call TX_DATO
goto boton
TX_DATO bcf PIR1,TXIF ; Restaura el flag del transmisor
movf 0x20,W
movwf TXREG ; Mueve el byte a transmitir al registro de transmision
bsf STATUS,RP0 ; Bank01
bcf STATUS,RP1
TX_DAT_W btfss TXSTA,TRMT ; ¿Byte transmitido?
goto TX_DAT_W ; No, esperar
bcf STATUS,RP0 ; Si, vuelta a Bank00
return
end
Última edición por un moderador: