Receptor

1
__CONFIG _CP_OFF&_PWRTE_ON&_XT_OSC LIST P=16F877A INCLUDE <P16F877A.INC> dato EQU 0x20 ORG 0x0000 trans BSF STATUS,RP0 ;banco 1 BCF TXSTA,BRGH ;pone bit BRGH=0 (velocidad baja) MOVLW 0x17 ;23-25valor para 9600 Bauds (Fosc=14.7456 Mhz) MOVWF SPBRG ;configura 9600 Bauds BCF TXSTA,SYNC ;limpia bit SYNC (modo asíncrono) ;BSF TXSTA,TXEN ;pone bit TXEN=1 (habilita transmisión) BCF STATUS,RP0 ;regresa al banco 0 BSF RCSTA,SPEN ;pone bit SPEN=1 (habilita puerto serie) BSF RCSTA,CREN ;Habilita recepción rep CALL recibe ;recibe dato MOVLW 0x1B ;carga código SUBWF dato,W ;es igual? BTFSC STATUS,Z ; GOTO fin ;si es igual termina CALL envia ;si n, retransmite el dato GOTO rep ;repite fin GOTO fin ;ciclo infinito ;************************************************* ;Subrutina para enviar un dato ;************************************************* envia BSF STATUS,RP0 ;banco 1 CLRF TRISD BCF STATUS,RP0 ;regresa al banco 0 BSF OPTION_REG,NOT_RBPU MOVF dato,W ;rescata dato a enviar ;BSF OPTION_REG,NOT_RBPU MOVWF PORTD ;lo envía RETURN ;************************************************** ;subrutina de recepción de un dato del puerto serie ;************************************************** recibe BTFSS PIR1,RCIF ;checa el buffer de recepción GOTO recibe ;si no hay dato listo espera MOVF RCREG,W ;si hay dato, lo lee MOVWF dato ;lo almacena en dato RETURN END

description

Simulacion

Transcript of Receptor

Page 1: Receptor

__CONFIG _CP_OFF&_PWRTE_ON&_XT_OSC LIST P=16F877A INCLUDE <P16F877A.INC> dato EQU 0x20 ORG 0x0000 trans BSF STATUS,RP0 ;banco 1 BCF TXSTA,BRGH ;pone bit BRGH=0 (velocidad baja) MOVLW 0x17 ;23-25valor para 9600 Bauds (Fosc=14.7456 Mhz) MOVWF SPBRG ;configura 9600 Bauds BCF TXSTA,SYNC ;limpia bit SYNC (modo asíncrono) ;BSF TXSTA,TXEN ;pone bit TXEN=1 (habilita transmisión) BCF STATUS,RP0 ;regresa al banco 0 BSF RCSTA,SPEN ;pone bit SPEN=1 (habilita puerto serie) BSF RCSTA,CREN ;Habilita recepción rep CALL recibe ;recibe dato MOVLW 0x1B ;carga código SUBWF dato,W ;es igual? BTFSC STATUS,Z ; GOTO fin ;si es igual termina CALL envia ;si n, retransmite el dato GOTO rep ;repite fin GOTO fin ;ciclo infinito ;************************************************* ;Subrutina para enviar un dato ;*************************************************envia BSF STATUS,RP0 ;banco 1 CLRF TRISD BCF STATUS,RP0 ;regresa al banco 0 BSF OPTION_REG,NOT_RBPU MOVF dato,W ;rescata dato a enviar ;BSF OPTION_REG,NOT_RBPU MOVWF PORTD ;lo envía RETURN ;************************************************** ;subrutina de recepción de un dato del puerto serie ;************************************************** recibe BTFSS PIR1,RCIF ;checa el buffer de recepción GOTO recibe ;si no hay dato listo espera MOVF RCREG,W ;si hay dato, lo lee MOVWF dato ;lo almacena en dato RETURN END