P P16F877A.INC Dato: List Include EQU 0X20 EQU 0X21 ORG 0X2007 DW 0X3F7A ORG Banksel
P P16F877A.INC Dato: List Include EQU 0X20 EQU 0X21 ORG 0X2007 DW 0X3F7A ORG Banksel
DATO INDEX
LIST P=16F877A INCLUDE<P16F877A.INC> EQU 0X20 EQU 0X21 ORG 0X2007 DW 0X3F7A ORG 0 BANKSEL TRISD MOVLW B'00001111' ;CONF PORTB MOVWF TRISB CLRF TRISD BCF TRISC,0 BSF TRISC,1 BSF TRISC,2 BANKSEL PORTD ;DATA 0 CLRF PORTD BCF PORTC,0; ENVIO"OFF" CLRF PORTB
INICIO
BTFSS PORTC,2 GOTO $-1 MOVFW PORTB MOVWF DATO CALL TIME BTFSC PORTC,2 GOTO $-2 MOVFW DATO CALL VALOR; TOMA UN VALOR DE LA TABLA MOVWF PORTD BSF PORTC, 0; ENVIO"ON" BTFSS PORTC, 1; LO RECEPCIONO? GOTO SENSA; NO BCF PORTC, 0; SI GOTO INICIO
SENSA
VALOR TIME
ADDWF PCL, F DT "0","1","2","3","4","5","6","7","8" DT "9","A","B","C","D","E","F" MOVLW .20 MOVWF 0X30 MOVLW .249 MOVWF 0X31 NOP DECFSZ 0X31,F GOTO $-2 DECFSZ 0X30,F GOTO $-6 RETURN END
RECEPTOR
LIST P=16F877A INCLUDE<P16F877A.INC> CBLOCK 0X20 INDEX,REG,DIR ENDC ORG 0X2007 DW 0X3F7A ORG 0 BANKSEL TRISD MOVLW 0XFF MOVWF TRISD CLRF TRISB BSF TRISC,0 BCF TRISC,1 CLRF PORTA MOVLW 0X07 ; CONFIGURANDO SALIDAS MOVWF ADCON1; DIGITALES BANKSEL PORTA CALL TLCD CALL CONTROL CALL INICIARLCD INICIAR CLRF DIR FIN SENSA BCF PORTC,1 ; CONTROL=0 (RECEPCION ON) BTFSS PORTC,0 ; ?ENVIO UN DATO? GOTO SENSA ; NO
CALL DATO ; LCD MODO DATO MOVFW PORTD; LECTURA DE DATO MOVWF PORTB CALL ENABLE BSF PORTC,1 ; RESPUESTA AL TRANSMISOR "LISTO" SENSA2 BTFSC PORTC,0 ; ?SE ENTERO DE MI RESPUESTA? GOTO SENSA2 ; NO BCF PORTC,0 ; SI, RECEPCION OFF INCF DIR,F ; INCREMENTA DIR MOVFW DIR XORLW 0X28 ; COMPARA TOPE DE RAM LCD BZ UBICAR GOTO FIN ;-----------------------------------------------;MODOS DEL LCD CONTROL: BCF PORTA,1 ; RS=0 BCF PORTA,0 ; E=0 CALL TLCD RETURN BSF PORTA,1 ; RS=1 BCF PORTA,0 ; E=0 RETURN CONTROL
DATO:
DATOS
INICIARLCD CLRW MOVWF INDEX X5 CALL MOVWF SUBLW BZ MOVFW MOVWF CALL INCF MOVFW B X4 RETURN
;HABILITAR LECTURA DEL LCD ENABLE: CALL TLCD BSF PORTA,0 ; E=1 CALL TLCD BCF PORTA,0 ; E=0 CALL TLCD RETURN LCD: UBICAR ADDWF PCL,F DT 0X38,0X38,0X38,0X0C,0X01,0xA7,0X05,0XFF CALL TLCD CALL CONTROL MOVLW 0XA7 MOVWF PORTB CALL ENABLE GOTO INICIAR MOVLW .249 MOVWF 0X40 NOP DECFSZ 0X40,F GOTO LAZO RETURN END
TLCD: LAZO: