Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INCLUDE "P16F877A.INC"
__CONFIG _CP_OFF& _DEBUG_OFF& _WRT_OFF& _LVP_OFF& _BODEN_OFF& _PWRTE_ON& _WDT_O
FF& _XT_OSC
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
CBLOCK 0X20
DATIN,DATOUT,BKW,BKS,DIREC,R1,R2
ENDC
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
ORG
0x00
GOTO
INICIO
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
INICIO
CLRF
PORTC
CLRF
PORTB
BANKSEL
TRISC
MOVLW 0xFF
MOVWF TRISC
MOVWF
TRISB
movlw b'00000001'
movwf TRISA
;AN0 entrada, resto del puerto salidas
movlw b'00000000'
movwf ADCON1
;Canal 0 del ADC, Conversin en 64/Fosc
BANKSEL
SSPCON
MOVLW
B'00101000'
;ACTIVA
MODULO MSSP
MOVWF
SSPCON
BANKSEL
SSPSTAT
MOVLW
B'10000000'
;CONFIGU
RA VELOCIDAD ESTANDAR PARA I2C
MOVWF
SSPSTAT
BANKSEL SSPADD
MOVLW
.9
;CARGA PARA LA VELOCIDAD DE 100KHz
MOVWF
SSPADD
BANKSEL
DATIN
CLRF
DATIN
CLRF
DATOUT
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
;AQUI SE SELECCIONA EL ESCLAVO Y EL MODO A TRANSMITIR
;01 SLAVE1
;11 SLAVE2
OTRO
MOVLW B'11000001'
MOVWF ADCON0
CALL
RETARDO
BCF PIR1,ADIF
BSF
ADCON0,2;ACTIVAMOS EL GO/DONE=1, CON LO QUE INICIA LA CONVERSION
PREGUNTA
BTFSS PIR1,ADIF
GOTO
PREGUNTA
BCF
PIR1,ADIF
movf ADRESH,W
MOVWF DATOUT
ESC1
BANKSEL
PORTB
BTFSS
PORTB,0
;PREGUNTA POR CONDICION
DE INICIO RB0=1??
GOTO
$-1
BTFSC
PORTB,1
GOTO
ESC2
;PREGUNTA CUAL E
SCLAVO OCUPARA
LAVE1,RB1=1:SLAVE2
MOVLW
MOVWF
0xA0
DIREC
CALL
O EN EL BUFFER
;RB1=0:S
;CARGA LA DIRECCION DEL SLAVE1
WRITE
CALL
GOTO
;MANDA ESCRIBIRL
RETARDO
OTRO
ESC2
MOVLW
ION DEL SLAVE2
MOVWF
CALL
0xB0
DIREC
WRITE
CALL
GOTO
;CARGA LA DIRECC
RETARDO
OTRO
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
WRITE
BANKSEL
PIR1
BCF
PIR1,SSPIF
;LIMPIA
LA BANDERA DE ESCRITURA/LECTURA
BANKSEL
SSPCON2
BSF
SSPCON2,SEN
CALL
CHEK
BANKSEL
DIREC
MOVF
DIREC,W
CALL
SENDB
CALL
CHEK
BANKSEL
DATOUT
MOVF
DATOUT,W
CALL
SENDB
CALL
CHEK
BANKSEL
SSPCON2
BSF
SSPCON2,PEN
CALL
CHEK
MOVF
BKS,W
MOVWF
STATUS
MOVF
BKW,W
RETURN
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
SENDB
BANKSEL PIR1
BCF
PIR1,SSPIF
BANKSEL
SSPBUF
MOVWF
SSPBUF
RETURN
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
CHEK
BANKSEL
PIR1
BTFSS
PIR1,SSPIF
GOTO
$-1
RETURN
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
RETARDO
MOVLW
.2
MOVWF
R2
PRIMERO
MOVLW .5
MOVWF R1
SEGUNDO
DECFSZ
R1,F
GOTO
SEGUNDO
DECFSZ
R2,F
GOTO
PRIMERO
RETURN
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&
END